Verify

When a new account arrives with a PCOC, this is what a service's gate measures before its policy decides who gets in.

A PCOC is a self-issued identifier backed by memory your device held while Bitcoin's blocks passed.

Check one here and see what any service would measure. It checks; it does not admit anyone.

Each service's own admission gate decides.

What you're looking at

This is groundinglab's own PCOC, for its official public key (npub).

It was made on 2026-10-11, over 18 Bitcoin blocks.

16 of 16 recorded points are anchored in Bitcoin.

npub1w7akvpek7zp7wwyhmryswc33p9f45wv2cj65gz663kdgqm333g7q0t3pme

This is the same key shown in the footer, and the key groundinglab@groundinglab.io resolves to.

The making is split into legs, each ending in a leg result.

Points recorded during the making are anchored, meaning fixed in a Bitcoin transaction.

Made over
18 Bitcoin blocks (970874 to 970892)
Legs
4721
Span
11023 seconds
Anchored points
16 of 16
Recorded
2026-10-19
Spot-check
6 legs redone, all matched

sha256 cb673b73ad6cd7453397910e2f19273c2ebea0e2593c0fa24d5849f0c1b6ade1

Download this PCOC

This is groundinglab's own PCOC. Download it and check it yourself with the checker below. You can verify it, but you can't sign in with it: signing in needs the private key, and only groundinglab holds the key for this one, so only groundinglab can sign for it at the admission gate. To sign in, make your own.

What was checked

The lines are measurements, not a decision to let anyone in.

What a service would do with this

These are the measurements a service receives.

Refusing a bad PCOC costs far less than making one.

Confirming a PCOC redoes a sample of the making, and that still costs less than making it. Why does the check cost less than the making?

A service's admission gate takes this measurement and applies its own policy.

The measurement is not the admission decision. Admission gate

Verification and admission are separate steps.

This check records measurements; a gate then compares them with its policy.

groundinglab's gate settings: its live policy gl-admit-v12 asks for at least 0.1 legs per second over the making (one leg every 10 seconds, testing), at least 6 anchored points, and no tip-versus-last-beacon submission deadline.

It also checks one randomly placed leg in each stage, so every stage gets checked.

The exact count is set by the service's policy.

These are groundinglab's settings, not rules of the specification. Why we chose these numbers.

A service's gate can refuse or revoke a PCOC under its own policy.

Make a PCOC

Full record
For developers

Verifier https://verify.groundinglab.io POST /v1/verify

This report shows what was measured. It is not an admission decision.

Run the known-good check

Nothing here needs a key. The download in step 3 is the previous-version object this page shows. A current verifier records an unknown kind for it and does not fetch an index. The known-good check is the Go quickstart at tag sdk/go/v2.3.1. It measures the pinned conformance object and does not read the downloaded file.

OS
Debian 13 or Ubuntu 24.04, in a terminal. Ubuntu 24.04 should behave the same; it was not tested.
You need
Go 1.22 or newer, git and curl
Time
About 5 minutes

Command names checked against tag sdk/go/v2.3.1 on 24 Oct 2026. This page was not run as a build on that date.

1. Install Go, git and curl

sudo apt update
sudo apt install -y golang-go git curl

2. Get the code

git clone https://github.com/groundinglab/pcoc.git
cd pcoc
git checkout sdk/go/v2.3.1
cd sdk/go

3. Download groundinglab's own PCOC

This is the object the report above shows. The next step does not read it.

curl -fLO https://groundinglab.io/verify/groundinglab.pcoc.cbor

4. Run the quickstart

It checks the conformance pack. It does not read the downloaded file, and it does not time the run.

go run ./cmd/pcoc quickstart

5. Check the result

Six lines. The second line names the SHA-256 backend on your machine. This example is reference system 3.

Expected output

pcoc 2.3.1 (go) 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