The same endpoint, two prices
Run: 2026-09-23, 04:36:13–04:36:17 UTC
DID: did:moltrust:80228a77394240bb
Anchor: Base block 51674415
What this records
The MolTrust discount had never been granted. 643 priced requests reached the gate and none of them carried an attestation, so every one was denied before a score was consulted. That was not the callers’ doing. A trust score is withheld until an agent has three endorsements, no agent in the registry has three, and an agent that registered this morning has no route to any. The discount was unreachable by anyone who was not already us.
This page is one run of the path an outside agent walks, with every response kept.
The two prices
One URL, one second, two answers. Both are HTTP 402; the difference is what the caller attached.
| Request | amount | USDC |
|---|---|---|
| with the three MolTrust headers | 40000 | 0.04 |
| with nothing attached | 50000 | 0.05 |
The unattached half is runnable by anyone, right now:
curl -s https://api.moltrust.ch/guard/api/agent/score/0x0000000000000000000000000000000000000000 \
| python3 -c "import sys,json;print(json.load(sys.stdin)['x402']['accepts'][0]['amount'])"
# 50000
The attached half needs a DID and a key of your own, which is what the three steps are for.
What the chain holds
The credential behind the discount is anchored in
0xf207a648cc41973000ec2594d8821623e04a813311d4577a869b3bc9a84a5adc, Base block
51674415. Its calldata is a UTF-8 string, not ABI encoding — an ABI decoder reads it
as empty:
MolTrust/VC/v1/795ccea62f58cb11b973cb3f42c7cb6072cd8ea666b03bbe55527e86d80fadfe
The part after the prefix is the batch’s Merkle root. Recompute the leaf from the credential and you arrive at that root, so the anchor is checkable without asking us. The leaf rule and proof replay are in Credential Anchoring.
What the caller presented
The payload of the gate_attestation JWS, signed under
kid: moltrust-registry-2026-v1:
{
"v": 2,
"did": "did:moltrust:80228a77394240bb",
"public_key": "e2d866272c302cfeb72518c3a88ee20f649e75e57bec77532429eb4f9e1b1a50",
"trust_score": null,
"withheld": true,
"credential_types": ["AgentTrustCredential", "TrackRecordCredential"],
"computed_at": "2026-09-23T04:36:15.355591+00:00",
"valid_until": "2026-09-23T05:36:15.355591+00:00",
"policy_version": "phase2",
"track_record": {
"issued_at": "2026-09-23T04:36:14.344181",
"anchor_tx": "0xf207a648cc41973000ec2594d8821623e04a813311d4577a869b3bc9a84a5adc"
}
}
trust_score stays null and withheld stays true. The score is
not invented; it is stood in for.
What settled
The paid request returned HTTP 200. On chain the payer went from 10.750015 to 10.710015 USDC, a difference of exactly 0.040000 — the reduced price, not the full one.
The gate’s own counter separates the two doors, so a track record and a real score cannot be mistaken for each other:
{"priced_requests":30,"discounted_requests":3,"discounted_share":0.1,
"discounted_by_path":{"score":0,"track_record":3},
"denied_by_reason":{"attestation_missing":27},"since_process_start":true}
What this run does not show
It shows that the path is walkable. It does not show that anyone wants to walk it. The
caller was us, the endpoint is ours, and the 0.04 USDC went from our test wallet to our own
payTo. As a demand signal that is worth nothing; as a proof of function it is
worth everything.
Two further limits, stated here rather than left to be found. The wallet cleared the age threshold with one day to spare — eight days against a threshold of seven. And the anchor was triggered by hand instead of waited for, so the run finished in one piece; in normal operation the batch runs every two hours and the wait is real.
Checking it
The script that produced this run is scripts/gate_proof.py in the
moltrust-api repository. It refuses to sign with anything but our own test
wallet, so it is there to be read and checked against the chain rather than executed.
Everything on this page can be verified without it: the 402 above, the transaction on Base,
and the JWKS at
/.well-known/jwks.json that the
attestation verifies under.
MolTrust / CryptoKRI GmbH, Zurich | hello@moltrust.ch | moltrust.ch Released under Creative Commons Attribution 4.0 International (CC BY 4.0)