Changelog
v0.18.0 — SDK (2026-03-09)
RFC-021 Phase 2: Grandchild sponsorship, batch heartbeat, delegation chains.
batchHeartbeat(children, paymentTx)— heartbeat multiple sponsored children in one callcreateDelegation(delegateHash, opts)/revokeDelegation()/listDelegations()— delegation chain management- Grandchild sponsorship support (beyond direct children)
BatchHeartbeatResult,DelegationRecord,DelegationResulttypes exported
v0.17.0 — SDK (2026-03-06)
Breaking change: Payment arguments are now required for paid operations.
heartbeat(paymentTx)—paymentTxis mandatory (was optional with devnet-skip default)startHeartbeat(paymentTxFn)— callback function requiredreissuePassport(paymentTx)— payment required for reissuancepurchaseSigil(opts)—paymentTxrequired in options- Devnet-skip default removed from all paid methods
- Self-custody wallet documentation removed (Model A was removed in v0.14.0)
- SDK v0.17.0 published to npm
v0.16.0 — SDK (2026-03-04)
Passport rename: LineageProof → Passport as canonical type.
Passportis the canonical type;LineageProofis a deprecated alias (sunset 2026-09-01)- All proof-returning routes now return both
passportandlineage_prooffields /api/v1/agent/passportendpoint returnspassport+passport_vc(W3C VC)- SDK methods:
reissuePassport(),getLatestPassport(),verifyPassportLocally()(old names are deprecated wrappers) - OpenAPI v0.16.0
Registry API v0.15.0 (2026-03-02)
Admin API agent management + error taxonomy
- Added:
POST /api/v1/admin/agent/freeze— admin freeze withsuspendedlineage event. - Added:
POST /api/v1/admin/agent/unfreeze— admin override unfreeze (no work-proof required). - Added:
POST /api/v1/admin/agent/refuse-heartbeat— block heartbeat submissions (DISPUTE_RULING,COURT_ORDER,ADMIN_ACTION). - Added:
GET /api/v1/admin/actions— paginated admin audit trail query with filters. - Added:
adminKeysecurity scheme (pva_prefix) documented in OpenAPI spec. - Added: Existing
POST /admin/authority-key/rotateandPOST /admin/authority-key/revokenow documented in OpenAPI spec. - Added: Machine-readable
codefield on all API error responses (37 codes). Clients canswitchonbody.codeinstead of parsing error strings. - Added:
retry_after_mson rate-limit responses.
SDK v0.15.0 (2026-03-01)
- Added:
mapApiError()prefersbody.codeover status-code heuristics. Backward compatible with older servers.
v0.14.0 (2026-02-23)
Model A wallet removal (breaking)
- Breaking: Model A (self-custody hex key) wallet registration removed.
walletModeloption narrowed to'operator'only. - Removed:
generateWalletKeypair()function no longer exported. - Removed:
walletSecretKeyoption fromRegisterOptions. WalletInfosimplified:public_keyandsecret_keyfields removed. Onlysolana_address,address, andchainremain.- Model B (operator) and Ethereum bring-your-own remain fully supported.
v0.13.0 (2026-02-22)
Work-proof system + deprecated method removal
- Breaking:
pulse()andcheckin()methods removed (were deprecated since v0.9.0). - Added:
computeWorkProof(opts)— computes sequential SHA-256 beats locally, weaving in anchor hash, then submits to Beats service for a signed receipt. Required for spawn and resync whenBEATS_REQUIRED=true. - Added:
requestSpawnWithBeatsProof(opts?)— convenience method that probes spawn for required beats, computes work proof, and submits. - Added:
WorkProofReceiptandWorkProofResulttypes. - Added:
beatsUrlconfig option (default:'https://beats.provenonce.dev'). - Updated:
requestSpawn()accepts optionalbeatsReceiptparameter for receipt-based spawn. - Rewritten:
resync()now probes resync endpoint; ifRECEIPT_REQUIRED, automatically computes work proof and submits.
v0.12.0 (2026-02-19)
Anchor hash verification
- Added:
verifyAnchorHash(anchor)— local verification of anchor hashes without network call. Supports V3 binary-canonical and V1 legacy formats. - Added:
verifyAnchorsconfig option (default:true) — automatically verifies anchor hashes before trusting fetched anchors.
v0.11.0 (2026-02-18)
Self-service registration (RFC-010)
- Added:
RegisterOptionstype exported for typed registration configuration. - Added:
registrationTokenoption — single-use token from email verification flow. - Added:
registrationInviteoption — admin-minted invite token.
v0.10.1 (2026-02-18)
SIGIL Namespace v0.4 types + metadata
- Added:
updateMetadata(fields)— update mutable SIGIL metadata fields viaPATCH /api/v1/agent/metadata. - Added:
purchaseSigil()now acceptsSigilPurchaseOptionsobject with full namespace fields (identity_class, principal, tier, name, payment_tx, plus optional metadata). Legacy two-argument signature deprecated. - Added: Types:
SigilTier,Substrate,SubstrateProvider,Capability,SigilProtocol,ComplianceRegime,SigilPurchaseOptions,SigilMutableFields,MetadataUpdateResult. - Added:
VerificationResulttype with structured offline verification output (valid,signatureValid,expired,warning). - Enriched:
SigilResultnow returnssigil(full string),sigil_name,principal,tierfields.
v0.9.1 (2026-02-14)
Security hardening (P0-P3)
- Enforced fail-closed payment verification and atomic payment-tx claim handling in paid routes.
- Tightened spawn integrity with ownership binding and safer mutation ordering.
- Hardened Beats anchor canonicalization and continuity selection in the Beats service.
- Made public
/api/v1/verify/[hash]read-only for proofs; fresh signed proof issuance stays on paid reissue. - Upgraded authenticated route rate limiting from IP-only to multi-dimensional keys: endpoint path + authenticated subject, with path + IP fallback when subject is missing.
- Added fail-fast cost guards on paid routes so oversized/invalid payloads are rejected before auth/payment/DB work:
/api/v1/agent/spawn,/api/v1/agent/heartbeat,/api/v1/agent/reissue-proof,/api/v1/sigil(commitebcf57c). - Added route-level fail-fast tests:
tests/cost-guards-fastfail.test.ts,tests/heartbeat-cost-guards-fastfail.test.ts,tests/reissue-proof-cost-guards-fastfail.test.ts,tests/sigil-cost-guards-fastfail.test.ts. - Added payment-failure throttling regression coverage to ensure repeated invalid/replayed payment attempts
consume limiter budget and converge to
429(tests/payment-failure-throttling.test.ts, commit80046c3, tagsecurity-hardening-p3-2).
v0.9.0 (2026-02-13)
SIGIL identity tiers, heartbeat protocol, lineage proofs
- Breaking:
checkin()removed — server returns410 Gone. Useheartbeat()instead. - Breaking:
resync()removed — server returns410 Gone. (Note:resync()was restored and rewritten in v0.13.0 with work-proof receipt support.) - Breaking: Registration no longer writes a Solana SPL Memo.
signatureandexplorer_urlremoved fromRegistrationResult. Birth records are DB-only. (Note: birth memos were restored in v0.10.1 per D-94. Response now includesbirth_tx.) - Deprecated:
pulse(),computeBeat(),computeBeatsLite()— emitconsole.warn, will be removed in v1.0. - Added:
purchaseSigil({ identity_class, principal, tier, payment_tx })— acquire SIGIL identity tier (narrow_task,autonomous,orchestrator). - Added:
heartbeat(paymentTx?, globalAnchor?)— single-call liveness proof replacingpulse()+checkin(). - Added:
reissueProof(paymentTx?)— request fresh lineage proof without advancing heartbeat counter. - Added:
getLatestProof()— return cached lineage proof (no network). - Added:
BeatAgent.verifyProofLocally(proof, authorityPubKeyHex)— offline Ed25519 proof verification. - Added: Types:
LineageProof,Passport(alias),SigilResult,HeartbeatResult,IdentityClass. - Added:
getPassport()— alias forgetLatestProof(). - Added:
agent_public_keyinLineageProof— wallet address bound into signed proof data (prevents bearer-token impersonation). - Added: Ed25519-signed lineage proofs (Passports) with 24h validity window.
- Added: Fee summary endpoint (
GET /api/v1/fees/summary), authority key endpoint (GET /api/v1/.well-known/authority-key). - Added:
startHeartbeat()now callsheartbeat()on interval (replaces old pulse+checkin loop). - Devnet: pass
'devnet-skip'as theheartbeat()/reissueProof()payment argument to bypass payment (removed in v0.17.0).
v0.8.0 (2026-02-12)
Chain-agnostic identity (D-62/63/64)
- Breaking: Default registration is now no-wallet (identity only). Pass
walletModel: 'self-custody'to generate a Solana wallet. - Wallet is optional at registration — three paths: no-wallet, Solana self-custody, Ethereum BYO
- Chain-agnostic wallets:
walletChainoption ('solana'or'ethereum') - Ethereum BYO registration via
walletAddress+walletSignFn(EIP-191personal_sign) - v2 hash formula:
sha256("root:v2:" + wallet + ":" + chain + ":" + ts + ":" + nonce) - 128-bit nonces (was 64-bit)
- Two-tier rate limits: 5/hr no-wallet, 10/hr wallet-bound
wallet_chainfield in all responses
v0.7.0 (2026-02-09)
Anchor-hash weaving + wallet-per-agent
- Global anchor hash woven into sequential-work seed (anti-pre-computation)
- Wallet-per-agent registration (Model A self-custody, Model B operator)
generateWalletKeypair()for client-side Ed25519 keypair generation- Two-phase challenge-response registration flow
- Difficulty adjustment wired into enforce endpoint
v0.6.0 (2026-02-09)
Anchor-hash weaving (anti-pre-computation)
- Global anchor hash woven into each beat’s sequential-work seed
Beattype gainsanchor_hashfieldcomputeBeat()andcomputeBeatsLite()acceptanchorHashparameter- Old SDK clients without anchor hash are rejected when anchors exist
v0.5.0 (2026-02-08)
New agent API paths
- Agent endpoints moved from
/api/v1/beat/*to/api/v1/agent/* - Old
/beat/*paths are deprecation proxies (sunset 2026-06-01) register()function added to SDKRegistrationResultandWalletInfotypes exported
v0.4.0 (2026-02-07)
Spot check enforcement
- Minimum 3 spot checks required
to_beatmust always be included in spot checkscreateCheckinProof()passesanchor_hashthrough
v0.3.0 (2026-02-06)
Security hardening
- Rate limiting on all endpoints
- HMAC signature length increased to 128-bit
- Input validation on all body-parsed routes
v0.2.0 (2026-02-05)
Beat chain and registration
BeatAgentclass with full lifecycle- Root and child registration with Solana SPL Memo birth records
v0.1.0 (2026-02-04)
Initial release
- Sequential hash chain engine (
computeBeat,computeBeatsLite) - Basic agent lifecycle
Last updated on