Skip to content

docs(specs): define the attested-data format X and GitHub pin - #112

Open
xgreenx wants to merge 3 commits into
mainfrom
specs/attested-data-format
Open

xgreenx wants to merge 3 commits into
mainfrom
specs/attested-data-format

Conversation

@xgreenx

@xgreenx xgreenx commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

REQ-COMMON-18 requires a profile with attestations to fix its attestation format. The X and GitHub profiles only named "the pinned attestation format".

Changes

  • §4.1 Attested data (specs/platform-ceremonies.md:458): the 48-byte header, the direction-block encoding, the SHA-256(plaintext || 16-byte blinder) commitment and the EIP-191 secp256k1 signature, all as CeremonyAttestation.sol and NotaryService.sol verify them.
  • REQ-PLAT-64..69 (:536-590): encoding, field values, commitment construction, signing, recovery, and shape rejection.
  • TEST-PLAT-23 (:1590): a 246-byte conformance vector with its digest, plus negative cases.
  • Profile mentions: six "pinned attestation format" mentions in §5/§6 now link to §4.1.
  • X token session: the circuit charset-constrains only the bearer range. Every other unrevealed byte sits behind a plain commitment.

Verified

  • Spec lint: 79 errors and 99 warnings on both main and this branch. The sorted diff is empty.
  • Offsets and widths match CeremonyAttestation.sol:117-124, 510-547. The shape checks match :567-603.
  • The vector is 246 bytes. cast keccak reproduces the digest (0x48162f05…95936) and keccak256("api.x.com").
  • Cross-checked against libid-rs bincode, notary sign_claim and TS decode.ts.

Not verified / known issues

  • The docs site build was not run.
  • libid-rs authority_id_of lowercases the host but keeps a trailing dot. It fails TEST-PLAT-23's api.x.com. case, but it fails closed.
  • Code comments in libid-contracts, libid-rs and notary still call the layout profile-owned, or cite "section 9.1" and REQ-COMMON-47. These need follow-up PRs.
  • REQ-PLAT-69 has the Notary Service reject on shape, as NotaryService.sol:129 does. Common REQ-COMMON-33 names only the signature check.

🤖 Generated with Claude Code

REQ-COMMON-18 has a profile with attestations fix their format, but the X
and GitHub profiles only named "the pinned attestation format". The bytes
lived in four implementations that agree by fixture alone. Section 4.1 now
fixes the 48-byte header, the direction blocks, the SHA-256 range
commitment and the EIP-191 notary signature, as the contracts verify them.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
The X token-session text called every unrevealed byte charset-constrained.
The circuit opens and constrains only the bearer range (REQ-PLAT-30); the
status line, headers, scope and token_type stay behind commitments that
nothing opens.

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
The direction-block table listed fields once, so an encoder could read it
as one array per field. State that each range and each commitment is
written whole, count times. Split REQ-PLAT-65's last sentence into one
requirement each, and drop a sentence that restated "opens only the
bearer range".

Assisted-by: Claude Opus 5.5
Signed-off-by: xgreenx <xgreenx9999@gmail.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://specs-attested-data-format.previews.lib.id, https://specs-attested-data-format-libid.grounded-systems.workers.dev (commit 809c042)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://80ba0682.previews.lib.id, https://80ba0682-libid.grounded-systems.workers.dev 809c042 2026-10-05T13:37:44.592Z Visit the dashboard ↗

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant