SafeGate V13-B External Anchor Implementation Checklist
V13-A public evidence chain is closed. V13-B now defines the implementation checklist for external timestamp anchoring of signed SafeGate checkpoints, while keeping payment rails, custody, escrow, and production anchor claims clearly out of scope.
1. Implementation Boundary
V13-B is not a payment integration milestone. It is an external anchor design and implementation-readiness milestone for SafeGate signed checkpoints.
- Checkpoint commitment format.
- External timestamp proof attachment.
- Anchor state model.
- Verifier fail-secure behavior.
- Pinned or well-known public key requirement.
- OpenTimestamps/Bitcoin timestamp boundary.
- Live external anchor.
- Production anchor verification.
- Bitcoin payment support.
- Independent payment truth proof.
- Custody, escrow, routing, exchange, or settlement.
- Formal security audit completion.
2. Required Anchor State Model
The verifier must never trust a self-declared anchor field as verified. Anchor verification must be explicit, conservative, and fail-secure.
{
"anchor_pending": "No external timestamp proof is attached yet.",
"anchor_unsupported": "The anchor type exists but this verifier does not support verification for it.",
"anchor_claim_unverified": "The proof includes an anchor claim, but verification was not completed.",
"anchor_verified": "The external timestamp proof verifies against the signed checkpoint commitment.",
"anchor_mismatch": "The external timestamp proof does not match the signed checkpoint commitment.",
"anchor_error": "The anchor proof could not be evaluated safely."
}
3. Checkpoint Commitment Direction
V13-B should anchor a commitment derived from the signed checkpoint, not arbitrary user text. The anchored value should be deterministic, public-safe, and reproducible by the verifier.
{
"checkpointCommitmentCandidate": {
"input": "canonical_signed_checkpoint_payload",
"hash": "sha256(canonical_signed_checkpoint_payload)",
"anchorTarget": "checkpointCommitmentHash",
"publicSafe": true,
"containsPaymentSecret": false,
"containsPrivateUserData": false
}
}
- The checkpoint commitment must be deterministic.
- The canonicalization rule must be stable across append, fixture, test vector, and verifier.
- The commitment must not expose private payment details.
- The verifier must recompute the commitment locally.
4. Public Key Pinning Requirement
The production verifier must not blindly trust a public key embedded inside a proof object. V13-B should prepare a pinned or well-known SafeGate log key path.
/.well-known/safegate-log-key.json
{
"product": "SafeGate",
"purpose": "transparency-log-checkpoint-verification",
"environment": "staging",
"keyId": "safegate-v13-staging-log-key-001",
"algorithm": "Ed25519",
"status": "active",
"publicKey": "PUBLIC_KEY_PLACEHOLDER",
"notBefore": "2026-07-03T00:00:00Z",
"notAfter": null
}
5. OpenTimestamps / Bitcoin Boundary
Bitcoin/OpenTimestamps belong to the anchor rail only. They are not SafeGate payment rails in V13-B. A Bitcoin timestamp anchor does not mean Bitcoin payment support is live.
- Bitcoin role: external timestamp anchor only.
- OpenTimestamps role: candidate external timestamp proof layer.
- SafeGate role: post-payment trust verification layer.
- Payment truth role: deferred to V13-C Payment Commitment.
6. Implementation Work Items
- Define canonical signed checkpoint commitment format.
- Define external anchor proof attachment schema.
- Define anchor state model in verifier UI.
- Add fail-secure handling for unsupported or malformed anchor data.
- Prepare pinned / well-known public key path.
- Prepare test vector for pending anchor state.
- Prepare test vector for unsupported anchor claim.
- Prepare test vector for mismatched anchor proof.
- Prepare future test vector for verified anchor proof.
- Document that payment truth remains separate and deferred to V13-C.
7. Acceptance Criteria
- V13-B checklist page is public and linked from the evidence chain later.
- External anchor is described as timestamp infrastructure only.
- Payment rail and anchor rail are separated in public copy.
- Verifier state model includes pending, unsupported, unverified, verified, mismatch, and error states.
- Anchor claims cannot self-upgrade into verified anchor status.
- Pinned / well-known public key requirement is documented.
- No production anchor claim is made.
- No Bitcoin payment adapter claim is made.
- No custody, escrow, routing, exchange, or settlement claim is made.
8. Recommended V13-B Test Vectors
{
"testVectors": [
{
"name": "anchor_pending_fixture",
"expectedResult": "included_and_signed_external_anchor_pending"
},
{
"name": "unsupported_anchor_claim_fixture",
"expectedResult": "included_and_signed_anchor_claim_unsupported"
},
{
"name": "malformed_anchor_fixture",
"expectedResult": "included_and_signed_anchor_error_or_unsupported"
},
{
"name": "mismatched_anchor_fixture",
"expectedResult": "included_and_signed_anchor_mismatch"
},
{
"name": "future_verified_anchor_fixture",
"expectedResult": "included_signed_and_external_anchor_verified"
}
]
}
9. Links
10. Machine-Readable Status
{
"project": "SafeGate",
"page": "v13-b-external-anchor-implementation-checklist.html",
"status": "V13_B_EXTERNAL_ANCHOR_IMPLEMENTATION_CHECKLIST_OPEN",
"v13AChain": "CLOSED",
"v13BDesignPlan": "OPEN",
"v13BImplementationChecklist": "OPEN",
"externalAnchorLive": false,
"productionAnchorClaim": false,
"formalAuditClaim": false,
"bitcoinPaymentAdapterLive": false,
"bitcoinUsedAs": "external_timestamp_anchor_only",
"openTimestampsRole": "candidate_external_timestamp_proof_layer",
"paymentRailSeparatedFromAnchorRail": true,
"paymentTruthDeferredTo": "V13-C Payment Commitment",
"pinnedPublicKeyRequired": true,
"verifierMustFailSecure": true,
"safeGatePaymentProcessor": false,
"safeGateCustody": false,
"safeGateEscrow": false,
"safeGateExchange": false,
"safeGateWalletHolder": false,
"nextStep": "Link this checklist from main landing, technical evidence archive, pilot review index, and roadmap"
}