{"name":"Vaultfire — Register Agent","summary":"Mint an ERC-8004 agent identity in VaultfireIdentityRegistry. Reserves a Vaultfire name and pins an agent metadata blob.","description":"Vaultfire — the canonical onboarding call for any agent that wants to use Vaultfire. Registers a unique name (3–32 chars, lowercase alphanumeric + hyphens) and an agentURI metadata blob (JSON) inside the identity registry. The metadata blob is built server-side from your description, specializations, and capabilities. — ENDPOINT BEHAVIOR: GET returns this spec for free. POST (paid $0.10 USDC) returns an unsigned tx; sign locally. — ON-CHAIN MECHANIC (VaultfireIdentityRegistry.registerAgent(string name, string agentURI, address controller)): name and agentURI MUST be non-empty; controller defaults to msg.sender; the name MUST not already be registered.","priceUsdc":"0.50","tags":["vaultfire","agent-identity","erc-8004","register"],"mimeType":"application/json","inputSchema":{"bodyType":"json","bodyFields":{"walletAddress":{"type":"address","required":true,"description":"Agent / controller wallet — becomes msg.sender. Will own the agent identity."},"name":{"type":"string","required":true,"description":"Agent name. 3–32 chars, lowercase alphanumeric + hyphens. “.vns” suffix is stripped."},"description":{"type":"string","required":false,"description":"Free-text description (≤200 chars). Embedded in the on-chain metadata JSON.","default":""},"specializations":{"type":"array","required":false,"description":"Array of specialization strings.","default":[]},"capabilities":{"type":"array","required":false,"description":"Array of capability strings.","default":[]},"identityType":{"type":"string","required":false,"description":"Identity discriminator.","enum":["agent","human","org"],"default":"agent"},"chain":{"type":"string","required":false,"description":"Target chain. Default base.","enum":["base","avalanche","arbitrum","polygon"],"default":"base"}}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean","required":true,"description":"Always true on a 200 response."},"txData":{"type":"object","required":true,"description":"Unsigned tx: { to, data, value, chainId, gasEstimate }. Sign locally and broadcast."},"chain":{"type":"string","required":true,"description":"The chain the tx is prepared for."},"contract":{"type":"address","required":true,"description":"Target contract on the chosen chain."},"explorer":{"type":"string","required":true,"description":"Block-explorer URL for the contract."},"message":{"type":"string","required":true,"description":"Human-readable summary the caller can show in their UI."}}},"contract":{"name":"VaultfireIdentityRegistry","solidityFunction":"registerAgent(string name, string agentURI, address controller)","selector":"0x2b3ce0bf","payable":false,"usesEip3009":false,"valueConstraints":null},"networks":[{"chain":"base","chainId":8453,"rpc":"https://base-rpc.publicnode.com","explorer":"https://basescan.org","contract":"0xa7BD20bf5De63df949cA5Be2F20835978eCba81A","contractExplorerUrl":"https://basescan.org/address/0xa7BD20bf5De63df949cA5Be2F20835978eCba81A","usdcDomain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}},{"chain":"avalanche","chainId":43114,"rpc":"https://api.avax.network/ext/bc/C/rpc","explorer":"https://snowtrace.io","contract":"0x7448057C95Fb8a8B974a566cdcc9Cd042166A3f8","contractExplorerUrl":"https://snowtrace.io/address/0x7448057C95Fb8a8B974a566cdcc9Cd042166A3f8","usdcDomain":{"name":"USD Coin","version":"2","chainId":43114,"verifyingContract":"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"}},{"chain":"arbitrum","chainId":42161,"rpc":"https://arb1.arbitrum.io/rpc","explorer":"https://arbiscan.io","contract":"0x83dd216449B3F0574E39043ECFE275946fa492e9","contractExplorerUrl":"https://arbiscan.io/address/0x83dd216449B3F0574E39043ECFE275946fa492e9","usdcDomain":{"name":"USD Coin","version":"2","chainId":42161,"verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"}},{"chain":"polygon","chainId":137,"rpc":"https://polygon-bor-rpc.publicnode.com","explorer":"https://polygonscan.com","contract":"0xD9bF6D92a1D9ee44a48c38481c046a819CBdf2ba","contractExplorerUrl":"https://polygonscan.com/address/0xD9bF6D92a1D9ee44a48c38481c046a819CBdf2ba","usdcDomain":{"name":"USD Coin","version":"2","chainId":137,"verifyingContract":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"}}],"servicePayee":{"address":"0xfA15Ee28939B222B0448261A22156070f0A7813C","ens":"ghostkey.base.eth","note":"All Vaultfire service fees route to the protocol payee. Never send funds to any other address claiming to be Vaultfire."},"integration":["1. GET this endpoint (free) to retrieve the spec.","2. Build the POST body matching inputSchema.bodyFields.","3. POST with valid x402 payment header (price: 0.50 USDC).","4. Endpoint returns unsigned txData. Sign LOCALLY in your wallet. Vaultfire NEVER accepts private keys.","5. Broadcast the signed tx to the chain RPC. Track via explorer URL."],"reverts":[{"condition":"name already taken","reason":"name taken"},{"condition":"name invalid format","reason":"bad name"},{"condition":"agentURI empty","reason":"empty URI"}],"liveProof":{"status":"pattern-only","note":"This specific action has not yet been exercised on mainnet under live monitoring. The underlying primitive (tx-prepare with caller-side signing, EIP-3009 settlement where applicable) is verified by the live atomic-bond proof linked below."},"patternProof":{"pattern":"EIP-3009 + atomic settlement (pay-and-execute, one transaction, one signature)","contract":"0x3479307333c0AF75423A9B2F6826441Feb1F9F85","chain":"base","chainId":8453,"verifiedOn":"sourcify","verifiedMatch":"exact_match","exampleTx":"0x9b5b0643c212ea095db02e86cc739c13473d21d27fa94b7371078d549a0fdae0","exampleBlock":46383869,"exampleGas":276841,"exampleNote":"First production atomic bond. Single tx emitted USDC AuthorizationUsed + USDC Transfer + AtomicBondCreated. The same EIP-3009 + atomic-execute primitive is the basis of every payable Vaultfire action.","explorerUrl":"https://basescan.org/tx/0x9b5b0643c212ea095db02e86cc739c13473d21d27fa94b7371078d549a0fdae0","sourceUrl":"https://repo.sourcify.dev/contracts/full_match/8453/0x3479307333c0AF75423A9B2F6826441Feb1F9F85/"},"security":{"privateKeysPolicy":"Vaultfire NEVER accepts private keys. All POST handlers reject any field shaped like a private key (privateKey, private_key, secret, mnemonic, seed).","signingModel":"tx-prepare: the endpoint returns unsigned calldata. The caller signs locally in their wallet (Base App, MetaMask, WalletConnect, Coinbase Wallet, etc.) and broadcasts.","custodyModel":"no-custody: Vaultfire holds nothing. Funds and stakes settle inside the caller's own transaction.","x402Facilitator":"Verify / Settle / Submit-signed are CORS-restricted to known marketplace origins. Nonces are durably deduplicated in Upstash KV (fail-closed on KV outage)."},"links":{"documentation":"https://theloopbreaker.com/docs","protocol":"https://theloopbreaker.com","repository":"https://gitlawb.com/z6MkryiNsYdFEMHv95wxzSQ1vtFXPyVQQrxXdPw3tE5HpfxV/vaultfire","relatedEndpoints":["/api/x402/actions/update-agent-uri","/api/x402/actions/deactivate-agent","/api/x402/actions/grant-consent"]},"_discovery":{"version":"1.0","emittedBy":"vaultfire-x402","endpointStability":"stable","getIsFree":true,"postIsPaid":true}}