Service integration · Technical · Raw markdown

Source: pcoc sdk/ at the released tags. Rust, C, Go, and Java are 2.3.1. The tags are cut.

SDKs

What it is

The SDKs are the libraries and the pcoc command that produce and verify a PCOC. There are four: Rust, C, Go, and Java. They follow the specification at tag spec-2.3.0. Errata 1 and 2 are folded into that file.

Status. Rust, C, Go, and Java are 2.3.1. The specification tag is spec-2.3.0. The release tags are cut.

A performance table is not on this page. No timing run is published with these tags.

How it works

Verify reads a PCOC and writes a measurement record. The record measures. It does not admit anyone. Produce makes a PCOC. Bitcoin's blocks pace the making.

pcoc quickstart checks that this tree matches the pack pin, then checks the O1-S1 object, the six-leg measurement, the thirteen permanent negatives, and the pinned production leg. It does not time that leg.

Quickstart

The fixed lines are the same in every language. The first line names the language. The second line names the SHA-256 backend on the machine that ran it. This example is reference system 3 (AMD Ryzen 5 7430U, Linux Mint 22.3), 23 October 2026, backend sha-ni.

pcoc 2.3.1 (rust) spec-2.3.0 pack 91ded57e5c05b7cb: pin match
kernel scalar, sha256 sha-ni
O1-S1 object sha256 800ad07a87a567c835f539617b61ccddc96a0a984425675a5ece971162dfd246
O1-S1 six_leg match, checkpoints match, waypoints match
negatives 13 non-match
PROD leg 0 legs_le_hex 88a04ac5beacb8a7
Language Command, from a clone checked out at that language's tag
Rust git checkout sdk-rust-v2.3.1, then cd sdk/rust, then cargo run -p pcoc-cli --release --quiet -- quickstart
C git checkout sdk-c-v2.3.1, then cd sdk/c, then make -j4 build/pcoc and ./build/pcoc quickstart
Go git checkout sdk/go/v2.3.1, then cd sdk/go, then go run ./cmd/pcoc quickstart
Java git checkout sdk-java-v2.3.1, then cd sdk/java, then ./gradlew run --args=quickstart

Java reports sha-ni when the process is started with -XX:+UnlockDiagnosticVMOptions. The Gradle run task sets that flag.

What runs on them

Get them

The specification release is spec-2.3.0. The SDK tags are not that commit. Rust and Go 2.3.1 are commit be0d5b8. C and Java 2.3.1 are tags sdk-c-v2.3.1 / sdk-java-v2.3.1. spec-2.3.0 is commit 7189a6d.

Checked against the same bytes

Policy and evidence

Admission is groundinglab policy, not a rule of the specification. The live testing floor is 0.1 legs/s (gl-admit-v12). verify_cap_per_door_session is unset on that policy (no door-session cap).


From pcoc sdk/ at the released tags. Rust, C, Go, and Java are 2.3.1. The tags are cut. Raw markdown.