Repository navigation
Description
From the #2041 investigation (token issuance in the ID graph)
The landed investigation doc for #2041 (doc/2026-10-30T19-18-00Z_investigation_token_issuance_id_graph/, §7) fixes the semantic contract for the app-facing currency function surface — one API across both bindings (graph-native and ledger-anchored):
define_currency / issue / award / pay / balance / supply / accept_payment / convert / snapshot
This issue implements that surface as a client library in pkgs/id. Gated on the #2251 spec, which fixes the wire formats and the API signatures/error semantics this library implements — do not start implementation until #2251's spec has landed; the shape of this issue may need amending to match it.
Scope
- Client-side library only: graph object construction/signing for the graph-native binding; gateway client (signed intents, persisted idempotency IDs per the id: design: currency as the centralised exception — how the hosted (Workers) edition reaches the currency service #2066 boundary rules) for the ledger-anchored binding.
accept_paymenthandler registration with the §7 verification order (signature → unforked chain → funded → full currency identity), including the pending-hold hook the grant lifecycle spec hangs off.- NOT the currency service, gateway, or registry themselves (id: design: currency control plane — registry, account factory, gateway #2062 follow-ups F1–F5 own those), and no permanent feature built on an unreviewed PoC (program rule, epic epic: ID platform expansion — apps, comms, currency, hosting, boards (2026-10-28 directive, LIST 6–15) #2056).
Acceptance criteria
- Library implements the full §7 surface against id: design: graph token object formats + snapshot anchoring spec (from #2041) #2251's specced signatures, for both bindings
- Worked examples from the investigation (§8: issue 100 self-tokens to another ID; §9: game awards coins to a winner) run end-to-end against the library in tests or a demo harness
- Idempotency discipline verified: a retried mutating call reuses its persisted ID and cannot double-issue/double-pay
Program: ID platform expansion, epic #2056. Parent investigation: #2041. Gate: #2251 (object-format + API spec). Related: #2062 (control plane), #2066 (centralised exception), #2043 (currencies v1 synthesis).
Activity
dezren39 commentedon Oct 30, 2026
Intake review
Fleet monitor intake pass (2026-10-30).
status/waiting-dependency: the issue itself says do not start implementation until id: design: graph token object formats + snapshot anchoring spec (from #2041) #2251's spec lands, and its shape may need amending to match that spec.developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
69 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
opencodeper §1b — handed off to the opencode claimant, not worked directly. Revalidated fresh: issue id: implement: pkgs/id currency client API — the §7 app-facing function surface from #2041 (gated on #2251 spec) #2803 OPEN, gate issue id: design: graph token object formats + snapshot anchoring spec (from #2041) #2251 CLOSED (spec landed); dependencies id(currency): currency registry schema + ledger-u32 allocator (from #2062) #2317 and id(currency): gateway request envelope — canonical encoding, verify_strict, nonce window, idempotency IDs (from #2062) #2319 still open per prior progress — gateway half parks until they close, graph-native binding first. Attempt 23/24, near cap.dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off