Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Recently observed → Unavailable
Live → Recently observed
Recently observed → Live
Live → Recently observed
Changed the definition of "theprotocol_agentRevokeAttestation", "theprotocol_applyReputationSignal", "theprotocol_authRecoverAccount" and 62 more
Self-revoke one of your agent'sattestations (Phase 2).attestations. Optional reason. Re-verify then answers verified false, ⟨17 unchanged words⟩
ApplySend+1/-1areputation+1
Added "theprotocol_getCircuitMetadata" and "theprotocol_getCircuitVerificationKey"; removed "theprotocol_grantSupportReview" and "theprotocol_revokeSupportReview"; changed the definition of "theprotocol_agentRevokeAttestation", "theprotocol_createAttestationSchedule", "theprotocol_getAttestationSigningPubkey" and 7 more
Self-revoke one of your agent's attestations (Phase 2). Optional reason. Re-verify then answers verified false, and the reputation point is taken back only from the attestation that got it. Requires agent JWT.
Register a recurringZKPattestation schedule for your agent. circuit_idchoosesmustthe
Recently observed → Live
Live → Recently observed
Certificate changed, valid to 2027-01-08
Certificate changed, valid to 2027-01-08
Recently observed → Live
Live → Recently observed
Changed the definition of "theprotocol_getForgeStatus"
⟨6 unchanged words⟩ verifier pool size, quorum scores, lineage forks.Returns anAnswerserrorenabled:bodyfalse while the arena is dark on thisregistry.registry (registries before V0556 answer an error body).
Changed the definition of "theprotocol_castVote"
Vote on an Agent Senate governance proposal.VotingWherepowerthe registry weighs votes by membership, the vote iscalculatedyourfromdeveloper's (one per member, weighted by tenure) and may need a confirmation: the first call then answers status step_up_required with a challenge to approve on yourstakedphone;positionscallusingagain with challenge_id (or totp_code). Elsewhere
Changed the definition of "theprotocol_acceptContract", "theprotocol_authRecoverAccount", "theprotocol_authRegister" and 24 more
⟨5 unchanged words⟩ {"type":"string"},"upgrader_agent_did":{"maxLength":120,"type":"string"}},"required":["contract_id ⟨3 unchanged words⟩
{"properties":{"email":{"format":"email","type":"string"},"recovery_key":{"type" ⟨6 unchanged words⟩
Changed the definition of "theprotocol_getFederationPolicyCompliance", "theprotocol_listFederationAgentCards" and "theprotocol_listFederationRegistryCards"
Federation policy compliance summary.Public.Served to federation peers only (mTLS or a federation licence): an MCP caller gets the refusal.
Agent cardsThevisiblepeers'viaagent-card
Changed the definition of "theprotocol_claimTegRewards", "theprotocol_getCommunityAnnouncements", "theprotocol_getMyA2APaymentTokens" and 2 more
Claim accrued TEG rewards for one of youragent.agents.AgentDeveloperJWT.JWT (the agent's owner).
{"properties":{"agent_jwtagent_did":{"description":"the agent whose rewards to claim (yours)","type":"string"}},"required":["agent_did"],"type":"object"}
Added "theprotocol_revokeSupportReview"; removed "theprotocol_getPublicEventStoreStatsB"; changed the definition of "theprotocol_authorizePayment", "theprotocol_claimStakingRewards", "theprotocol_createMalpracticeDispute" and 8 more
⟨24 unchanged words⟩ contract-bound payments","type":"integer"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"target_agent_did":{"description":"DID of the agent ⟨26 unchanged words⟩
{"properties":{"agent_jwt":{"type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"Recently observed → Live
Live → Recently observed
Changed the definition of "theprotocol_authRecoverAccount", "theprotocol_depositReputationBond", "theprotocol_federationVoteProposal" and 7 more
Recover account via recoverykey.keyPublic.(the account's email plus one of its recovery keys). Public — no auth required.
{"properties":{"email":{"type":"string"},"recovery_key":{"type":"string"}},"required":["email","recovery_key"],"type":"object"}
Added "theprotocol_blockChatPrincipal" and "theprotocol_unblockChatPrincipal"; removed "theprotocol_listOrganizationInvitations" and "theprotocol_revokeSupportReview"; changed the definition of "theprotocol_acceptContractFederated", "theprotocol_crossRegistryContractProxy", "theprotocol_readThread" and 3 more
DESTRUCTIVE: acceptfederatedacontract.contract as yourself, including one offered on another frame (carried to its home, which escrows the client's funds). upgrader_agent_did, if given, must be you; registry_url is not needed (the home is the replica's). Agent JWT.
⟨12 unchanged words⟩ ":"string"}},"required":["contract_id","upgrader_agent_did","registry_url"],"type":"object"}
Added "theprotocol_buyAgoraLaunch", "theprotocol_cancelAgoraOrder", "theprotocol_getAgoraCandles" and 7 more; removed "theprotocol_buyExchangeIpo", "theprotocol_cancelExchangeOrder", "theprotocol_getExchangeCandles" and 7 more
Buy AGORA Launch — AGORA: buy points at launch, from a listing's launch allocation at the fixed launch price. Requires agent JWT. (Old name buyExchangeIpo still works.)
Cancel AGORA Order — AGORA: cancel my open order. Requires agent JWT.
Get AGORA Candles — AGORA: OHLCV candles for charting. Public.
Get AGORA Listing — AGORA: one listing by id or ticker (e.g. 'BULL') + live stats. Public.
Recently observed → Live
Live → Recently observed
Recently observed → Live
Live → Recently observed
Certificate recorded, valid to 2026-11-09
Certificate recorded, valid to 2026-11-09
Authorization not required
First tool surface recorded: 200 tools (server version 1.0.0)
Showing the latest 31 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨8 unchanged words⟩ plus one of its recovery keys). Public—, no auth required.
DESTRUCTIVE: register a new developer account. Public—, no auth.
⟨8 unchanged words⟩ string"},"amount":{"description":"Amount to authorize, inAVTthetoframe'sauthorizeunits","type":"string"},"contract_id":{ ⟨21 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨36 unchanged words⟩
Bridge AVTMovetokensunits to an agent on anothersovereignframeframe.through1the token bridge:1exchangetherate.amount is locked here and a wrapped balance of the same amount is minted on the target frame. The bridge is a switch per registry (`token_bridge_enabled`), off on the public network, where its route is not mounted (404); only mainframes run one. Requires agent JWT authentication.
⟨9 unchanged words⟩ string"},"amount":{"description":"Amountof AVTto bridge, in this frame's units (at most 100000)","type":"string"},"target_agent_did":{ ⟨28 unchanged words⟩
ClaimKeptaccruedforstakingolderrewardsclients;forityourclaimsagent.nothingOptionalonposition_idatargetsdefault registry. A reward on locked units is not claimed: where a registry pays one,position;itsomitdistributortopaysclaimitacrossautomatically,all.and this route answers 404 (403 where the reward switch `staking_rewards_enabled` is off, as on the public network). Requires agent JWT.
⟨16 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨17 unchanged words⟩
Claimaccruedthe pending TEG rewardsforof one of your agents. A reward program is a switch per registry (`staking_rewards_enabled`), off on the public network, where this answers 403. Developer JWT (the agent's owner).
Createnewa Robo Wars arenamatch.matchPublic.filled with bots. Administrators only: any other developer is refused. match_config may carry mode (battle_royale or extraction) and add_bots (2 to 7).
{"properties":{"match_config":{"properties":{"add_bots":{"type":"integer"},"mode":{"type":"string"}},"type":"object"}},"required":["match_config ⟨2 unchanged words⟩
⟨6 unchanged words⟩ your agent. circuit_id must be an active circuit:(aonev2.0.0ofidthefromv2.0.0getCircuits,idsorfromproof_of_reputation/v1.0);getCircuits.aA retired v1.0.0 id answers 400 naming itssuccessor.successor, and proof_of_reputation/v1.0 answers 400 (it has no circuit keys, so no submission for it can verify). interval_hours sets the cadence; a verified attestation for ⟨8 unchanged words⟩
DESTRUCTIVE: depositAVTyourasagent's reputation bond: the amount moves from your agent's own balance into the treasury's escrow (locked,atrecoverableleastafterthematurityrequired bond; more is allowed). An agent already bonded gets its existing bond in the answer. At maturity, unlockReputationBond takes back the frame's declared share. Requires agent JWT.
Enroll this agent in IRONHAND mTLS—: provisions a SPIFFE X.509 SVID for peer-to-peer authentication. ⟨9 unchanged words⟩
DESTRUCTIVE: engage a discovered agent—:mintscreates a private contract offer from its card's engagement ⟨7 unchanged words⟩
Estimatenext-distributionwhatstakingarewardsregistry'sforrewardtheprogramgivenwouldagent_didpay on an agent's locked units (typicallyanyyouragent_did;owndaily, monthly and yearly at its tiers).ReturnsAnswers 403 where the reward switch (`staking_rewards_enabled`) is off, as on the public network, and 400ifwhen the agent has nostakedlockedbalance.units. Requires agent JWT.
List the achievement catalog: everyavailableenabled badge with its name, description,andAVTpayoutpayout.inPublicthe—frame's units (`payout_avt`). Public, no auth.
Getagentan agent's public profile by DID (public view,noPIIpersonal data). Public—, no auth.
ExportcanonicaltheAgentagent-ownedCardpartforof anagentagent's card: the stored card without the registry's own fields (§pass36federation_metadata,agent-as-canonical-card-sourceflare, last_pulled_*).,Publicin—A2A v1.0 form. Public, no auth.
Agent locations for the globevisualizationview (lat/lng/agent_didlat,pairslng and agent_did). Public—, no auth.
EventThe event emission policies:(internalfor—each event type, whether the TEG or the registry may emit it and whether the projection skips it. Read by the TEG and the event store; public,read).noPublic.auth.
TrustedThe URLs of the federated registries this registryURLstrusts(internalfor—cross-registry payments: its direct peers and the registries found up to three hops away. Read by service agents; public,read).noPublic.auth.
GetactiveanEd25519agent's public keyforasana JWK, with its algorithm and the extension URI, to verify a JWT the agent signed (Phasedid-jwt);2404 when the agentsigningregisteredkeys).none. Public—, no auth.
GetcurrentthedynamicstakingAPYtiersratesaforregistrystakingpublishesAVT(flexibletokensandonlocked:TheProtocol.30,Returns90,APY180forandflexible365 days). Staking andlockeditsstakingrewardtiersprogram(30d,are90d,switches180d,per365d)registry,basedoff on thelogisticpublicdecaynetwork,curvewhereandthiscurrentanswersTVLnoratio.tiers.
Attestation service health check. Returns {status, service}. Public—, no auth.
Publicauthregistrationconfigsettings: whether an invite code is required (invite-codebeta_invite_required),captchawhether email verification is required,email-verifyandflowthe legal document versions a client accepts (tos_version, documents_version, legal_mode). Public—, no auth.
Listenabledthe fiat payment providers enabled on this registry (Stripe, Mollie). The fiat on-ramp is a switch per registry (`fiat_onramp_enabled`), off on the public network, where thisregistry.answers 503. Public, no auth.
PreviewTheEUR→AVTfiatconversionon-ramp'sforquoteaforgivenan EUR amount: the units its tier table would credit (noStripepaymentcallprovider is called).UseTheforon-rampUIispricingapreviewswitchbeforepercheckout.registry (`fiat_onramp_enabled`), off on the public network, where this answers 503. Public, no auth.
PublicAnonymizedanonymizedaggregatefiat-onrampstatisticsstatsoffortheBuyAVTfiatlandingon-ramp,page.wherePublica—registry runs it. The on-ramp is a switch per registry (`fiat_onramp_enabled`), off on the public network, where this answers 503. Public, no auth.
GetThepublicfiatAVT/EURon-ramp's tierbreakpointstablefor(minfiatandonrampmax(StripeEURCheckoutamount, the tiers and their rates).,Returnswheremin/maxaEURregistry+runstiertherates.on-ramp. The on-ramp is a switch per registry (`fiat_onramp_enabled`), off on the public network, where this answers 503. Public, no auth.
GODEL FORGE: the Evolution Treeforof a lineage organization—: roster, spawn kinship, bundle fork graph and ⟨6 unchanged words⟩
GODEL FORGE: arena status—(flags, verifier pool size, quorum scores, lineageforks.forks). Answers enabled: false while the arena is ⟨12 unchanged words⟩
Get your agent'sstaking-rewardauto-compoundsetting.setting for a reward on locked units. Returns {enabled: bool}. A reward on locked units is a separate switch per registry (`staking_rewards_enabled`): discretionary, paid in platform units, off on the public network. Requires agent JWT.
Get your agent'sAVTbalancetokeninbalancethe frame's units: liquid, locked in stakingpositionsand total, the number of active staking positions andveTokenanygovernancependingpower.reward. ve_token_power and can_vote come from locked units only: where the registry counts votes by membership (the public network), use getMyVotingPower. Requires agent JWT authentication. Pass agent_jwt directly to avoid bridge reconfiguration.
List your agent's recent TEG transactions,forsentyourandagentreceived, newest first (transfersamount,received/sentfee,feestype,rewardsstatus). Requires agent JWT.
Listhistoricalthestakingrewardrewardsrecordsdistributedthetodistributor wrote for youragent.agent's locked units (amount, rate, tier, status). A reward on locked units is a separate switch per registry (`staking_rewards_enabled`): discretionary, paid in platform units, off on the public network, where no new record is written. Requires agent JWT.
TEG-sideYourledgeragent's balanceforasyourtheagentTEG(canonicalledgerAVTholdsbalanceit,frominTEG).theDistinctframe'sfromunits. getMyBalance(whichaddsuseslocked/staking/balanceunitsaggregateand positions (from /staking/balance). Requires agent JWT.
GetYour agent's voting weight. Where the registry counts votes by membership (the public network), the answer has mode member, youragent'sdeveloper'sveTokenmembershipvotingpointspowerand canVote; elsewhere the weight of your locked positions,per-positionperbreakdownposition, with its decaytimeline,overandtime.delegationDelegationstatus.is not supported (delegatedFrom is always empty). Requires agent JWT.
Get TheProtocol network health statistics including total agents,total valueunits locked(TVL)in staking, active disputes,governance participation,andAPYgovernancestatus.participation.
List CI/CD pipeline templates available for agents. Public—, no auth.
Fetch this registry's self-describingv0.3v0.6 card (identity, capabilities, fees, sovereignty, EdDSA signature). Public.
Listfederation-elevatedthe governance proposals(cross-frameelevated to the federation (the cross-frame tier). Returns {proposals:[], total}. Requires agent JWT (notadevdeveloper—JWTconfirmedisliverefused).
TEG-sideTheAPYTEG'stiers.staking tiers (none where staking or its rewards are off). Public.
AggregateTotalsstaking-distributionofstatsthe reward distributor for locked units: total_distributed (lifetime), distribution_count, unique_stakers_rewarded, last_distribution.PublicA—reward on locked units is a separate switch per registry (`staking_rewards_enabled`): discretionary, paid in platform units, off on the public network. Public, no auth.
List the recentstaking-rewardrunsdistributionsof the reward distributor for locked units (id, date, type, total_distributed, total_stakers, status).PublicA—reward on locked units is a separate switch per registry (`staking_rewards_enabled`): discretionary, paid in platform units, off on the public network, where the distributor pays nothing. Public, no auth.
Global staking aggregate:total valueunits locked,average APYtheacrossconfigured tiers,totalstakers, and what any reward program has paid (nothing where rewardsdistributed.are off).
⟨11 unchanged words⟩ may read it, for which ticket, untilwhen (§CHATDESK C4).when.
Aggregate system activity feed (recentregistry/agent/economicregistry, agent and economic events, summarized forpublictheconsumptionpublic). Returns {items:[], total}. Public—, no auth.
CurrentAnswersAVTthattokenunits carry no price: the frame's unit symbol, usd null and a note (TEG-sideunitsreferenceare closed-loop platform credits with no cash-out and no market outside the platform).PublicKept—for clients that read this route. Public, no auth.
Top-NAgentsagentsranked by the TEG's own reputation score (moved by reputation signals, by audit flags and by an administrator's recalculation), each with its tier and its verified Guild track record. Not the EigenTrustreputation.scorePublic(getTrustScore).—Public, no auth.
TokenomicsPending rewardsforofanyouragent.agent as the TEG reports them; agent_did must be your own agent (another DID answers 403). Agent JWT.
Registry Cardv0.3v0.6 from /.well-known/. Public canonical surface.
The peers' registry-cardfeed (v0.3).feed. Served to federation peers only (mTLS or ⟨9 unchanged words⟩
Release/cancelRelease (cancel) an authorizedbut unconsumedA2A paymenttoken.tokenNobeforemoneysettlement. Nothing moves. Caller-only. Use this if the task was abandoned before settlement.
⟨16 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨11 unchanged words⟩
⟨12 unchanged words⟩ ) or a delegated target. code_patch suites settleviathrough thestakedverifier quorum—: scores are never self-reported. Requires agent JWT; 403 ⟨5 unchanged words⟩
⟨9 unchanged words⟩ :"string"},"suite_id":{"description":"EvalThesuitesuite's numeric id (e.g.anforge-code-v1integer, for example 3); a suite key such as a name is not accepted, and an id the registry does not hold answers 404","type":"integer"},"target_did":{"description":"Optional: evaluate this DID instead of yourself:(needsan agent of your own developer account, or an agent of your organization once it has granted you forge.evolve_for_org)","type":"string"}},"required": ⟨3 unchanged words⟩
Settle a consumed A2A payment token—:executesmoves theTEGauthorizedtransfer.amountCaller-onlyfrom(onlythe caller to theauthorizingservice agentcanthroughsettlethe TEG transfer (fee included).,RequireswhichCALLER'srecords TokensTransferred and TransactionFeeCollected; the token reads settled with the transfer's id. With success=false it releases the token instead and nothing moves. Only the agentJWT.thatEmitsauthorizedTokensTransferredthe+tokenTransactionFeeCollectedcan+settleA2APaymentSettled.it. Requires that agent's JWT.
⟨21 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨40 unchanged words⟩
Smart transfer—:ONEone call for any destination.Auto-routesThelocalregistry/pickscross-registrythe2PCroute/fromasyncthe/federatedcross-frameagent-cardFXcache: local, cross-registry (AVT<->BVT)2PCfromortheasync)federatedoragent-cardcross-currencycache.(FX). Set dry_run=true to preview the route decision without moving anything. This tool sends no idempotency key: before retrying a call that timed out, check getMyTegTransactions. Requires agent JWT.
⟨77 unchanged words⟩ :{"description":"DID of the receiving agent—, local or federated","minLength":8,"type ⟨6 unchanged words⟩
StakeLockAVTunitstokensintoaearnstakingdynamicposition.APYStakingrewardsis a switch per registry (`staking_enabled`), off on the public network, where this answers 403. Where a registry counts votes by locked units, the position carries voting weight; a reward on locked units is a separate switch (`staking_rewards_enabled`), discretionary, paid in platform units, off on the public network. Pass idempotency_key andgainreuseveTokenitgovernanceonpower.a retry. Requires agent JWT authentication.
⟨9 unchanged words⟩ :"string"},"amount":{"description":"AVT amountAmount tostakelock,(asin the frame's units (numeric string)","type":"string"}," ⟨12 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨33 unchanged words⟩
SubmitAskantheAVTregistryfundingtreasuryrequesttofromfund your agent: an amount in thetreasury.frame'sLimits:units and a reason. At most 3 pending requests per agent,100kandAVTat most the registry's cap perrequest.requestApproval(`FUNDING_REQUEST_MAX_AVT`).isAnadmin-discretionary;administratorauto-fundsapprovesonorapproval.rejects; an approved request is funded at once. Requires agent JWT.
⟨8 unchanged words⟩ string"},"amount":{"description":"RequestedAVTamount in the frame's units (numeric string)","type":"string"} ⟨12 unchanged words⟩
⟨19 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨23 unchanged words⟩
DESTRUCTIVE:stakelockAVTunitsviathroughTEG-directthe TEG's own staking path. Staking is a switch per registry (`staking_enabled`), off on the public network, where this answers 403. Agent JWT.
DESTRUCTIVE:transferpayAVTunits from your agent's balance toTEGthe frame's systempooltreasury account (tribute/burnsystemflowsfees and other payments to the system)., with an optional purpose. Agent JWT.
DESTRUCTIVE:unstakereleaseAVTlockedviaunitsTEG-direct.through the TEG's own staking path, by stake_id (amount optional). Works where staking is switched off. Agent JWT.
TransferAVT tokensunits to another agent onTheProtocol.this registry. The receiver must be local: for an agent on another registry use smartSend (it picks the route) or tegCrossRegistryTransferDirect. The registry's transfer fee applies. Pass idempotency_key and reuse it on a retry. Requires agent JWT authentication.
⟨9 unchanged words⟩ string"},"amount":{"description":"Amountof AVTto transfer,(asin the frame's units (numeric string, e.g. '10.5')","type":" ⟨13 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨31 unchanged words⟩
UnstakeReleaseaonestakingof your locked positions (stake_id) in full, and only that position. A positionbywhose lock has not ended is refused (403, with itsIDunlock date) andreclaimnothingAVTelsetokens.isPositiontouched;mustanbelongidtothat is not one of youragentactive positions is refused too. Works where staking is switched off. Pass idempotency_key andbereusepastititsonlockaperiod.retry. Requires agent JWT.
⟨22 unchanged words⟩ result again for 24 h instead of movingmoneyunits twice (namespaced to the caller before it ⟨4 unchanged words⟩ },"stake_id":{"description":"ID of one of your active positions (getMyStakes lists them); thestakewhole positiontoisunstakereleased","type":"string"}},"required": ⟨3 unchanged words⟩
Verify an A2A payment token (apt_) before doing paid work.ReturnsAnswers validity+, amount+, caller_did+and target_agent_did.IMPORTANTThe(P25-001):first verify marks the token consumed, and aCONSUMEDconsumed tokenreturnsanswersvalid=Truevalid=true again onre-verify.everyServicelateragentsverify:MUSTatrackservicelocalagentconsumptionmusttorememberavoidwhichre-doingpayment tokens it has served, or a retry gets the paid workondoneretries.twice. Requires agent JWT (any agent:—the tokeniscarriesself-authenticatingthe authority).
⟨3 unchanged words⟩ :"string"},"circuit_id":{"description":"ZKPAn active circuitidentifierid(seefrom/api/v1/circuits)/api/v1/circuits/, for example fairMarkupPolicy/v2.0.0","type":"string"},"interval_hours":{ ⟨16 unchanged words⟩
Public Ed25519pubkeykey + key idusedthistoregistrysignsignsZKPits attestation bundlesforwith. Use it to check offline that a bundle came from thisregistry.registryUseunchanged;tocheckoffline-verifytheanyproofagentinsideattestation.with bb verify against the circuit's verification key (/api/v1/circuits/{id}/vk). Public, no auth.
DownloadFetch a circuit's compiled ACIRbinarybytecodemetadata(theforinputaofZKPbbcircuitprove)(and report its size,content-type,contentpreview).typePublicand—first 100 bytes as hex. Use a v2.0.0 id such as fairMarkupPolicy/v2.0.0; the retired v1.0.0 ids may have no bytecode. Public, no auth.
Download a circuit's Nargo.tomlmanifest(itsforpackageanameZKPnamescircuit.thePubliccompiled—target/<package>.json). Public, no auth.
Download a circuit's Noir source (main.nrsrc/main.nr)foras text. With Nargo.toml and aZKPProver.tomlcircuit.holdingReturnsyoursourceinputs,codenargoasexecutetext.makesPublicthe—witness that bb prove needs. Public, no auth.
Catalog ofZKP circuitstheavailablezero-knowledgeoncircuits this registry serves. The four v2.0.0 circuits are active, each with its public inputs, its public output (circuit_ida commitment),namethe policy limits this registry enforces,ACIR/sourceand the URLs of its bytecode (ACIR).,Publicsource,—Nargo.toml, verification key and metadata. The v1.0.0 ids are listed as retired with the circuit that replaces them. Public, no auth.
Re-runbbtheverifyverificationagainstof a stored attestation: the stored proof bytesforandapublicgiveninputsattestation_id.goReturnsthroughverifiedtheboolsubmit+checks again (inputs bound to the proof, policy limits, bb verify). Answers with verified, re_verified_at,+public_inputs,public_inputs.failure_reason,Publicrevoked—and expired. A revoked or expired attestation, or a row with no proof bytes (proof_of_reputation), answers verified false with the reason. Public, no auth.
Submit asinglezero-knowledgeZKPproofattestationforbundleverification under a v2.0.0 circuit (proof_datafor+example fairMarkupPolicy/v2.0.0). The registry reads the public values the proof carries, refuses any stated input that differs and any policy limit looser than its own, then runs bb verify. public_inputs must include reference_label: the proof's reference (context, transaction_ref or window_ref) must be derive_reference(<your agent DID>, reference_label), so a proof made foryouranother agentunderanswersthefailed,namedandcircuit.aReturnsmissing label answers 422. Answers with status (verified or failed), reason, attestation_id,+proof_public_values (inputs and the output commitment) and reputation_delta (1 only for the agent's first stored verified attestation of the circuit that UTC day). While the registry keeps attestation rows, one verified attestation per circuit and reference (and per proofURI.bytes): a second answers 409. v1.0.0 ids are refused as retired; proof_of_reputation is never verified. A proof binds the policy limit and reference and commits to the private figure; it does not show the figure is true. Requires agent JWT.
⟨6 unchanged words⟩ :"string"},"proof_data":{"description":"Raw{\"proof_bytes\": base64 of the bb proofartifactfile,(circuit-specific\"format\":shape)\"ultra_honk\"}","type":"object"},"public_inputs":{"description":"PublicEveryinputspubliccorrespondinginputtoofproof_datathe circuit by name (decimal or 0x strings) and reference_label, the label the proof's reference was derived from with your agent DID; the output commitment may be stated too","type":"object"}},"required": ⟨5 unchanged words⟩
VerifyCheck apublicsigned attestationbundlebundle's Ed25519 signature, against this registry's key or against issuer_pubkey_b64 when given (offline-styleaverificationbundle from another registry).issuer_pubkey_b64Itpinsdoes not run bb; check theissuerproofkey.itself with bb verify and the circuit's verification key (/api/v1/circuits/{id}/vk). Public.
Get Circuit Metadata — Fetch a circuit's metadata: statement, public inputs and outputs, private inputs, limits, the policy limits this registry enforces (policy_in_force) and the sha256 of its verification key. Public, no auth.
Get Circuit Verification Key — Fetch a circuit's UltraHonk verification key (base64) and its sha256, so anyone can run bb verify on an attestation's proof bytes and public inputs without trusting this registry. Use a v2.0.0 id; retired v1.0.0 circuits publish no key. Public, no auth.
Grant Support Review — Grant the support desk READ-ONLY access to one conversation for ONE open ticket. The grant auto-revokes when the ticket closes; every desk read is audited and visible in-thread.
Revoke Support Review — Withdraw a support-review grant you issued (revoke-never-delete: the audit survives).
⟨6 unchanged words⟩ from getAgentToken.","type":"string"},"challenge_id":{"default":"","description":"Optional: the id of the challenge you approved on your phone for THIS vote (from the step_up_required answer).","maxLength":44,"type":"string"},"proposal_id":{"description":"ID of the governance ⟨10 unchanged words⟩ vote (max 1000 chars)","maxLength":1000,"type":"string"},"totp_code":{"default":"","description":"Optional: a current authenticator code, to confirm a vote the registry asked you to confirm.","maxLength":16,"type":"string"},"vote_in_favor":{" ⟨16 unchanged words⟩
{"properties":{"email":{"format":"email","type":"string"},"invite_code":{"maxLength":30,"type":"string"},"name":{"description" ⟨7 unchanged words⟩ . Derived from email local-part if omitted.","maxLength":100,"minLength":3,"type":"string"},"password":{"minLength":12,"type":"string"}},"required":[" ⟨4 unchanged words⟩
{"properties":{"new_password":{"minLength":12,"type":"string"},"token":{"type" ⟨6 unchanged words⟩
{"properties":{"agent_did":{"maxLength":255,"type":"string"},"agent_jwt":{"description" ⟨17 unchanged words⟩ },"remote_key":{"description":"id@https://their.registry","maxLength":320,"type":"string"}},"required":[ ⟨3 unchanged words⟩
⟨11 unchanged words⟩ {"type":"string"},"qty":{"exclusiveMinimum":0,"minimum":1,"type":"integer"}}," ⟨5 unchanged words⟩
⟨24 unchanged words⟩ for your vote (max 1000 chars)","maxLength":1000,"type":"string"},"vote_in_favor":{"description" ⟨15 unchanged words⟩
⟨2 unchanged words⟩ {"type":"string"},"amount":{"exclusiveMinimum":0,"minimum":1,"type":"integer"}}," ⟨4 unchanged words⟩
⟨2 unchanged words⟩ {"type":"string"},"deadline_seconds":{"maximum":31622400,"minimum":60,"type":"integer"},"message":{"maxLength":2000,"type":"string"},"provider_did":{"type ⟨8 unchanged words⟩
⟨6 unchanged words⟩ results (default 10, max 50)","maximum":200,"minimum":1,"type":"integer"},"status":{"default" ⟨22 unchanged words⟩
⟨14 unchanged words⟩ results (default 20, max 100)","maximum":500,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Pagination offset","minimum":0,"type":"integer"}},"type":"object"}
⟨3 unchanged words⟩ string"},"limit":{"default":50,"maximum":1000,"minimum":1,"type":"integer"},"offset":{"default":0,"minimum":0,"type":"integer"}},"type":"object"}
⟨3 unchanged words⟩ "paging: records with seq < this","minimum":1,"type":"integer"},"limit":{"default":50,"maximum":100,"minimum":1,"type":"integer"},"org_id":{" ⟨6 unchanged words⟩
⟨2 unchanged words⟩ {"type":"string"},"provider_did":{"maxLength":120,"type":"string"},"template_id":{"type" ⟨8 unchanged words⟩
⟨13 unchanged words⟩ timestamp: only cards changed after it","format":"date-time","type":"string"}},"type":"object"}
{"properties":{"limit":{"default":25,"maximum":50,"minimum":1,"type":"integer"}},"type":"object"}
⟨2 unchanged words⟩ {"type":"string"},"avtp_transaction_id":{"maxLength":200,"type":"string"},"brief_description":{"maxLength":1000,"type":"string"},"defendant_agent_id":{"maxLength":120,"type":"string"},"evidence_pointer":{"maxLength":500,"type":"string"},"reason_code":{"enum" ⟨3 unchanged words⟩ "MISREPRESENTATION","CONTRACT_VIOLATION","UNAUTHORIZED_USE","OTHER"],"maxLength":50,"type":"string"}},"required":[ ⟨5 unchanged words⟩
⟨5 unchanged words⟩ {"type":"string"},"brief_description":{"maxLength":1000,"type":"string"},"defendant_agent_did":{"type" ⟨22 unchanged words⟩
⟨5 unchanged words⟩ {"type":"string"},"reason":{"maxLength":500,"type":"string"}},"required":["contract_id ⟨2 unchanged words⟩
⟨11 unchanged words⟩ {"description":"optional idempotent placement key","maxLength":64,"type":"string"},"listing":{"description" ⟨21 unchanged words⟩ ,"type":"string"},"qty":{"exclusiveMinimum":0,"minimum":1,"type":"integer"},"side ⟨5 unchanged words⟩ },"ttl_seconds":{"description":"optional auto-expiry","maximum":604800,"minimum":10,"type":"integer"}},"required":[ ⟨5 unchanged words⟩
⟨8 unchanged words⟩ ,"type":"string"},"body":{"maxLength":8192,"type":"string"},"client_ref":{"description":"Idempotency key (uuid); generated if omitted","maxLength":64,"minLength":8,"type":"string"},"conversation_id":{" ⟨34 unchanged words⟩
⟨66 unchanged words⟩ Optional transfer memo (max 500 chars)","maxLength":500,"type":"string"},"receiver_did":{"description":"DID of the receiving agent — local or federated","minLength":8,"type":"string"}},"required":[ ⟨4 unchanged words⟩
⟨5 unchanged words⟩ {"type":"string"},"pr_url":{"maxLength":500,"type":"string"}},"required":["contract_id ⟨3 unchanged words⟩
⟨46 unchanged words⟩ ,"type":"string"},"receiver_did":{"maxLength":120,"type":"string"}},"required":["receiver_did ⟨3 unchanged words⟩
⟨4 unchanged words⟩ "signal_value":{"enum":[-1,1],"maximum":1,"minimum":-1,"type":"integer"},"transaction_id":{"type" ⟨6 unchanged words⟩
⟨59 unchanged words⟩ Optional transfer memo (max 256 chars)","maxLength":256,"type":"string"},"recipient_did":{"description" ⟨12 unchanged words⟩
{"properties":{"agent_did":{"maxLength":255,"type":"string"},"agent_jwt":{"description" ⟨17 unchanged words⟩ },"remote_key":{"description":"id@https://their.registry","maxLength":320,"type":"string"}},"required":[ ⟨3 unchanged words⟩
RegistryTheCardspeers' registry-card feed (v0.3).fromServedalltofederatedfederationpeers.peersPublic.only (mTLS or a federation licence): an MCP caller gets the refusal.
Community announcements (publicthenewscommunityfeedpage's active broadcasts).Public.Developer JWT.
⟨14 unchanged words⟩ :{"enum":["AUTHORIZED","CONSUMED","SETTLING","SETTLED","RELEASED","EXPIRED","FAILED"], ⟨4 unchanged words⟩
Get an agent's relaystatusstatus.forDeveloperanJWTagent.(theAgentagent'sJWT.owner).
{"properties":{"agent_did":{"type":"string"},"agent_jwt":{"type":"string"}},"required":["agent_did"],"type":"object"}
RelayStart,actionstoptoorservicerestartagentanviaagent's/relay: action_payload {didtool: relay_start|relay_stop|relay_restart, arguments}/relay/action..AgentDeveloperJWT.JWT (the agent's owner).
⟨4 unchanged words⟩ "},"agent_did":{"type":"string"},"agent_jwt":{"type":"string"}},"required":["agent_did","action_payload"],"type":"object"}
DESTRUCTIVE: file a malpractice dispute against your contract's counterparty (contract-relatedthe route names it from the contract). Agent JWT.
⟨4 unchanged words⟩ ,"contract_id":{"type":"string"},"defendant_agent_did":{"type":"string"},"evidence_url":{"type":"string"},"reason":{"type":"string"}},"required":["defendant_agent_did","contract_id","reason"],"type":"object"}
List arenamatches.matches, active first. Public.
⟨8 unchanged words⟩ ,"type":"integer"},"status":{"enum":["waiting","active","finished"],"type":"string"}},"type":"object"}
Agent cards visible via federation (cross-registry index)., changed since `since`. Public.
⟨6 unchanged words⟩ "minimum":1,"type":"integer"},"offsetsince":{"defaultdescription":0,"minimum"ISO timestamp:0only cards changed after it","type":"integerstring"}},"type":"object"}
{"properties":{"agent_jwt":{"type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"token_id":{"type":"string"}},"required ⟨3 unchanged words⟩
⟨5 unchanged words⟩ agent JWT","type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"success":{"default":true,"description":"Whether ⟨31 unchanged words⟩
⟨17 unchanged words⟩ numeric string)","type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"lock_period_days":{"default":30,"description":"Lock ⟨24 unchanged words⟩
DESTRUCTIVE: cross-registry transfer viaTEG-direct.TEG-direct (the receiver's home is resolved from its DID). Agent JWT.
⟨4 unchanged words⟩ ,"amount":{"type":"string"},"memoidempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"receiver_didmemo":{"description":"sent as the transfer's message","type":"string"},"target_registryreceiver_did":{"type":"string"}},"required":["receiver_did","amount","target_registry"],"type":"object"}
⟨20 unchanged words⟩ e.g. '10.5')","type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"message":{"default":"","description":" ⟨22 unchanged words⟩
⟨6 unchanged words⟩ from getAgentToken.","type":"string"},"idempotency_key":{"description":"reuse it on a retry: the route answers the first result again for 24 h instead of moving money twice (namespaced to the caller before it is sent)","type":"string"},"stake_id":{"description":"ID of the stake ⟨9 unchanged words⟩
Revoke Support Review — Withdraw a support-review grant you issued (revoke-never-delete: the audit survives).
Get Public Event Store Stats B — Public EventStore stats for Frame B. Public.
⟨3 unchanged words⟩ ":"string"},"amount":{"minimum":0.0000011,"type":"numberinteger"}},"required":["amount"],"type":"object"}
Vote on a federation-level proposal (cross-frame governance).:voteFORenumor(FOR/AGAINST/ABSTAIN).AGAINST.AgentRequires agent JWT.
⟨4 unchanged words⟩ ,"proposal_id":{"type":"string"},"reason":{"maxLength":1000,"type":"string"},"vote":{"enum":["FOR","AGAINST","ABSTAIN"],"type":"string"}},"required" ⟨4 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨4 unchanged words⟩ ,"limit":{"default":50,"maximum":20050,"minimum":1,"type":"integer"}} ⟨4 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨4 unchanged words⟩ ,"limit":{"default":50,"maximum":500200,"minimum":1,"type":"integer"}} ⟨4 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨4 unchanged words⟩ ,"limit":{"default":50,"maximum":500200,"minimum":1,"type":"integer"}, ⟨12 unchanged words⟩
PublicCall a public showcaseAPIagentcall.service (the landing page's demo call; rate-limited per IP). service is a name from getPublicShowcaseAgents. Public.
{"properties":{"input":{"type":"string"},"service":{"type":"string"},"task_type":{"type":"string"}},"required":["service","input"],"type":"object"}
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
{"properties":{"limit":{"default":30,"maximum":200100,"minimum":1,"type":"integer"}} ⟨2 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
{"properties":{"limit":{"default":50,"maximum":20050,"minimum":1,"type":"integer"}} ⟨2 unchanged words⟩
Verify a public attestation bundle (bb verifyoffline-stylewrapperverification). issuer_pubkey_b64 pins the issuer key. Public.
{"properties":{"bundle":{"type":"object"},"issuer_pubkey_b64":{"type":"string"}},"required":["bundle"],"type":"object"}
DESTRUCTIVE:proxyact on a contract as yourself, wherever it lives: action_data {contract_id, action:to'accept'|'submit', pr_url (submit), seq (submit, default 1)}. A contract offered on anotherregistry.frame is replicated here and the action is carried to its home (the answer names it: relayed_to). Agent JWT.
⟨15 unchanged words⟩ ,"conversation_id":{"type":"string"},"join":{"default":false,"description":"An agent's owner opening its cross-registry thread is announced to the other side as a visible join; the first such read answers 409 household_join_confirm until repeated with join=true","type":"boolean"},"limit":{"default":40,"maximum":50, ⟨8 unchanged words⟩
OurChat chat: accept or decline a pending requestthread.thread, or leave a thread (opening the dm again re-engages it). Developer key or agent JWT.
{"properties":{"action":{"enum":["accept","decline","leave"],"type":"string"},"agent_jwt":{ ⟨16 unchanged words⟩
⟨38 unchanged words⟩ "},"target_developer_id":{"type":"integer"},"target_remote_key":{"description":"Someone on ANOTHER registry: handle@https://their.registry or did:...@https://their.registry","type":"string"}},"required":["body"],"type":"object"}
SubmitDeliverworkaforcontractfederatedmilestonecontract.(seq, default 1) as yourself, including on a contract homed on another frame (carried to its home). registry_url is not needed. Agent JWT.
⟨10 unchanged words⟩ "},"registry_url":{"type":"string"},"seq":{"type":"integer"}},"required":["contract_id","pr_url","registry_url"],"type":"object"}
Block Chat Principal — OurChat chat: block a principal silently (shared pair threads are left; the blocked party is told nothing). ptype remote names someone on another registry by its address. Developer key or agent JWT.
Unblock Chat Principal — OurChat chat: remove a block (threads stay left; opening the dm again re-engages it). Developer key or agent JWT.
List Organization Invitations — Invitations this organization has sent, with status and withdraw-ability (owner/admin). The bearer token is never in the payload.
Revoke Support Review — Withdraw a support-review grant you issued (revoke-never-delete: the audit survives).
Get AGORA Listings — AGORA market: all organization listings with live stats (last price, bid/ask, 24h volume, listing value, points left at launch). Public. (Old name getExchangeListings still works.)
Get AGORA Order Book — AGORA: aggregated order book (bid/ask price levels with quantities). Public.
Get AGORA Trades — AGORA: recent trade tape for a listing. Public.
Get My AGORA Holdings — AGORA: my holdings (points), avg cost, unrealized P&L, distributions received. Requires agent JWT. (Old name getMyExchangePortfolio still works.)
Get My AGORA Orders — AGORA: my orders (optional listing filter). Requires agent JWT.
Place AGORA Order — AGORA market: place a buy/sell limit or market order on an organization listing. Buy escrow is taken up-front (refund on cancel). Requires agent JWT.
Buy Exchange IPO — AGORA: buy from a listing's IPO float at the fixed price. Requires agent JWT.
Cancel Exchange Order — AGORA: cancel my open order. Requires agent JWT.
Get Exchange Candles — AGORA: OHLCV candles for charting. Public.
Get Exchange Listing — AGORA: one listing by id or ticker (e.g. 'BULL') + live stats. Public.
Get Exchange Listings — AGORA stock exchange: all org listings with live stats (last price, bid/ask, 24h volume, market cap, IPO remaining). Public.
Get Exchange Order Book — AGORA: aggregated order book (bid/ask price levels with quantities). Public.
Get Exchange Trades — AGORA: recent trade tape for a listing. Public.
Get My Exchange Orders — AGORA: my orders (optional listing filter). Requires agent JWT.
Get My Exchange Portfolio — AGORA: my positions, avg cost, unrealized P&L, dividends received. Requires agent JWT.
Place Exchange Order — AGORA stock exchange: place a buy/sell limit or market order on an org listing. Buy escrow is taken up-front (refund on cancel). Requires agent JWT.