{"serverId":"mcp-registry/xyz.tenzro/tenzro","tools":[{"name":"adaptive_burn_get_config","fixed":{"name":"adaptive_burn_get_config","description":"Show the current adaptive burn-rate config — base/local/paymaster burn bps with their treasury complements. Paymaster is locked at 100% burn. The dial moves only via on-chain governance proposals (see adaptive_burn_get_recommendation).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"adaptive_burn_get_metrics","fixed":{"name":"adaptive_burn_get_metrics","description":"Show the latest supply-side metrics snapshot — block height, circulating supply, rolling-window epoch delta, burn/emission breakdown. Drives the recommendation engine.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"adaptive_burn_get_recommendation","fixed":{"name":"adaptive_burn_get_recommendation","description":"Show the current adaptive-burn recommendation — action (NoChange / IncreaseBurnPct / DecreaseBurnPct / AlarmHighInflation / AlarmHighDeflation), magnitude bps, and whether it's above the auto-proposal floor. Pure function of metrics + targets, no side effects.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"adaptive_burn_list_proposals","fixed":{"name":"adaptive_burn_list_proposals","description":"List pending and historical adaptive-burn governance proposals.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"add_hardware_signer","fixed":{"name":"add_hardware_signer","description":"Install a hardware-signer ERC-7579 validator (Ledger / Trezor / GridPlus / YubiKey / generic) as an additional ANDed validator on a smart account.","inputSchema":{"type":"object","title":"PasskeyAddHardwareSignerParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","device_kind","public_key_hex"],"properties":{"label":{"type":["string","null"]},"device_kind":{"type":"string"},"public_key_hex":{"type":"string"},"account_address":{"type":"string"},"required_always":{"type":"boolean","default":false},"required_above_wei":{"type":["string","null"]}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"add_passkey","fixed":{"name":"add_passkey","description":"Add an additional WebAuthn device credential to an existing passkey-bound smart account. The account must already have at least one enrolled credential.","inputSchema":{"type":"object","title":"AddPasskeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","new_passkey_public_key_hex","new_credential_id_hex"],"properties":{"label":{"type":["string","null"],"description":"Optional display label (e.g. \"Phone 1\", \"YubiKey\")."},"account_address":{"type":"string","description":"Hex-encoded 20-byte smart-account address to add the credential to."},"new_credential_id_hex":{"type":"string","description":"WebAuthn credential id (hex) of the new credential."},"new_passkey_public_key_hex":{"type":"string","description":"Hex-encoded P-256 public key of the new credential (raw 64-byte X||Y, SEC1 65-byte, or COSE_Key CBOR)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":253,"tokensAfter":253},{"name":"add_passkey_guardian","fixed":{"name":"add_passkey_guardian","description":"Add a social-recovery guardian to a smart account. The guardian holds an Ed25519 + ML-DSA-65 composite key and will be asked to sign rotation proofs when the user loses access to their primary passkey.","inputSchema":{"type":"object","title":"PasskeyAddGuardianParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","guardian_ed25519_pubkey_hex","guardian_ml_dsa_pubkey_hex"],"properties":{"label":{"type":["string","null"]},"threshold":{"type":["integer","null"],"format":"uint32","minimum":0},"account_address":{"type":"string"},"guardian_ml_dsa_pubkey_hex":{"type":"string"},"guardian_ed25519_pubkey_hex":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"add_trusted_issuer","fixed":{"name":"add_trusted_issuer","description":"Operator-only. Register a trusted credential issuer DID. Requires X-Tenzro-Admin-Token. Pass topics to scope trust to specific gossip topic ids, or leave it empty to trust the issuer for all topics. Persisted to the compliance store.","inputSchema":{"type":"object","title":"AddTrustedIssuerParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["issuer_did"],"properties":{"name":{"type":"string","default":"","description":"Free-form label for the issuer."},"topics":{"type":"array","items":{"type":"integer","format":"uint64","minimum":0},"default":[],"description":"Gossip topic ids the issuer is trusted for. Empty means trusted for all topics."},"issuer_did":{"type":"string","description":"Issuer DID to trust for credential/attestation verification."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":230,"tokensAfter":230},{"name":"ap2_protocol_info","fixed":{"name":"ap2_protocol_info","description":"Return AP2 protocol metadata: version, supported mandate types, supported VC formats, and issuer DID methods recognized by this node.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"ap2_sign_mandate","fixed":{"name":"ap2_sign_mandate","description":"Sign an AP2 mandate (Intent or Cart) with the auth-bound wallet's Ed25519 key, returning a verified Verifiable Digital Credential (VDC). Auth: DPoP+JWT mandatory. Wallet must be Ed25519. signer_did must match the wallet's controller DID.","inputSchema":{"type":"object","title":"Ap2SignMandateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["mandate_kind","mandate","signer_did"],"properties":{"mandate":{"description":"The mandate object — CheckoutMandate or PaymentMandate, matching mandate_kind. Auth-bound wallet's Ed25519 key signs the canonical preimage.","type":"string"},"signer_did":{"type":"string","description":"Signer DID — must match the controller of the auth-bound wallet (principal for checkout, agent for payment)."},"mandate_kind":{"type":"string","description":"Mandate kind (AP2 v0.2): 'checkout' (principal-signed pre-authorization) or 'payment' (agent-signed final-offer commit)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: mandate. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":267,"tokensAfter":272},{"name":"ap2_validate_mandate_pair","fixed":{"name":"ap2_validate_mandate_pair","description":"Validate an AP2 v0.2 Checkout+Payment mandate pair for consistency: ensures the PaymentMandate references the CheckoutMandate, amounts/items match the checkout's constraints, and both VDCs verify. When enforce_delegation=true, additionally cross-checks the agent's TDIP DelegationScope against the payment total (TDIP identifies. AP2 authorizes. Tenzro settles).","inputSchema":{"type":"object","title":"Ap2ValidateMandatePairParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["checkout_vdc","payment_vdc"],"properties":{"payment_vdc":{"description":"AP2 v0.2 PaymentMandate VDC (agent-to-merchant final-offer commit) as JSON-LD VC envelope","type":"string"},"checkout_vdc":{"description":"AP2 v0.2 CheckoutMandate VDC (principal-to-agent pre-authorization) as JSON-LD VC envelope","type":"string"},"enforce_delegation":{"type":"boolean","default":false,"description":"If true, also enforce the agent's TDIP DelegationScope against the payment total via IdentityRegistry::enforce_operation. Default: false (AP2-only validation)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: payment_vdc, checkout_vdc. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":300,"tokensAfter":309},{"name":"ap2_verify_mandate","fixed":{"name":"ap2_verify_mandate","description":"Verify a single AP2 mandate (Verifiable Digital Credential). Checks the VDC proof, issuer, and schema for Intent, Cart, or Payment mandates per Google's AP2 spec.","inputSchema":{"type":"object","title":"Ap2VerifyMandateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["vdc"],"properties":{"vdc":{"description":"Verifiable Digital Credential (VDC) mandate object — the full JSON-LD VC envelope with proof","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: vdc. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":134,"tokensAfter":139},{"name":"assign_task","fixed":{"name":"assign_task","description":"Assign a task to a specific agent on the Tenzro Task Marketplace. Moves task from open to assigned state and notifies the agent. Returns the updated task record.","inputSchema":{"type":"object","title":"AssignTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","agent_did"],"properties":{"task_id":{"type":"string","description":"Task ID to assign"},"agent_did":{"type":"string","description":"DID of the agent being assigned the task"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"authorize_database_read","fixed":{"name":"authorize_database_read","description":"Check — without side effects — whether caller_did may read the database. Returns {authorized, reason}.","inputSchema":{"type":"object","title":"AuthorizeDatabaseReadParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id","caller_did"],"properties":{"envelope":{"type":["string","null"],"description":"Hex-encoded signed DID envelope proving control of caller_did"},"caller_did":{"type":"string","description":"Caller DID to check"},"capability":{"type":["string","null"],"description":"AAP capability token when the caller is not the owner"},"database_id":{"type":"string","description":"Database id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"axelar_get_message","fixed":{"name":"axelar_get_message","description":"Look up an Axelar GMP message by payload hash.","inputSchema":{"type":"object","title":"AxelarGetMessageParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payload_hash"],"properties":{"payload_hash":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"axelar_list_chains","fixed":{"name":"axelar_list_chains","description":"List supported Axelar chains. Reach spans 30+ chains: EVM, Cosmos (Osmosis, Cosmos Hub, Juno, Neutron, Injective, Kujira, Crescent, Evmos), Move (Aptos, Sui), Stellar, XRP Ledger, Hyperliquid, Filecoin EVM, Kava.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"axelar_pay_gas","fixed":{"name":"axelar_pay_gas","description":"Pre-pay the Axelar Gas Service for a previously-dispatched message.","inputSchema":{"type":"object","title":"AxelarPayGasParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payload_hash","source_chain","destination_chain","destination_address","gas_token","gas_amount"],"properties":{"gas_token":{"type":"string"},"gas_amount":{"type":"string"},"payload_hash":{"type":"string"},"source_chain":{"type":"string"},"destination_chain":{"type":"string"},"destination_address":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"babylon_get_finality_provider","fixed":{"name":"babylon_get_finality_provider","description":"Read the Babylon finality-provider record for a Tenzro validator.","inputSchema":{"type":"object","title":"BabylonValidatorParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["validator"],"properties":{"validator":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"babylon_list_delegations","fixed":{"name":"babylon_list_delegations","description":"List BTC delegations for a finality provider.","inputSchema":{"type":"object","title":"BabylonValidatorParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["validator"],"properties":{"validator":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"babylon_list_finality_providers","fixed":{"name":"babylon_list_finality_providers","description":"List every registered Babylon finality provider.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":44,"tokensAfter":44},{"name":"babylon_submit_finality_signature","fixed":{"name":"babylon_submit_finality_signature","description":"Submit an EOTS (Extractable One-Time Signature) over a Tenzro block hash. Equivocation slashes the BTC delegations bonded to the finality provider.","inputSchema":{"type":"object","title":"BabylonSubmitFinalitySignatureParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["validator","block_hash","eots_signature"],"properties":{"validator":{"type":"string"},"block_hash":{"type":"string"},"eots_signature":{"type":"string","description":"EOTS signature over the block hash (0x-prefixed hex)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"call_rpc","fixed":{"name":"call_rpc","description":"Invoke any JSON-RPC method this node serves, by name. The escape hatch for everything without a dedicated tool — discover names with list_rpc_methods first. Authorization is unchanged: the call runs behind the same admin-token gate, API-key scope gate, and default-deny classification as a direct JSON-RPC request, so this reaches exactly what your credentials already allow and nothing more.","inputSchema":{"type":"object","title":"CallRpcParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["method"],"properties":{"method":{"type":"string","description":"Exact JSON-RPC method name as returned by list_rpc_methods, e.g. `tenzro_previewServe`"},"params":{"description":"The method's parameters as a JSON object. Omit for methods that take none","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: params. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":225,"tokensAfter":230},{"name":"cancel_task","fixed":{"name":"cancel_task","description":"Cancel a pending or active task on the Tenzro Task Marketplace. Only the original requester can cancel. Refunds any escrowed TNZO. Returns cancellation confirmation.","inputSchema":{"type":"object","title":"CancelTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","requester_address"],"properties":{"task_id":{"type":"string","description":"Task ID to cancel"},"requester_address":{"type":"string","description":"Hex-encoded address of the task requester (for authorization)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"capital_intent_assign","fixed":{"name":"capital_intent_assign","description":"Assign a solver to a capital intent; if `payer` is set, lock the principal escrow up to the authorized ceiling. Mirrors tenzro_capitalIntentAssign.","inputSchema":{"type":"object","title":"CapitalIntentAssignParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["intent_id"],"properties":{"auto":{"type":"boolean","default":false,"description":"Auto-select the best quote by ERC-8004 reputation, then price, then eta."},"payee":{"type":["string","null"]},"payer":{"type":["string","null"]},"intent_id":{"type":"string"},"solver_did":{"type":["string","null"],"description":"Explicit solver. Omit (or set `auto`) to auto-rank quotes."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":197,"tokensAfter":197},{"name":"capital_intent_execute","fixed":{"name":"capital_intent_execute","description":"Record one executed settlement leg of a capital intent. Mirrors tenzro_capitalIntentExecute.","inputSchema":{"type":"object","title":"CapitalIntentExecuteParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["intent_id","leg"],"properties":{"leg":{"description":"Leg: {venue, asset_id, side(buy|sell), quantity, unit_price, settlement_ref?, proof?}","type":"string"},"intent_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: leg. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":131},{"name":"capital_intent_open","fixed":{"name":"capital_intent_open","description":"Open a signed Capital Intent — regulated capital allocation over tokenized assets (the capital-markets analog of an AP2 Intent Mandate; objective = acquire/exit/rebalance/hedge/yield, with reg regime + KYC + ceilings). Mirrors tenzro_capitalIntentOpen.","inputSchema":{"type":"object","title":"CapitalIntentOpenParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["intent"],"properties":{"intent":{"description":"CapitalIntent object: {intent_id, principal_did, objective{kind,...}, constraints, compliance{reg_regime,min_kyc_tier,accredited_only}, authorization{max_total_notional,...}, settlement, signature?}","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: intent. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":191,"tokensAfter":195},{"name":"capital_intent_settle","fixed":{"name":"capital_intent_settle","description":"Settle a capital intent: release escrow to the solver, write ERC-8004 feedback, finalize with a receipt. Mirrors tenzro_capitalIntentSettle.","inputSchema":{"type":"object","title":"CapitalIntentSettleParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["intent_id"],"properties":{"payee":{"type":["string","null"]},"intent_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"ccip_get_fee","fixed":{"name":"ccip_get_fee","description":"Quote a Chainlink CCIP fee via Router.getFee() eth_call. CCIP is Tenzro's regulated rail: OCR commit-store committee + RMN ARM blessing. Returns native fee in wei on the source chain.","inputSchema":{"type":"object","$defs":{"CcipTokenAmountInput":{"type":"object","required":["token","amount"],"properties":{"token":{"type":"string","description":"ERC-20 token address on the source chain (hex with 0x)"},"amount":{"type":"string","description":"Amount in token base units as a decimal string"}}}},"title":"CcipGetFeeMcpParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["source_chain","dest_chain","receiver"],"properties":{"data_hex":{"type":["string","null"],"description":"Hex-encoded data payload (optional, default empty)"},"receiver":{"type":"string","description":"Receiver address on the destination chain (hex)"},"fee_token":{"type":["string","null"],"description":"Fee token address (optional, default native 0x000…000)"},"dest_chain":{"type":"string","description":"Destination chain name or numeric CCIP selector"},"source_chain":{"type":"string","description":"Source chain (ethereum, arbitrum, base)"},"token_amounts":{"type":["array","null"],"items":{"$ref":"#/$defs/CcipTokenAmountInput"},"description":"Token amounts to transfer (optional, default none)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":373,"tokensAfter":373},{"name":"ccip_send","fixed":{"name":"ccip_send","description":"Prepare a Router.ccipSend() envelope — returns calldata + msg.value ready for the caller to sign and broadcast via eth_sendRawTransaction.","inputSchema":{"type":"object","$defs":{"CcipTokenAmountInput":{"type":"object","required":["token","amount"],"properties":{"token":{"type":"string","description":"ERC-20 token address on the source chain (hex with 0x)"},"amount":{"type":"string","description":"Amount in token base units as a decimal string"}}}},"title":"CcipSendMcpParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["source_chain","dest_chain","receiver"],"properties":{"data_hex":{"type":["string","null"],"description":"Hex-encoded data payload (optional)"},"receiver":{"type":"string","description":"Receiver address on the destination chain (hex)"},"fee_token":{"type":["string","null"],"description":"Fee token address (optional, default native)"},"gas_limit":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Destination-chain execution gas limit (default 200000)"},"dest_chain":{"type":"string","description":"Destination chain name or selector"},"source_chain":{"type":"string","description":"Source chain (ethereum, arbitrum, base)"},"token_amounts":{"type":["array","null"],"items":{"$ref":"#/$defs/CcipTokenAmountInput"},"description":"Token amounts to transfer (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":384,"tokensAfter":384},{"name":"cct_get_pool","fixed":{"name":"cct_get_pool","description":"Get a single TNZO CCT pool by chain name. Returns chain_id, chain_selector, pool_address, token_address, pool_type, contract_name, capacities, refill_rate.","inputSchema":{"type":"object","title":"CctGetPoolParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["chain"],"properties":{"chain":{"type":"string","description":"Chain name (e.g. ethereum, base, arbitrum, optimism, solana)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"cct_list_pools","fixed":{"name":"cct_list_pools","description":"List all TNZO CCT pools in the canonical mainnet registry (Ethereum LockRelease; Base/Arbitrum/Optimism/Solana BurnMint).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"check_compliance","fixed":{"name":"check_compliance","description":"Check whether a token transfer would be compliant with the registered ERC-3643 compliance rules. Returns compliant/non-compliant status with specific violation details. Does not execute the transfer.","inputSchema":{"type":"object","title":"CheckComplianceParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["token_id","from","to","amount"],"properties":{"to":{"type":"string","description":"Hex-encoded recipient address"},"from":{"type":"string","description":"Hex-encoded sender address"},"amount":{"type":"integer","format":"uint128","minimum":0,"description":"Amount in base units"},"token_id":{"type":"string","description":"Token ID (hex, 32 bytes) or symbol"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":205,"tokensAfter":205},{"name":"close_payment_channel","fixed":{"name":"close_payment_channel","description":"Close a micropayment channel with the final balance. Requires sender signature on the final state. Settles remaining balance on-chain and returns any unused deposit.","inputSchema":{"type":"object","title":"ClosePaymentChannelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["channel_id","final_balance_wei","sender_signature_hex"],"properties":{"channel_id":{"type":"string","description":"Payment channel ID to close"},"final_balance_wei":{"type":"string","description":"Final balance owed to recipient in wei (1 TNZO = 10^18 wei). Accepts u64 number or decimal string."},"sender_signature_hex":{"type":"string","description":"Hex-encoded signature from the channel sender authorizing the final balance"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"complete_task","fixed":{"name":"complete_task","description":"Mark a task as completed with a result payload. Optionally attach a proof of completion. Triggers settlement payment to the completing agent. Returns the completion receipt.","inputSchema":{"type":"object","title":"CompleteTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","agent_did","result"],"properties":{"result":{"description":"JSON result payload from task completion","type":"string"},"task_id":{"type":"string","description":"Task ID to mark as complete"},"agent_did":{"type":"string","description":"DID of the agent that completed the task"},"proof_hex":{"type":["string","null"],"description":"Optional proof of completion (hex-encoded)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: result. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":199,"tokensAfter":204},{"name":"compute_book_rental","fixed":{"name":"compute_book_rental","description":"Book a compute rental against this node's compute provider. The renter pre-funds total_epochs from their deposit.","inputSchema":{"type":"object","title":"ComputeBookRentalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["renter","total_epochs"],"properties":{"renter":{"type":"string","description":"Renter address (hex)"},"total_epochs":{"type":"integer","format":"uint64","minimum":0,"description":"Number of epochs to pre-fund"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"compute_fee_route_payouts","fixed":{"name":"compute_fee_route_payouts","description":"Pure preview: how would a `gross_wei` amount be split across a fee route's recipients? Truncates to last for the remainder. Does not settle — settlement is consensus-mediated.","inputSchema":{"type":"object","title":"FeeRoutePayoutsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["fee_route_id","gross_wei"],"properties":{"gross_wei":{"type":"string","description":"Gross amount in wei (decimal string — u128)"},"fee_route_id":{"type":"string","description":"32-byte hex fee route id"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"compute_get_rental","fixed":{"name":"compute_get_rental","description":"Look up a compute rental by id.","inputSchema":{"type":"object","title":"ComputeGetRentalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["rental_id"],"properties":{"rental_id":{"type":"string","description":"Compute rental id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"compute_set_pricing","fixed":{"name":"compute_set_pricing","description":"Set the per-epoch compute pricing policy. Use mode \"dynamic\" with a non-zero capacity and optional min_rate/max_rate bounds; fixed-rate is the spawn default.","inputSchema":{"type":"object","title":"ComputeSetPricingParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["mode"],"properties":{"mode":{"type":"string","description":"Pricing mode; set to \"dynamic\" (fixed-rate is the immutable spawn default)"},"capacity":{"type":["string","null"],"description":"Epoch-slot capacity for dynamic pricing (decimal string — u128)"},"max_rate":{"type":["string","null"],"description":"Maximum rate ceiling in wei per epoch (decimal string — u128)"},"min_rate":{"type":["string","null"],"description":"Minimum rate floor in wei per epoch (decimal string — u128)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":231,"tokensAfter":231},{"name":"compute_settle_epoch","fixed":{"name":"compute_settle_epoch","description":"Settle one epoch of an active compute rental, gated on the provider's availability proof. A valid proof streams the epoch slice to the provider; an invalid or missing proof makes the renter whole from stake.","inputSchema":{"type":"object","title":"ComputeSettleEpochParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["rental_id"],"properties":{"rental_id":{"type":"string","description":"Compute rental id"},"proof_valid":{"type":["boolean","null"],"description":"Whether the provider's availability proof is valid (default true)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":169,"tokensAfter":169},{"name":"compute_status","fixed":{"name":"compute_status","description":"Summary of this node's compute-rental state: effective rate and active rental count.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"create_api_key","fixed":{"name":"create_api_key","description":"Operator-only. Mint a new API key on this node. Requires the caller's MCP request to carry an `X-Tenzro-Admin-Token` header matching the node's configured admin token. `class` controls revocability: `subject` (default) — subject can self-revoke, admin can revoke; `operator_internal` — admin-only revoke; `operator_protected` — not revokable via RPC by anyone (rotate via operator secret + restart). The MCP tool auto-injects the `confirm_operator_protected` interlock when class is `operator_protect","inputSchema":{"type":"object","title":"CreateApiKeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["label"],"properties":{"class":{"type":["string","null"],"description":"Key class — controls revocability. `subject` (default): subject can self-revoke, admin can revoke. `operator_internal`: admin-only revoke. `operator_protected`: not revokable via RPC by anyone (rotate via operator secret + restart). The MCP tool auto-injects the `confirm_operator_protected` interlock when class is `operator_protected`."},"label":{"type":"string","description":"Free-form label shown in `list`"},"scopes":{"type":["array","null"],"items":{"type":"string"},"description":"Scopes to grant (e.g. [\"canton\"]). Defaults to [\"canton\"] server-side when empty."},"subject":{"type":["string","null"],"description":"Optional subject identifier — typically a Tenzro DID. Required if the operator wants the holder to self-revoke later via `revoke_my_api_key`."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":422,"tokensAfter":422},{"name":"create_custody_challenge","fixed":{"name":"create_custody_challenge","description":"Ask the node for the challenge an already-enrolled passkey must sign to authorize one custody change (add_passkey, remove_passkey, set_passkey_policy, grant_session_key, revoke_session_key, set_spending_limit, add_hardware_signer, add_guardian). Changing who can sign for a wallet needs proof of control from a device already on the account — the account address is a public identifier, not a credential. The challenge is single-use, time-bounded, and bound to this account and operation.","inputSchema":{"type":"object","title":"CustodyChallengeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","operation"],"properties":{"operation":{"type":"string","description":"One of: add_passkey, remove_passkey, set_passkey_policy, grant_session_key, revoke_session_key, set_spending_limit, add_hardware_signer, add_guardian"},"target_hex":{"type":["string","null"],"description":"The operation's subject, hex — the credential being revoked, the session key being withdrawn. Omit for add_passkey: the device does not exist yet at challenge time"},"account_address":{"type":"string","description":"Smart account being changed (0x-prefixed 20-byte address)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":347,"tokensAfter":347},{"name":"create_database","fixed":{"name":"create_database","description":"Register a database this node serves, computing and persisting its partition placement over the live cluster. owner_did becomes the admin authority (owner-only access policy). placement is 'local', 'lan_cluster', or 'network'. Returns {database, partitions}.","inputSchema":{"type":"object","title":"CreateDatabaseParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id","engine_id","owner_did"],"properties":{"engine_id":{"type":"string","description":"Engine id: 'postgres', 'qdrant', 'valkey', 'lance', or 'tantivy'"},"owner_did":{"type":"string","description":"Owner DID — becomes the database's admin authority"},"placement":{"type":["string","null"],"description":"Placement: 'local', 'lan_cluster', or 'network' (default local)"},"partitions":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Partition count (default 1)"},"database_id":{"type":"string","description":"Unique database id"},"engine_config":{"description":"Per-engine configuration passed opaque to the driver","type":"string"},"pricing_asset":{"type":["string","null"],"description":"Asset the per-query price is denominated in (default 'TNZO')"},"max_replication":{"type":["integer","null"],"format":"uint8","maximum":255,"minimum":0,"description":"Maximum holders per partition — repair never grows past this (default 4)"},"min_replication":{"type":["integer","null"],"format":"uint8","maximum":255,"minimum":0,"description":"Minimum holders per partition — writes below this fail (default 2)"},"price_per_query":{"type":["string","null"],"description":"Price a non-owner caller pays per query, in the pricing asset's base units, as a decimal string (omit for a free database)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: engine_config. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":482,"tokensAfter":487},{"name":"create_escrow","fixed":{"name":"create_escrow","description":"Create an on-chain escrow via a signed CreateEscrow transaction. Funds are locked at a deterministic vault address derived from the escrow_id; only the original payer can later release or refund.","inputSchema":{"type":"object","title":"CreateEscrowParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payer","payee","amount_wei","release_condition"],"properties":{"payee":{"type":"string","description":"Hex-encoded payee address (receives funds on release)"},"payer":{"type":"string","description":"Hex-encoded payer address (must match the signing key)"},"amount_wei":{"type":"string","description":"Amount in wei to hold in escrow as a decimal string (1 TNZO = 10^18 wei)."},"timeout_secs":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Timeout duration in seconds (for timeout-based release)"},"release_condition":{"type":"string","description":"Release condition: 'provider_signature' | 'consumer_signature' | 'both_signatures' | 'verifier_signature' | 'timeout' | 'custom'"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":299,"tokensAfter":299},{"name":"create_mpc_wallet","fixed":{"name":"create_mpc_wallet","description":"Create a new MPC threshold wallet with configurable threshold and share count. Default is 2-of-3. Returns the wallet ID, address, and key share metadata.","inputSchema":{"type":"object","title":"CreateMpcWalletParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key_type":{"type":["string","null"],"description":"Key type: 'ed25519' (default) or 'secp256k1'"},"threshold":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Number of shares required to sign (e.g. 2)"},"total_shares":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Total number of key shares (e.g. 3)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":191,"tokensAfter":191},{"name":"create_nft_collection","fixed":{"name":"create_nft_collection","description":"Create a new NFT collection on the Tenzro ledger. Supports ERC-721 (unique tokens) and ERC-1155 (semi-fungible tokens). Returns the collection ID and deployed address.","inputSchema":{"type":"object","title":"CreateNftCollectionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","symbol","creator","standard"],"properties":{"name":{"type":"string","description":"Collection name (e.g. 'Tenzro Validators')"},"symbol":{"type":"string","description":"Collection symbol (e.g. 'TVAL')"},"creator":{"type":"string","description":"Hex-encoded creator address"},"base_uri":{"type":["string","null"],"description":"Optional base URI for token metadata (e.g. 'https://metadata.tenzro.com/collection/')"},"standard":{"type":"string","description":"NFT standard: 'erc721' or 'erc1155'"},"description":{"type":["string","null"],"description":"Optional collection description"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":264,"tokensAfter":264},{"name":"create_passkey_session","fixed":{"name":"create_passkey_session","description":"Create a pending browser-launch passkey ceremony session (enroll a new account, add a device credential, or sign over an op hash). Returns a session id and the node-served /auth/passkey URL to open in a browser; the browser runs navigator.credentials.create()/get() and the caller polls get_passkey_session until the session reaches a terminal status.","inputSchema":{"type":"object","title":"CreatePasskeySessionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["kind"],"properties":{"kind":{"type":"string","description":"Ceremony kind: \"enroll\" (new account), \"add\" (device credential on an existing account), or \"sign\" (verify an assertion over an op hash)."},"salt":{"type":"integer","format":"uint64","default":0,"minimum":0,"description":"Enroll: CREATE2 salt (defaults to 0)."},"label":{"type":["string","null"],"description":"Add: display label for the new credential."},"op_hash_hex":{"type":["string","null"],"description":"Sign: 32-byte op hash (hex) the assertion must attest to."},"display_name":{"type":["string","null"],"description":"Enroll: optional display name for the new identity."},"account_address":{"type":["string","null"],"description":"Add + Sign: target smart-account address (hex)."},"ml_dsa_signature_hex":{"type":["string","null"],"description":"Sign: ML-DSA-65 signature (hex) over the op-hash bytes, pre-signed client-side for accounts with a hybrid PQ leg."},"ml_dsa_public_key_hex":{"type":["string","null"],"description":"Enroll: ML-DSA-65 verifying key (hex) for the hybrid PQ leg. Add sessions omit this — the node mints the new credential's PQ leg itself."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":467,"tokensAfter":467},{"name":"create_payment_challenge","fixed":{"name":"create_payment_challenge","description":"Create a payment challenge for a protected resource. Supports five protocols:\n- 'mpp' (Machine Payments Protocol): Session-based streaming payments, ideal for per-token AI inference billing\n- 'x402' (Coinbase HTTP 402): Stateless one-shot payments, ideal for API calls and data downloads\n- 'visa-tap' (Visa Trusted Agent Protocol): RFC 9421 agent-verified payments for agentic commerce\n- 'mastercard-agent-pay' (Mastercard Agent Pay): KYA-verified payments with agentic tokens\n- 'native': Direct TNZO","inputSchema":{"type":"object","title":"CreatePaymentChallengeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["protocol","resource","amount","asset","recipient"],"properties":{"asset":{"type":"string","description":"Payment asset: 'USDC', 'USDT', or 'TNZO'"},"amount":{"type":"integer","format":"uint128","minimum":0,"description":"Payment amount in smallest unit (e.g. 100 = 0.000100 USDC for x402, or TNZO base units for native)"},"app_id":{"type":["string","null"],"description":"Registered app_id for developer-margin attribution. The amount is marked up by the app's margin and the margin is carved out to the app wallet at settlement."},"protocol":{"type":"string","description":"Payment protocol: 'mpp' (Machine Payments Protocol — session-based streaming), 'x402' (Coinbase HTTP 402 — stateless one-shot), or 'native' (direct TNZO transfer)"},"resource":{"type":"string","description":"Resource URL or identifier being paid for (e.g. /api/inference, /api/data/query)"},"recipient":{"type":"string","description":"Hex-encoded recipient address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":456,"tokensAfter":456},{"name":"create_proposal","fixed":{"name":"create_proposal","description":"Create a new governance proposal on the Tenzro Network. Requires a minimum staked balance to propose. Returns the new proposal ID and initial status.","inputSchema":{"type":"object","title":"CreateProposalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title","description","proposal_type","proposer_address"],"properties":{"title":{"type":"string","description":"Proposal title"},"payload":{"description":"Optional JSON payload for the proposal (e.g. parameter changes)","type":"string"},"description":{"type":"string","description":"Detailed description of the proposal"},"proposal_type":{"type":"string","description":"Proposal type: 'parameter_change', 'treasury', 'upgrade', 'text'"},"proposer_address":{"type":"string","description":"Hex-encoded proposer address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: payload. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":230,"tokensAfter":235},{"name":"create_swarm","fixed":{"name":"create_swarm","description":"Create a swarm of coordinated agents under an orchestrator on the Tenzro Network. Each member spec spawns one child agent. Tasks can be dispatched to all members in parallel or sequentially.","inputSchema":{"type":"object","title":"CreateSwarmParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["orchestrator_id","members"],"properties":{"members":{"description":"JSON array of member specs: [{\"name\":\"analyst\",\"capabilities\":[\"data\"]}]","type":"string"},"parallel":{"type":["boolean","null"],"description":"Dispatch tasks in parallel (default true)"},"max_members":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Max number of swarm members (default 10)"},"orchestrator_id":{"type":"string","description":"Orchestrator agent ID"},"task_timeout_secs":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Task timeout in seconds (default 300)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: members. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":267},{"name":"create_token","fixed":{"name":"create_token","description":"Create a new ERC-20 token via the Tenzro token factory. Returns the deployed token address and token ID. The token is registered in the unified token registry and discoverable across all VMs.","inputSchema":{"type":"object","title":"CreateTokenParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","symbol","creator","initial_supply"],"properties":{"name":{"type":"string","description":"Token name (e.g. 'My Token')"},"symbol":{"type":"string","description":"Token symbol (e.g. 'MTK')"},"creator":{"type":"string","description":"Creator address (hex, 20 or 32 bytes)"},"vm_type":{"type":["string","null"],"description":"Target VM type: 'evm', 'svm', or 'daml' (default: 'evm')"},"decimals":{"type":["integer","null"],"format":"uint8","maximum":255,"minimum":0,"description":"Token decimals (default: 18)"},"signature":{"type":["string","null"],"description":"Optional hex-encoded signature over 'tenzro:create_token:{name}:{symbol}:{supply}' proving creator ownership (min 64 bytes)"},"description":{"type":["string","null"],"description":"Optional token description"},"permissions":{"type":["array","null"],"items":{"type":"string"},"description":"Token permissions: 'mintable', 'burnable', 'pausable', 'freezable'"},"initial_supply":{"type":"string","description":"Initial token supply as a string (e.g. '1000000000000000000000')"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":391,"tokensAfter":391},{"name":"create_wallet","fixed":{"name":"create_wallet","description":"Create a new cryptographic keypair for use as a Tenzro wallet. Supports Ed25519 (Tenzro native) and Secp256k1 (EVM-compatible)","inputSchema":{"type":"object","title":"CreateWalletParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key_type":{"type":["string","null"],"description":"Key type: 'ed25519' (default, Tenzro native) or 'secp256k1' (EVM-compatible)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"create_zk_proof","fixed":{"name":"create_zk_proof","description":"Create a Plonky3 STARK proof for one of the three Tenzro AIRs (`inference`, `settlement`, `identity`) over the KoalaBear field. Returns the hex-encoded bincode-serialized p3_uni_stark::Proof and public inputs (4-byte LE KoalaBear chunks).","inputSchema":{"type":"object","title":"CreateZkProofParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["circuit_id","witness"],"properties":{"witness":{"description":"Witness fields as a JSON object of u64 field-element values. Per circuit: inference={model_checksum,input_checksum,computed_output}; settlement={service_proof,amount}; identity={private_key,capabilities,capability_blinding}","type":"string"},"circuit_id":{"type":"string","description":"Circuit identifier — one of 'inference', 'settlement', 'identity'"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: witness. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":232},{"name":"cross_vm_transfer","fixed":{"name":"cross_vm_transfer","description":"Transfer tokens between VMs (e.g., EVM to SVM). Uses the cross-VM bridge precompile for atomic transfers. Only TNZO is currently supported for cross-VM transfers.","inputSchema":{"type":"object","title":"CrossVmTransferParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["token","amount","from_vm","to_vm","from_address","to_address"],"properties":{"to_vm":{"type":"string","description":"Destination VM: 'evm', 'svm', 'daml', 'native'"},"token":{"type":"string","description":"Token symbol or 'TNZO'"},"amount":{"type":"string","description":"Amount as string (in native decimals)"},"from_vm":{"type":"string","description":"Source VM: 'evm', 'svm', 'daml', 'native'"},"to_address":{"type":"string","description":"Destination address (hex)"},"from_address":{"type":"string","description":"Source address (hex)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":246,"tokensAfter":246},{"name":"da_list_blobs","fixed":{"name":"da_list_blobs","description":"List blob commitments known to the local DA committee store, with the locally-held sliver index (if any) and the availability certificate (attesting member indices, quorum, root, timestamp) when one is held.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"da_list_challenges","fixed":{"name":"da_list_challenges","description":"List resolved DA possession-challenge records, newest-first. Each record carries the blob commitment, target member index + address, nonce, timestamps, and outcome.","inputSchema":{"type":"object","title":"DaListChallengesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max challenge records to return, newest-first (default 100)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":136,"tokensAfter":136},{"name":"database_query","fixed":{"name":"database_query","description":"Run an engine-dialect query against a database partition. caller_did is authorized against the access policy (writes require the admin action, reads the read action) before any engine is touched. When this node holds the target partition the result carries served_here=true and the engine result; otherwise it carries holder endpoints.","inputSchema":{"type":"object","title":"DatabaseQueryParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id","caller_did","body"],"properties":{"body":{"description":"Engine-dialect body: SQL {sql, params} for Postgres, {op, ...} for Qdrant/Lance/Tantivy, {command: [...]} for Valkey","type":"string"},"write":{"type":["boolean","null"],"description":"When true the query is gated against the admin (write) action"},"envelope":{"type":["string","null"],"description":"Hex-encoded signed DID envelope proving control of caller_did"},"caller_did":{"type":"string","description":"Caller DID, authorized against the access policy"},"capability":{"type":["string","null"],"description":"AAP capability token when the caller is not the owner"},"consistency":{"type":["string","null"],"description":"Write acknowledgement level: 'quorum' (default) or 'all'"},"database_id":{"type":"string","description":"Database id"},"partition_index":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Target partition index (default 0)"},"payment_credential":{"description":"Payment credential answering a prior 402 challenge (paid databases only)","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: body, payment_credential. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":430,"tokensAfter":439},{"name":"debridge_create_tx","fixed":{"name":"debridge_create_tx","description":"Create a cross-chain transaction via deBridge DLN. Returns transaction data ready for signing and submission.","inputSchema":{"type":"object","title":"DebridgeCreateTxParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["src_chain_id","dst_chain_id","src_token","dst_token","amount","recipient"],"properties":{"amount":{"type":"string","description":"Amount in smallest unit (wei/lamports)"},"sender":{"type":["string","null"],"description":"Sender address on source chain"},"dst_token":{"type":"string","description":"Destination token address"},"recipient":{"type":"string","description":"Recipient address on destination chain"},"src_token":{"type":"string","description":"Source token address"},"dst_chain_id":{"type":"integer","format":"uint64","minimum":0,"description":"Destination chain ID"},"src_chain_id":{"type":"integer","format":"uint64","minimum":0,"description":"Source chain ID (e.g. 1 for Ethereum)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":275,"tokensAfter":275},{"name":"debridge_get_chains","fixed":{"name":"debridge_get_chains","description":"Get all blockchain networks supported by deBridge DLN for cross-chain transfers.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"debridge_get_instructions","fixed":{"name":"debridge_get_instructions","description":"Get deBridge operational instructions and guidance for cross-chain transfers.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"debridge_search_tokens","fixed":{"name":"debridge_search_tokens","description":"Search for tokens available on deBridge DLN. Returns token addresses, symbols, and supported chains.","inputSchema":{"type":"object","title":"DebridgeSearchTokensParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"query":{"type":"string","description":"Token name, symbol, or address to search for"},"chain_id":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Optional chain ID to filter results (e.g. 1 for Ethereum, 56 for BSC)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"delete_file","fixed":{"name":"delete_file","description":"Unlink a file from the caller's account and stop its storage deal. This is NOT erasure: objects are content-addressed and erasure-coded across independent providers, so deletion cannot reach into every provider holding a shard. Shards expire when the deal stops paying for them. Do not treat deletion as redaction — the response repeats this on every call.","inputSchema":{"type":"object","title":"FileIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["file_id"],"properties":{"file_id":{"type":"string","description":"File id as returned by upload_file (`file-<uuid>`)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"delete_model_mcp","fixed":{"name":"delete_model_mcp","description":"Delete a model from this node's local storage. The model must not be currently serving. Frees disk space. Returns deletion confirmation.","inputSchema":{"type":"object","title":"DeleteModelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"model_id":{"type":"string","description":"Model ID to delete from local storage"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"delete_webhook","fixed":{"name":"delete_webhook","description":"Delete a webhook by id. Requires a signed did_envelope proving control of the owner_did recorded at registration — a webhook id comes back from every list call, so it identifies the row and authorizes nothing. Returns JSON-RPC error `-32602` if the id is unknown; a row that records no owner is refused rather than deleted.","inputSchema":{"type":"object","title":"DeleteWebhookParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["webhook_id","did_envelope"],"properties":{"webhook_id":{"type":"string","description":"Webhook id returned by register_webhook / list_webhooks"},"did_envelope":{"type":"string","description":"Hex DID envelope proving control of the webhook's recorded owner_did, bound to method tenzro_deleteWebhook with the webhook id as the params hash."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234},{"name":"deploy_contract","fixed":{"name":"deploy_contract","description":"Deploy a smart contract to the Tenzro ledger. Supports EVM (Solidity bytecode), SVM (BPF programs), and DAML (DAR packages). Returns the deployed contract address.","inputSchema":{"type":"object","title":"DeployContractParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["vm_type","bytecode","deployer"],"properties":{"vm_type":{"type":"string","description":"Target VM: 'evm', 'svm', or 'daml'"},"bytecode":{"type":"string","description":"Contract bytecode (hex-encoded, with optional 0x prefix)"},"deployer":{"type":"string","description":"Deployer address (hex)"},"gas_limit":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Gas limit for deployment (default: 3000000)"},"signature":{"type":["string","null"],"description":"Optional hex-encoded signature over 'tenzro:deploy_contract:{vm_type}:{deployer}' proving deployer ownership (min 64 bytes)"},"constructor_args":{"type":["string","null"],"description":"ABI-encoded constructor arguments (hex, optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":294,"tokensAfter":294},{"name":"download_agent_template","fixed":{"name":"download_agent_template","description":"Download and instantiate an agent template. Creates a new agent identity from the template with optional configuration overrides. Returns the new agent DID and wallet.","inputSchema":{"type":"object","title":"DownloadAgentTemplateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["template_id","controller_did"],"properties":{"template_id":{"type":"string","description":"Agent template ID to download and instantiate"},"controller_did":{"type":"string","description":"DID of the controller that will own the instantiated agent"},"config_overrides":{"description":"Optional JSON configuration overrides for the template","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: config_overrides. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":199},{"name":"download_file","fixed":{"name":"download_file","description":"Retrieve a stored file's contents, rebuilt from its erasure-coded shards and returned base64-encoded. Only the owning subject can read it.","inputSchema":{"type":"object","title":"FileIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["file_id"],"properties":{"file_id":{"type":"string","description":"File id as returned by upload_file (`file-<uuid>`)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"download_model","fixed":{"name":"download_model","description":"Download a model to this node's local storage. Fetch is peer-first: content-addressed weights are pulled from Tenzro peers over iroh blobs (BLAKE3-verified over the whole transfer), falling back to HuggingFace Hub when no peer holds them. Computes the weights' BLAKE3 and checks it against the canonical hash record (see get_model_hash) before load. Returns download status and progress.","inputSchema":{"type":"object","title":"DownloadModelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"source":{"type":["string","null"],"default":null,"description":"Source: 'network' (verified network providers only), 'huggingface' (HuggingFace only), or omit for network-first with HuggingFace fallback"},"model_id":{"type":"string","description":"Model ID to download (e.g. 'gemma3-270m', 'qwen3.5-0.8b')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":249},{"name":"drop_database","fixed":{"name":"drop_database","description":"Remove a database and all its partition placements, tearing down the engine backing for every partition this node holds. Administrative — caller_did is gated on the admin (write) action and its usage counters are removed with it.","inputSchema":{"type":"object","title":"DropDatabaseParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id","caller_did"],"properties":{"envelope":{"type":["string","null"],"description":"Hex-encoded signed DID envelope proving control of caller_did"},"caller_did":{"type":"string","description":"Caller DID — gated on the admin (write) action"},"capability":{"type":["string","null"],"description":"AAP capability token when the caller is not the owner"},"database_id":{"type":"string","description":"Database id"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":229,"tokensAfter":229},{"name":"dvp_execute_saga","fixed":{"name":"dvp_execute_saga","description":"Execute a DvP saga: run each escrow leg forward (release vault→payee). Signature-gated / custom-condition escrows require a per-leg release proof supplied via `proofs`. Any leg failure triggers automatic compensation (refund vault→payer) of already-executed legs. Mirrors tenzro_dvpExecuteSaga.","inputSchema":{"type":"object","title":"DvpExecuteSagaParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["saga_id"],"properties":{"proofs":{"description":"Optional per-leg release proofs keyed by leg_id: {\"<leg_id>\":{\"proof_type\":\"cryptographic|tee|multi_party|merkle|zk|oracle\",\"proof_data_hex\":\"0x..\"}}. Signature-gated / custom-condition escrow legs require a proof here.","type":"string"},"saga_id":{"type":"string","description":"Saga id (hex)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: proofs. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":226,"tokensAfter":230},{"name":"dvp_get_saga","fixed":{"name":"dvp_get_saga","description":"Read the current state of a DvP saga (legs, per-leg outcomes, escrows, receipt). Mirrors tenzro_dvpGetSaga.","inputSchema":{"type":"object","title":"DvpGetSagaParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["saga_id"],"properties":{"saga_id":{"type":"string","description":"Saga id (hex) to read."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"dvp_list_sagas_by_creator","fixed":{"name":"dvp_list_sagas_by_creator","description":"List DvP sagas opened by a creator address. Returns {creator, count, sagas: [...]}. Mirrors tenzro_dvpListSagasByCreator.","inputSchema":{"type":"object","title":"DvpListSagasByCreatorParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["creator"],"properties":{"creator":{"type":"string","description":"Creator address (hex). Returns {creator, count, sagas: [...]}."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"eip7702_protocol_info","fixed":{"name":"eip7702_protocol_info","description":"Read static metadata about the EIP-7702 support surface — tx type (0x04), magic byte (0x05), designator prefix (0xef0100), designator length (23 bytes), signing scheme (secp256k1), and operator notes on the current transaction-side integration state.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":97,"tokensAfter":97},{"name":"erc7683_get_fill","fixed":{"name":"erc7683_get_fill","description":"Fetch a single ERC-7683 FillRecord by (order_id, origin_chain_id). Returns the record JSON, or -32000 if no fill has been recorded.","inputSchema":{"type":"object","title":"Erc7683GetFillParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id","origin_chain_id"],"properties":{"order_id":{"type":"string","description":"32-byte order id (hex)."},"origin_chain_id":{"type":"integer","format":"uint32","minimum":0,"description":"CAIP-2 numeric origin chain id."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"erc7683_get_order","fixed":{"name":"erc7683_get_order","description":"Fetch a single Tenzro7683Order envelope by 32-byte order_id. Envelope is persisted in CF_SETTLEMENTS under the `7683_origin:` keyspace. Order state machine: Open → AwaitingProof → Settled / Refunded / ForceRefundEligible.","inputSchema":{"type":"object","title":"Erc7683OrderIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id"],"properties":{"order_id":{"type":"string","description":"32-byte order id (hex, with or without 0x prefix)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"erc7683_list_fills","fixed":{"name":"erc7683_list_fills","description":"List every recorded destination-side FillRecord on this node. Cardinality is bounded — registry holds at most one FillRecord per cross-chain order ever filled here.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"erc7683_list_orders","fixed":{"name":"erc7683_list_orders","description":"Paginated scan over persisted ERC-7683 orders in the `7683_origin:` keyspace. Optional state filter (open / awaiting_proof / settled / refunded / force_refund_eligible) and CAIP-2 dest_chain filter.","inputSchema":{"type":"object","title":"Erc7683ListOrdersParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of envelopes to return (default 50)."},"state":{"type":["string","null"],"description":"Optional state filter — one of: open, awaiting_proof, settled, refunded, force_refund_eligible."},"dest_chain":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Optional CAIP-2 numeric destination chain id filter."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":223,"tokensAfter":223},{"name":"erc7683_record_fill","fixed":{"name":"erc7683_record_fill","description":"Destination-side commit of an ERC-7683 FillRecord (single-shot per order_id — re-submission returns -32010 OrderAlreadyFilled). Required fields: order_id, origin_chain_id, origin_settler, filler, recipient (32-byte), fill_tx_hash, filled_at_ms, proof_route, outputs[].","inputSchema":{"type":"object","title":"Erc7683RecordFillParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["order_id","origin_chain_id","origin_settler","filler","recipient","fill_tx_hash","filled_at_ms","proof_route","outputs"],"properties":{"filler":{"type":"string","description":"Filler address on the destination chain (hex)."},"outputs":{"description":"Outputs array (each entry: { token, amount, recipient, chain_id }).","type":"string"},"order_id":{"type":"string","description":"32-byte order id (hex)."},"recipient":{"type":"string","description":"Recipient (32-byte left-padded) on the destination chain (hex)."},"proof_route":{"type":"string","description":"Proof route — one of: layerzero, wormhole, debridge, hyperlane."},"fill_tx_hash":{"type":"string","description":"Destination-chain fill transaction hash (hex)."},"filled_at_ms":{"type":"integer","format":"int64","description":"Wall-clock millis at which the fill landed."},"origin_settler":{"type":"string","description":"Origin settler contract address (hex)."},"origin_chain_id":{"type":"integer","format":"uint32","minimum":0,"description":"CAIP-2 numeric origin chain id."}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: outputs. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":410,"tokensAfter":415},{"name":"erc8004_decode_get_agent","fixed":{"name":"erc8004_decode_get_agent","description":"Decode the (address, string) return data of an IdentityRegistry.getAgent() eth_call into { agent_address, metadata_uri }.","inputSchema":{"type":"object","title":"Erc8004DecodeGetAgentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["return_data"],"properties":{"return_data":{"type":"string","description":"Hex-encoded return data from a getAgent(bytes32) eth_call"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"erc8004_decode_get_metadata","fixed":{"name":"erc8004_decode_get_metadata","description":"Decode the bytes return data of an IdentityRegistry.getMetadata() eth_call into { metadata_value }.","inputSchema":{"type":"object","title":"Erc8004DecodeGetMetadataParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["return_data"],"properties":{"return_data":{"type":"string","description":"Hex-encoded return data from a getMetadata(uint256,string) eth_call"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"erc8004_encode_append_response","fixed":{"name":"erc8004_encode_append_response","description":"ABI-encode ReputationRegistry.appendResponse(uint256 agentId, bytes32 feedbackId, string responseURI) (ERC-8004 v0.6+ mutator). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeAppendResponseParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","feedback_id","response_uri"],"properties":{"agent_id":{"description":"Agent ID (uint256) — must own the feedback. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"feedback_id":{"type":"string","description":"Feedback ID being responded to (bytes32 hex, 0x-prefixed)"},"response_uri":{"type":"string","description":"Resolvable URI to the response payload"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":204,"tokensAfter":209},{"name":"erc8004_encode_feedback","fixed":{"name":"erc8004_encode_feedback","description":"ABI-encode ReputationRegistry.submitFeedback(bytes32 subjectAgentId, int8 rating, string contextURI). Rating is in -100..=100.","inputSchema":{"type":"object","title":"Erc8004EncodeFeedbackParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["subject_agent_id","rating","context_uri"],"properties":{"rating":{"type":"integer","format":"int8","maximum":127,"minimum":-128,"description":"Rating in the range -100..=100 (Tenzro convention)"},"context_uri":{"type":"string","description":"Resolvable URI to feedback context (e.g. ipfs:// or https:// link)"},"subject_agent_id":{"description":"Subject agent ID — uint256 of the agent being rated. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: subject_agent_id. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":217,"tokensAfter":221},{"name":"erc8004_encode_get_agent","fixed":{"name":"erc8004_encode_get_agent","description":"ABI-encode IdentityRegistry.getAgent(uint256 agentId). Returns hex calldata for an eth_call lookup.","inputSchema":{"type":"object","title":"Erc8004EncodeGetAgentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":136},{"name":"erc8004_encode_get_agent_uri","fixed":{"name":"erc8004_encode_get_agent_uri","description":"ABI-encode IdentityRegistry.getAgentURI(uint256 agentId) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetAgentUriParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":139},{"name":"erc8004_encode_get_agent_wallet","fixed":{"name":"erc8004_encode_get_agent_wallet","description":"ABI-encode IdentityRegistry.getAgentWallet(uint256 agentId) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetAgentWalletParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":141},{"name":"erc8004_encode_get_feedback","fixed":{"name":"erc8004_encode_get_feedback","description":"ABI-encode ReputationRegistry.getFeedback(bytes32 subject, uint256 index). Returns hex calldata for an eth_call lookup.","inputSchema":{"type":"object","title":"Erc8004EncodeGetFeedbackParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["subject_agent_id","index"],"properties":{"index":{"type":"integer","format":"uint64","minimum":0,"description":"Index into the subject's feedback array"},"subject_agent_id":{"description":"Subject agent ID — uint256. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: subject_agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":166,"tokensAfter":170},{"name":"erc8004_encode_get_feedback_count","fixed":{"name":"erc8004_encode_get_feedback_count","description":"ABI-encode ReputationRegistry.getFeedbackCount(bytes32 subject). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetFeedbackCountParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["subject_agent_id"],"properties":{"subject_agent_id":{"description":"Subject agent ID — uint256. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: subject_agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":131},{"name":"erc8004_encode_get_feedback_responses","fixed":{"name":"erc8004_encode_get_feedback_responses","description":"ABI-encode ReputationRegistry.getFeedbackResponses(uint256 agentId, bytes32 feedbackId) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetFeedbackResponsesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","feedback_id"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"feedback_id":{"type":"string","description":"Feedback ID (bytes32 hex, 0x-prefixed)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":176,"tokensAfter":180},{"name":"erc8004_encode_get_metadata","fixed":{"name":"erc8004_encode_get_metadata","description":"ABI-encode IdentityRegistry.getMetadata(uint256 agentId, string metadataKey) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetMetadataParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","metadata_key"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"metadata_key":{"type":"string","description":"Metadata key string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":167},{"name":"erc8004_encode_get_validation","fixed":{"name":"erc8004_encode_get_validation","description":"ABI-encode ValidationRegistry.getValidation(bytes32 requestHash) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeGetValidationParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["request_hash"],"properties":{"request_hash":{"type":"string","description":"Request hash from the original validationRequest (bytes32 hex, 0x-prefixed)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"erc8004_encode_is_feedback_revoked","fixed":{"name":"erc8004_encode_is_feedback_revoked","description":"ABI-encode ReputationRegistry.isFeedbackRevoked(uint256 agentId, bytes32 feedbackId) (ERC-8004 v0.6+ read). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeIsFeedbackRevokedParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","feedback_id"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"feedback_id":{"type":"string","description":"Feedback ID to check (bytes32 hex, 0x-prefixed)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":176,"tokensAfter":180},{"name":"erc8004_encode_revoke_feedback","fixed":{"name":"erc8004_encode_revoke_feedback","description":"ABI-encode ReputationRegistry.revokeFeedback(uint256 agentId, bytes32 feedbackId) (ERC-8004 v0.6+ mutator). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeRevokeFeedbackParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","feedback_id"],"properties":{"agent_id":{"description":"Agent ID owning the feedback — uint256. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"feedback_id":{"type":"string","description":"Feedback ID to revoke (bytes32 hex, 0x-prefixed)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":171},{"name":"erc8004_encode_set_agent_uri","fixed":{"name":"erc8004_encode_set_agent_uri","description":"ABI-encode IdentityRegistry.setAgentURI(uint256 agentId, string metadataURI) (ERC-8004 v0.6+ mutator). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeSetAgentUriParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","metadata_uri"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"metadata_uri":{"type":"string","description":"Updated off-chain metadata URI"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":171},{"name":"erc8004_encode_set_agent_wallet","fixed":{"name":"erc8004_encode_set_agent_wallet","description":"ABI-encode IdentityRegistry.setAgentWallet(uint256 agentId, address newWallet, uint256 deadline, bytes signature) (ERC-8004 v0.6+ wallet rotation). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeSetAgentWalletParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","new_wallet","deadline","signature"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"deadline":{"type":"integer","format":"uint64","minimum":0,"description":"Unix-seconds deadline after which the signature is invalid"},"signature":{"type":"string","description":"Hex-encoded EIP-712 signature (0x-prefixed) authorizing the wallet rotation"},"new_wallet":{"type":"string","description":"New wallet / controller EVM address (0x-prefixed hex)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":264,"tokensAfter":269},{"name":"erc8004_encode_set_metadata","fixed":{"name":"erc8004_encode_set_metadata","description":"ABI-encode IdentityRegistry.setMetadata(uint256 agentId, string metadataKey, bytes metadataValue) (ERC-8004 v0.6+ key-value metadata). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeSetMetadataParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","metadata_key","metadata_value"],"properties":{"agent_id":{"description":"Agent ID — uint256 returned by register(...) at registration time. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"metadata_key":{"type":"string","description":"Metadata key string (free-form ASCII identifier)"},"metadata_value":{"type":"string","description":"Metadata value as 0x-prefixed hex bytes"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":210,"tokensAfter":215},{"name":"erc8004_encode_validation_request","fixed":{"name":"erc8004_encode_validation_request","description":"ABI-encode ValidationRegistry.validationRequest(address validatorAddress, uint256 agentId, string requestURI, bytes32 requestHash). Returns hex calldata.","inputSchema":{"type":"object","title":"Erc8004EncodeValidationRequestParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["validator_address","agent_id","request_uri","request_hash"],"properties":{"agent_id":{"description":"Agent ID of the subject being validated — uint256. Accepts a JSON number, decimal string, or 0x-prefixed hex.","type":"string"},"request_uri":{"type":"string","description":"Resolvable URI to the work being validated"},"request_hash":{"type":"string","description":"32-byte commitment over the work (bytes32 hex, 0x-prefixed) — storage key for the matching response"},"validator_address":{"type":"string","description":"Validator address (20-byte EVM address, 0x-prefixed)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_id. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":257,"tokensAfter":262},{"name":"exchange_token","fixed":{"name":"exchange_token","description":"RFC 8693 OAuth 2.0 Token Exchange. Mint a narrower child JWT from a parent JWT, bound to a different DPoP key with a strict subset of the parent's RAR grants and AAP capabilities. The child token's controller_did is set to the parent's sub, extending the act-chain by one hop. Subset enforcement is performed by the AS; over-scoped requests are rejected.","inputSchema":{"type":"object","title":"ExchangeTokenParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["subject_token","child_bearer_did","child_dpop_jkt","requested_rar","requested_aap_capabilities"],"properties":{"requested_rar":{"description":"RFC 9396 typed scope envelope the child should carry. Must be a strict subset of the parent's authorization_details. JSON object with `authorization_details: [...]` field.","type":"string"},"subject_token":{"type":"string","description":"Parent JWT (the `subject_token` per RFC 8693). The AS validates its signature, exp, and revocation state before issuing the child token."},"child_dpop_jkt":{"type":"string","description":"RFC 7638 JWK thumbprint of the child holder's Ed25519 public key. The child token is DPoP-bound to this key."},"child_bearer_did":{"type":"string","description":"DID that will be the `sub` of the new child JWT — typically a delegated agent or sub-agent in the act-chain"},"requested_ttl_secs":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Optional TTL override for the child token in seconds. Clamped to the engine's max_ttl_secs and the parent's remaining lifetime."},"requested_aap_capabilities":{"type":"array","items":true,"description":"AAP `aap_capabilities` claim list — per-action constraints layered over RAR. Must be a subset of the parent's capabilities."}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: requested_rar. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":494,"tokensAfter":498},{"name":"export_keystore","fixed":{"name":"export_keystore","description":"Export a wallet's keystore as an encrypted JSON file. Uses Argon2id KDF for key derivation. The exported keystore can be imported on another node.","inputSchema":{"type":"object","title":"ExportKeystoreParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["wallet_id","password"],"properties":{"password":{"type":"string","description":"Password to encrypt the keystore file"},"wallet_id":{"type":"string","description":"Wallet ID (UUID) to export"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"find_best_agent_for_capability","fixed":{"name":"find_best_agent_for_capability","description":"Find the best agent on this node for a given capability. Prefers TEE-backed attestations (most recent wins), falling back to any agent with the capability registered. Returns the chosen agent_id and the total candidate count.","inputSchema":{"type":"object","title":"FindBestAgentForCapabilityParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["capability"],"properties":{"capability":{"type":"string","description":"Capability short-form name: 'nlp', 'vision', 'code', 'data', 'blockchain', 'smart_contract', 'api_integration', 'coordination', or any custom-capability name. Returns the agent with the most recent TEE-backed attestation (preferred), falling back to any agent with the capability."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"freeze_address","fixed":{"name":"freeze_address","description":"Freeze an address for a specific token under ERC-3643 compliance. A frozen address cannot send or receive the specified token. Returns the freeze record.","inputSchema":{"type":"object","title":"FreezeAddressParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["token_id","address","reason"],"properties":{"reason":{"type":"string","description":"Reason for freezing the address"},"address":{"type":"string","description":"Hex-encoded address to freeze"},"token_id":{"type":"string","description":"Token ID (hex, 32 bytes) or symbol"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"function_deploy","fixed":{"name":"function_deploy","description":"Deploy a wasi:http WebAssembly component as a request-scoped function. The node runs it under wasmtime with the granted capabilities, fuel limit, and per-request deadline. Requires a signed did_envelope.","inputSchema":{"type":"object","title":"FunctionDeployParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","owner_did","wasm_blob_hash"],"properties":{"name":{"type":"string","description":"Function name (unique per owner)"},"replicas":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Number of serving replicas to place"},"owner_did":{"type":"string","description":"Owner DID"},"fuel_limit":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"wasmtime fuel limit per request"},"deadline_ms":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Wall-clock deadline per request, in milliseconds"},"region_hint":{"type":["string","null"],"description":"Preferred region for placement"},"capabilities":{"description":"Capability manifest (host imports the component is granted)","type":"string"},"did_envelope":{"type":["string","null"],"description":"Signed DID envelope authorizing the mutation"},"wasm_blob_hash":{"type":"string","description":"BLAKE3 blob hash of the wasi:http component"},"price_per_request":{"description":"x402 price per request in base TNZO units (stringified integer)","type":"string"},"max_price_per_hour":{"type":["string","null"],"description":"Maximum price per hour a serving node may charge (stringified integer)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: capabilities, price_per_request. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":432,"tokensAfter":441},{"name":"function_get","fixed":{"name":"function_get","description":"Read a deployed function's manifest: wasm blob hash, capabilities, fuel/deadline limits, price, and placement.","inputSchema":{"type":"object","title":"HostingIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"properties":{"id":{"type":"string","description":"Deployment id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"function_remove","fixed":{"name":"function_remove","description":"Remove a deployed function by id. Requires a signed did_envelope matching owner_did.","inputSchema":{"type":"object","title":"HostingRemoveByIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","owner_did"],"properties":{"id":{"type":"string","description":"Deployment id to remove"},"owner_did":{"type":"string","description":"Owner DID"},"did_envelope":{"type":["string","null"],"description":"Signed DID envelope authorizing the mutation"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"get_agent_bond","fixed":{"name":"get_agent_bond","description":"Inspect an AgentBond by agent DID. Returns lifecycle state (Active / Cooldown / Frozen / Slashed / Returned), amount, controller, cooldown_until, last_modified_block, and promotion eligibility. Returns null if no bond exists.","inputSchema":{"type":"object","title":"GetAgentBondParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_did"],"properties":{"agent_did":{"type":"string","description":"Agent DID to look up"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"get_agent_capability_attestations","fixed":{"name":"get_agent_capability_attestations","description":"Fetch all capability attestations issued for a specific agent (by agent ID). Returns the agent's registered capabilities, every attestation that names the agent across all capabilities, and the agent's registered wallet address (used by the self-attestation guard).","inputSchema":{"type":"object","title":"GetAgentCapabilityAttestationsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id"],"properties":{"agent_id":{"type":"string","description":"Agent ID to fetch capability attestations for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"get_agent_daily_spend","fixed":{"name":"get_agent_daily_spend","description":"Read the current UTC-day spend window for a machine agent. Mirrors `tenzro_getAgentDailySpend`: the handler resets the window if the last_reset crossed UTC midnight before returning. Returns {agent_did, current_daily_spend, max_daily_spend, remaining, last_reset}. Use to enforce the runtime SpendingPolicy ceiling (defence-in-depth on top of the on-chain ERC-7579 spending-limit validator).","inputSchema":{"type":"object","title":"GetAgentDailySpendParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_did"],"properties":{"agent_did":{"type":"string","description":"Agent DID (`did:tenzro:machine:...`). The wire RPC triggers a UTC-midnight window reset before reading, so this value reflects only the current calendar day. Returns {agent_did, current_daily_spend, max_daily_spend, remaining, last_reset}."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":248,"tokensAfter":248},{"name":"get_agent_jwk","fixed":{"name":"get_agent_jwk","description":"Resolve a single agent JWK by RFC 9421 keyid. Accepts `did:tenzro:...` (first compatible key) or `did:tenzro:...#fragment` (specific key). Mirrors GET /.well-known/jwks.json/:keyid.","inputSchema":{"type":"object","title":"GetAgentJwkParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["keyid"],"properties":{"keyid":{"type":"string","description":"RFC 9421 keyid — `did:tenzro:...` (first compatible key) or `did:tenzro:...#fragment` (specific key)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"get_agent_template","fixed":{"name":"get_agent_template","description":"Get details about a specific agent template in the Tenzro Agent Marketplace. Returns template configuration, capabilities, pricing, and usage statistics.","inputSchema":{"type":"object","title":"GetAgentTemplateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["template_id"],"properties":{"template_id":{"type":"string","description":"Agent template ID to retrieve"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"get_agent_template_stats","fixed":{"name":"get_agent_template_stats","description":"Get statistics for an agent template on the Tenzro Network marketplace. Returns total spawns, average rating, and total number of ratings.","inputSchema":{"type":"object","title":"GetAgentTemplateStatsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["template_id"],"properties":{"template_id":{"type":"string","description":"Agent template ID to get stats for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"get_app","fixed":{"name":"get_app","description":"Look up a registered app by id. Returns the developer DID, app wallet, registered signing keys, developer margin, and active status.","inputSchema":{"type":"object","title":"GetAppParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id"],"properties":{"app_id":{"type":"string","description":"App identifier to look up"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"get_approval","fixed":{"name":"get_approval","description":"Fetch a single approval record by id. The engine lazy-transitions an expired `Pending` record to `Expired` on this read path, so a returned `Pending` record is guaranteed to still be live. Returns the full record JSON; returns -32000 if id is unknown. Requires AuthEngine to be initialised on the node.","inputSchema":{"type":"object","title":"GetApprovalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["approval_id"],"properties":{"approval_id":{"type":"string","description":"Engine-assigned approval id. A returned `Pending` record is guaranteed to still be live (lazy expiry runs on this read path). Returns -32000 if id is unknown."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":197,"tokensAfter":197},{"name":"get_approval_gate","fixed":{"name":"get_approval_gate","description":"Fetch an approval gate by 32-byte hex id. Returns the approver set (single / threshold / role / delegated), m-of-n threshold, on-event trigger, and effect.","inputSchema":{"type":"object","title":"ApprovalGateIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["gate_id"],"properties":{"gate_id":{"type":"string","description":"32-byte hex approval gate id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"get_approval_request","fixed":{"name":"get_approval_request","description":"Fetch an open or finalized approval request by 32-byte hex id. Returns the gate, decisions collected, threshold progress, and final outcome (approved / rejected / pending).","inputSchema":{"type":"object","title":"ApprovalRequestIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["request_id"],"properties":{"request_id":{"type":"string","description":"32-byte hex approval request id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"get_balance","fixed":{"name":"get_balance","description":"Get the TNZO token balance of an account on the Tenzro ledger","inputSchema":{"type":"object","title":"GetBalanceParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["address"],"properties":{"address":{"type":"string","description":"Hex-encoded account address (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"get_block","fixed":{"name":"get_block","description":"Get a block by height from the Tenzro ledger, including transactions and metadata","inputSchema":{"type":"object","title":"GetBlockParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["height"],"properties":{"height":{"type":"integer","format":"uint64","minimum":0,"description":"Block height to retrieve"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"get_block_range","fixed":{"name":"get_block_range","description":"Fetch a contiguous range of blocks by height (default 64, max 256). Returns block summaries plus `next_height` and `more_available` so a lagging client can paginate forward until caught up.","inputSchema":{"type":"object","title":"GetBlockRangeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["start_height","end_height"],"properties":{"end_height":{"type":"integer","format":"uint64","minimum":0,"description":"Last block height to fetch (inclusive)"},"max_results":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Maximum number of blocks to return (default 64, capped at 256)"},"start_height":{"type":"integer","format":"uint64","minimum":0,"description":"First block height to fetch (inclusive)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":221,"tokensAfter":221},{"name":"get_bridge_routes","fixed":{"name":"get_bridge_routes","description":"Get available bridge routes between two chains, including estimated fees, time, and which adapter handles the route","inputSchema":{"type":"object","title":"GetBridgeRoutesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["source_chain","dest_chain"],"properties":{"dest_chain":{"type":"string","description":"Destination chain"},"source_chain":{"type":"string","description":"Source chain (e.g. 'tenzro', 'ethereum', 'solana')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"get_capability_attestations","fixed":{"name":"get_capability_attestations","description":"Fetch all attestations registered for a given capability. Each attestation carries the agent ID, attestation timestamp, TEE-backed flag, attester address, attester public key, signature, and metadata. Set verified_only=true to filter for attestations that pass query-time signature/expiry verification.","inputSchema":{"type":"object","title":"GetCapabilityAttestationsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["capability"],"properties":{"capability":{"type":"string","description":"Capability short-form name: 'nlp', 'vision', 'code', 'data', 'blockchain', 'smart_contract', 'api_integration', 'coordination', or any custom-capability name registered by an agent."},"verified_only":{"type":["boolean","null"],"description":"If true, run query-time signature/expiry checks before returning. Default false: registry already verifies signatures eagerly at submit time per #52."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":269,"tokensAfter":269},{"name":"get_capital_intent","fixed":{"name":"get_capital_intent","description":"Read a capital intent record (status, quotes, legs, escrow, receipt). Mirrors tenzro_getCapitalIntent.","inputSchema":{"type":"object","title":"CapitalIntentIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["intent_id"],"properties":{"intent_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"get_compute_bond","fixed":{"name":"get_compute_bond","description":"Read compute bonds — the admission collateral a provider must post before register_provider will accept it. Pass provider_did for one bond, or omit it to list every bond on the node. Always returns the node's minimum bond and withdrawal cooldown so a caller can see what admission requires.","inputSchema":{"type":"object","title":"GetComputeBondParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider_did":{"type":["string","null"],"description":"Provider DID the bond is posted against (e.g. did:tenzro:machine:...). If omitted, lists every compute bond on the node"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"get_database","fixed":{"name":"get_database","description":"Look up a database descriptor by id.","inputSchema":{"type":"object","title":"DatabaseIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id"],"properties":{"database_id":{"type":"string","description":"Database id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"get_database_partition","fixed":{"name":"get_database_partition","description":"Return the placement of one partition.","inputSchema":{"type":"object","title":"GetDatabasePartitionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id","partition_index"],"properties":{"database_id":{"type":"string","description":"Database id"},"partition_index":{"type":"integer","format":"uint","minimum":0,"description":"Partition index"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"get_dispute","fixed":{"name":"get_dispute","description":"Fetch a single channel dispute by id. Returns the full ChannelDispute (challenger, evidence blobs, status, opened_at / timeout_at / resolved_at, resolution). Returns -32004 if no dispute with that id exists. Requires ChannelManager.","inputSchema":{"type":"object","title":"GetDisputeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["dispute_id"],"properties":{"dispute_id":{"type":"string","description":"Dispute id. Returns the full ChannelDispute record (challenger, evidence blobs, status, opened_at/timeout_at/resolved_at, resolution). Returns -32004 if no dispute with that id exists."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"get_download_progress","fixed":{"name":"get_download_progress","description":"Check the download progress of a model. Returns bytes downloaded, total size, percentage complete, and estimated time remaining.","inputSchema":{"type":"object","title":"GetDownloadProgressParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"model_id":{"type":"string","description":"Model ID to check download progress for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"get_escrow","fixed":{"name":"get_escrow","description":"Read a single escrow record by its 32-byte escrow_id (hex, with or without 0x prefix). Returns `{escrow_id, payer, payee, amount, asset_id, status, created_at, expires_at, release_conditions}`. Requires EscrowManager to be initialised.","inputSchema":{"type":"object","title":"GetEscrowParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["escrow_id"],"properties":{"escrow_id":{"type":"string","description":"Escrow id — 32-byte SHA-256 digest derived by the VM during CreateEscrow. Accepts both 0x-prefixed and bare hex."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"get_events","fixed":{"name":"get_events","description":"Query historical events from the Tenzro ledger. Supports cursor-based pagination. Filter by block range, event type, and involved addresses. Returns events ordered by sequence number.","inputSchema":{"type":"object","title":"GetEventsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of events to return (default 50, max 200)"},"to_block":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Maximum block height (optional)"},"addresses":{"type":["array","null"],"items":{"type":"string"},"description":"Filter by involved addresses (hex, optional)"},"from_block":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Minimum block height (optional)"},"event_types":{"type":["array","null"],"items":{"type":"string"},"description":"Event types to filter: 'transfer', 'mint', 'burn', 'stake', 'bridge', 'settlement', 'nft_transfer', 'compliance' (optional, returns all if omitted)"},"from_sequence":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Start from a specific event sequence number for cursor-based pagination"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":345,"tokensAfter":345},{"name":"get_fee_market","fixed":{"name":"get_fee_market","description":"Inspect the EIP-1559 fee market: current effective gas price (base fee + suggested tip), suggested priority tip, and recent base-fee history. Use this to size maxFeePerGas / maxPriorityFeePerGas on Type-2 transactions. Base fee adjusts ±12.5% per block based on parent gas usage vs. the 15M target.","inputSchema":{"type":"object","title":"GetFeeMarketParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"blocks":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Number of recent blocks to summarize in fee history (1..=1024, default 10)"},"reward_percentiles":{"type":["array","null"],"items":{"type":"number","format":"double"},"description":"Tip percentiles to request, e.g. [25.0, 50.0, 75.0]; pass [] or omit to skip percentile sampling"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":232,"tokensAfter":232},{"name":"get_fee_route","fixed":{"name":"get_fee_route","description":"Fetch a fee route by 32-byte hex id. Fee routes describe how a settlement payout is split across recipients in basis points (must sum to 10_000).","inputSchema":{"type":"object","title":"FeeRouteIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["fee_route_id"],"properties":{"fee_route_id":{"type":"string","description":"32-byte hex fee route id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"get_file","fixed":{"name":"get_file","description":"Fetch one file's record — size, filename, purpose, creation time, and the storage deal funding it. A file belonging to another tenant reports the same \"no such file\" as one that does not exist, so ownership cannot be probed by guessing ids.","inputSchema":{"type":"object","title":"FileIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["file_id"],"properties":{"file_id":{"type":"string","description":"File id as returned by upload_file (`file-<uuid>`)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"get_inference_challenge","fixed":{"name":"get_inference_challenge","description":"Fetch an inference challenge by id. Returns the full record (status, filed_at, resolved_at, verification) or null when unknown. Mirrors tenzro_getInferenceChallenge.","inputSchema":{"type":"object","title":"GetInferenceChallengeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["challenge_id"],"properties":{"challenge_id":{"type":"string","description":"Challenge id (UUID) returned by file_inference_challenge. Returns the full challenge record or null when unknown."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"get_inference_commitment","fixed":{"name":"get_inference_commitment","description":"Fetch a stored TOPLOC inference commitment by hash. Returns the envelope {commitment_hash, model_id, provider, created_at, commitment: {k, prompt_tokens, steps}} or null when no commitment is stored under that hash. Mirrors tenzro_getInferenceCommitment.","inputSchema":{"type":"object","title":"GetInferenceCommitmentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["commitment_hash"],"properties":{"commitment_hash":{"type":"string","description":"Commitment hash (hex, with or without 0x prefix) returned alongside a verifiable chat response. Returns the stored envelope {commitment_hash, model_id, provider, created_at, commitment: {k, prompt_tokens, steps}} or null when unknown."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"get_key_shares","fixed":{"name":"get_key_shares","description":"Get the key share metadata for an MPC wallet. Returns the threshold, total shares, and share indices without exposing secret key material.","inputSchema":{"type":"object","title":"GetKeySharesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["wallet_id"],"properties":{"wallet_id":{"type":"string","description":"Wallet ID (UUID) to query key shares for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"get_leases_for_app","fixed":{"name":"get_leases_for_app","description":"List the placement leases bound to a specific app (site / function / machine) id.","inputSchema":{"type":"object","title":"GetLeasesForAppParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id"],"properties":{"app_id":{"type":"string","description":"App id (site / function / machine) whose placement leases to read"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_model_hash","fixed":{"name":"get_model_hash","description":"Read the canonical content-hash record for a model from the transparency log: the BLAKE3 + SHA-256 over the canonical weight bytes plus the per-file manifest hash, the recorder DID, and the record epoch. This is the trust root a fetcher verifies downloaded weights against before load. Open — no auth","inputSchema":{"type":"object","title":"GetModelHashParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"model_id":{"type":"string","description":"Model ID whose canonical content-hash record to fetch"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"get_network_stats","fixed":{"name":"get_network_stats","description":"Get a snapshot of libp2p network metrics: connection counts, gossipsub publish/accept/reject counters, Kademlia routing table size, gossipsub mesh size, and peer_address_migrations_total (QUIC path migration / mobile network switch / NAT rebinding observability)","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"get_nft_info","fixed":{"name":"get_nft_info","description":"Get information about an NFT collection or a specific token within a collection. If token_id is provided, returns token-level details (owner, URI). If omitted, returns collection-level info (name, symbol, total supply).","inputSchema":{"type":"object","title":"GetNftInfoParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["collection_id"],"properties":{"token_id":{"type":["string","null"],"description":"Token ID within the collection (optional — if omitted, returns collection-level info)"},"collection_id":{"type":"string","description":"Collection ID (UUID)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"get_node_did_document","fixed":{"name":"get_node_did_document","description":"Get this node's DID Document — every way of reaching it in one place. A node is addressed five ways (TDIP DID, Ed25519 public key, iroh EndpointId, libp2p PeerId, Pkarr record) plus its JSON-RPC/MCP/A2A/web service URLs; resolving the DID yields all of them. Unroutable bind addresses are omitted rather than advertised, and an ALPN appears only when a handler is actually installed. Returns an error when the node has no provisioned identity.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_node_status","fixed":{"name":"get_node_status","description":"Get the current status of the Tenzro node including health, block height, peer count, uptime, and role","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"get_obligation","fixed":{"name":"get_obligation","description":"Fetch an obligation record by 32-byte hex id. Returns the obligor / oblige / kind / amount / status / discharge proof.","inputSchema":{"type":"object","title":"ObligationIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["obligation_id"],"properties":{"obligation_id":{"type":"string","description":"32-byte hex obligation id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":111,"tokensAfter":111},{"name":"get_passkey_policy","fixed":{"name":"get_passkey_policy","description":"Get a smart account's second-factor policy: the policy name, how many passkey signatures each operation requires, and how many credentials are enrolled.","inputSchema":{"type":"object","title":"PasskeyGetPolicyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address"],"properties":{"account_address":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"get_passkey_session","fixed":{"name":"get_passkey_session","description":"Poll a browser-launch passkey ceremony session by id. Returns the session kind, status (pending/in_flight/completed/failed/expired), and — once terminal — the handler result or error.","inputSchema":{"type":"object","title":"GetPasskeySessionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string","description":"Session id returned by create_passkey_session. Poll until status is completed/failed/expired."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"get_privacy_domain","fixed":{"name":"get_privacy_domain","description":"Fetch a privacy domain by 32-byte hex id. Returns members, X25519 envelope policy, freeze status. Members see plaintext, non-members see Deny (indistinguishable from non-existence).","inputSchema":{"type":"object","title":"PrivacyDomainIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain_id"],"properties":{"domain_id":{"type":"string","description":"32-byte hex privacy domain id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"get_provenance","fixed":{"name":"get_provenance","description":"Look up the cached provenance manifest for generated content by its 32-byte hex content_hash (with or without 0x prefix). This is the machine-readable synthetic-content marker per EU AI Act Art. 50(2). Returns JSON-RPC -32004 when no manifest is cached for the hash. Read-only.","inputSchema":{"type":"object","title":"GetProvenanceParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["content_hash"],"properties":{"content_hash":{"type":"string","description":"32-byte hex content hash (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":162,"tokensAfter":162},{"name":"get_provider_pricing","fixed":{"name":"get_provider_pricing","description":"Get the current pricing configuration for a provider node. Returns the per-token rates, the per-unit rates for every other billable dimension, and the network ceilings.","inputSchema":{"type":"object","title":"GetProviderPricingParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["provider_address"],"properties":{"provider_address":{"type":"string","description":"Hex-encoded provider address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_provider_schedule","fixed":{"name":"get_provider_schedule","description":"Get the availability schedule for a provider node. Returns the configured hours, days, and timezone when the provider accepts inference requests.","inputSchema":{"type":"object","title":"GetProviderScheduleParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["provider_address"],"properties":{"provider_address":{"type":"string","description":"Hex-encoded provider address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"get_provider_stats","fixed":{"name":"get_provider_stats","description":"Get provider statistics including served models, inference count, staking info, and earnings. Omit address to get stats for the local node.","inputSchema":{"type":"object","title":"GetProviderStatsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"address":{"type":["string","null"],"description":"Hex-encoded provider address (with or without 0x prefix). If omitted, returns stats for the local node"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"get_reserve","fixed":{"name":"get_reserve","description":"Read the current reserve attestation for a tokenized asset. Mirrors tenzro_getReserve.","inputSchema":{"type":"object","title":"GetReserveParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["asset_id"],"properties":{"asset_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"get_router_metrics","fixed":{"name":"get_router_metrics","description":"Read the inference router's live metrics snapshot: total requests routed, hedges dispatched, hedges won, and requests abandoned on the whole-request deadline. Read-only — safe for monitoring agents.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":104},{"name":"get_sealed_model","fixed":{"name":"get_sealed_model","description":"Fetch a full sealed-model manifest by model ID. The manifest carries only ciphertext hashes, blob URIs, and wrapped (encrypted) content keys — safe to share; recipients use it to install the model on their own node","inputSchema":{"type":"object","title":"GetSealedModelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"model_id":{"type":"string","description":"Model ID of the sealed-model manifest to fetch"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"get_secure_mint_policy","fixed":{"name":"get_secure_mint_policy","description":"Read the Secure-Mint policy for an asset.","inputSchema":{"type":"object","title":"SecureMintAssetIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["asset_id"],"properties":{"asset_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"get_settle_authorized_outcome","fixed":{"name":"get_settle_authorized_outcome","description":"Fetch the recorded outcome for a settlement authorization by (app_id, external_ref). Returns the amount, payer net, commission, and success/failure detail, or an error if no settlement was recorded for that reference.","inputSchema":{"type":"object","title":"GetSettleAuthorizedOutcomeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id","external_ref"],"properties":{"app_id":{"type":"string","description":"App identifier"},"external_ref":{"type":"string","description":"Payment-provider reference used at settlement time"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"get_skill_usage","fixed":{"name":"get_skill_usage","description":"Get usage statistics for a registered skill on the Tenzro Network. Returns total invocations and last used timestamp.","inputSchema":{"type":"object","title":"GetSkillUsageParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["skill_id"],"properties":{"skill_id":{"type":"string","description":"Skill ID to get usage stats for (e.g. 'openclaw-tenzro', 'solana-defi')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"get_smart_account","fixed":{"name":"get_smart_account","description":"Fetch the smart-account summary: address, owner, nonce, deployment status, installed ERC-7579 validators.","inputSchema":{"type":"object","title":"PasskeyGetSmartAccountParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address"],"properties":{"account_address":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"get_snapshot_chunk","fixed":{"name":"get_snapshot_chunk","description":"Fetch one chunk of a local snapshot by `(height, chunk_index)`. The returned `data_b64` is the base64-encoded chunk bytes; verify against `manifest.chunk_hashes_hex[chunk_index]` before applying. Returns `{height, chunk_index, data_b64}`.","inputSchema":{"type":"object","title":"SnapshotChunkParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["height","chunk_index"],"properties":{"height":{"type":"integer","format":"uint64","minimum":0,"description":"Block height of the snapshot the chunk belongs to"},"chunk_index":{"type":"integer","format":"uint32","minimum":0,"description":"Index of the chunk to fetch (0..manifest.num_chunks)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":198,"tokensAfter":198},{"name":"get_snapshot_manifest","fixed":{"name":"get_snapshot_manifest","description":"Fetch the full snapshot manifest at `height`, including per-chunk SHA-256 hashes used to verify chunks before applying. Returns JSON-RPC error `-32004 no snapshot at height` if no snapshot exists at that height. The manifest contains `state_root_hex` which the caller MUST verify against a trusted QC at the same height before offering this manifest to another node.","inputSchema":{"type":"object","title":"SnapshotManifestParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["height"],"properties":{"height":{"type":"integer","format":"uint64","minimum":0,"description":"Block height of the snapshot to fetch the manifest for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"get_spending_limits","fixed":{"name":"get_spending_limits","description":"Get the current spending limits for a wallet. Returns the daily limit, per-transaction limit, and current daily usage.","inputSchema":{"type":"object","title":"GetSpendingLimitsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["wallet_id"],"properties":{"wallet_id":{"type":"string","description":"Wallet ID (UUID) to query spending limits for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"get_stable_asset","fixed":{"name":"get_stable_asset","description":"Read an issuer's stable-asset policy.","inputSchema":{"type":"object","title":"StableAssetIssuerUnitParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["issuer","unit_token"],"properties":{"issuer":{"type":"string","description":"Issuer address, 32-byte hex"},"unit_token":{"type":"string","description":"Unit token address, 20-byte hex"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"get_svm_cross_vm_program_info","fixed":{"name":"get_svm_cross_vm_program_info","description":"Return the canonical Tenzro Cross-VM SVM-native program ID and 4 instruction discriminators (bridge_to_evm, bridge_from_evm, register_token_pointer, transfer_cross_vm). Use this to construct SVM Instructions targeting the Tenzro Cross-VM native program from any SVM client.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"get_swarm_status","fixed":{"name":"get_swarm_status","description":"Get the current status of a Tenzro agent swarm including lifecycle status, member count, and per-member agent statuses, roles, and results.","inputSchema":{"type":"object","title":"GetSwarmStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["swarm_id"],"properties":{"swarm_id":{"type":"string","description":"Swarm ID to query"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"get_task","fixed":{"name":"get_task","description":"Get details about a specific task on the Tenzro Task Marketplace. Returns task description, status, requester, assigned agent, quotes, and completion data.","inputSchema":{"type":"object","title":"GetTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Task ID to retrieve"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"get_tee_attestation","fixed":{"name":"get_tee_attestation","description":"Generate a TEE attestation report from the node's hardware enclave. The attestation proves the code is running in a genuine TEE. Optionally specify the TEE type or auto-detect.","inputSchema":{"type":"object","title":"GetTeeAttestationParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"tee_type":{"type":["string","null"],"description":"TEE type: 'tdx', 'sev-snp', 'nitro', 'nvidia-gpu', or 'auto' (detect best available)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"get_token_balance","fixed":{"name":"get_token_balance","description":"Get the TNZO balance for an address across all VMs. Shows native balance (18 decimals), EVM wTNZO balance (18 decimals), SVM wTNZO balance (9 decimals), and DAML holding amount.","inputSchema":{"type":"object","title":"GetTokenBalanceParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["address"],"properties":{"token":{"type":["string","null"],"description":"Token symbol (default: 'TNZO')"},"address":{"type":"string","description":"Address to query (hex)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"get_token_info","fixed":{"name":"get_token_info","description":"Get information about a token by symbol, token ID, or EVM address. Returns the full token definition including cross-VM addresses.","inputSchema":{"type":"object","title":"GetTokenInfoParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"symbol":{"type":["string","null"],"description":"Token symbol (e.g. 'TNZO')"},"token_id":{"type":["string","null"],"description":"Token ID (hex, 32 bytes)"},"evm_address":{"type":["string","null"],"description":"EVM contract address (hex)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":152,"tokensAfter":152},{"name":"get_tool_usage","fixed":{"name":"get_tool_usage","description":"Get usage statistics for a registered tool on the Tenzro Network. Returns total invocations and last used timestamp.","inputSchema":{"type":"object","title":"GetToolUsageParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["tool_id"],"properties":{"tool_id":{"type":"string","description":"Tool ID to get usage stats for (e.g. 'tenzro-solana-mcp', 'tenzro-ethereum-mcp')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_trainer_daemon_status","fixed":{"name":"get_trainer_daemon_status","description":"Report the trainer auto-provisioning daemon status. When the node has no [training] config section (or enabled=false), running is false. Otherwise returns {running, trainer_did, live_trainers, max_concurrent_trainers}. Read-only.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":114},{"name":"get_transaction","fixed":{"name":"get_transaction","description":"Look up a transaction by its hash on the Tenzro ledger, returning type, sender, recipient, amount, status, and block height","inputSchema":{"type":"object","title":"GetTransactionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["tx_hash"],"properties":{"tx_hash":{"type":"string","description":"Hex-encoded transaction hash (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"get_validator_state","fixed":{"name":"get_validator_state","description":"Fetch a single validator's registry entry by hex-encoded 32-byte address (with or without 0x prefix). Returns null when the address is not registered. Read-only — validators self-register via the staking transaction path.","inputSchema":{"type":"object","title":"GetValidatorStateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["address"],"properties":{"address":{"type":"string","description":"Hex-encoded 32-byte validator address (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_voting_power","fixed":{"name":"get_voting_power","description":"Get the governance voting power of an address. Returns the staked TNZO balance used as voting weight. Delegated power is included.","inputSchema":{"type":"object","title":"GetVotingPowerParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["address"],"properties":{"address":{"type":"string","description":"Hex-encoded address to query voting power for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"get_workflow","fixed":{"name":"get_workflow","description":"Fetch a workflow by 32-byte hex id. Returns the full Workflow record (creator, participants, obligations, approval gates, status, canton_mirror, signatures). Read-only. Writes use send_transaction with the workflow privileged-VM selectors.","inputSchema":{"type":"object","title":"WorkflowIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workflow_id"],"properties":{"workflow_id":{"type":"string","description":"32-byte hex workflow id (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_workflow_lifecycle","fixed":{"name":"get_workflow_lifecycle","description":"Full lifecycle history for a workflow: ordered list of LifecycleTransition entries (from-status, to-status, reason, actor, at). Useful for audit and dispute resolution.","inputSchema":{"type":"object","title":"WorkflowIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workflow_id"],"properties":{"workflow_id":{"type":"string","description":"32-byte hex workflow id (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"get_workflow_operational_metrics","fixed":{"name":"get_workflow_operational_metrics","description":"Snapshot of workflow operational metrics (workflows/obligations/approvals partitioned by status, signature totals, canton-mirror count, fee routes, privacy domains). Returns the same data as the /metrics scrape, but as typed JSON.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"get_workflow_receipt","fixed":{"name":"get_workflow_receipt","description":"Fetch a single workflow receipt by 32-byte hex id. Receipts are append-only and form a per-workflow hash chain via prev_receipt for audit.","inputSchema":{"type":"object","title":"WorkflowReceiptIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["receipt_id"],"properties":{"receipt_id":{"type":"string","description":"32-byte hex receipt id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"get_workflow_saga","fixed":{"name":"get_workflow_saga","description":"Read the current state of a saga workflow (steps, statuses, escrows, receipt). Mirrors tenzro_getWorkflowSaga.","inputSchema":{"type":"object","title":"GetWorkflowSagaParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workflow_id"],"properties":{"workflow_id":{"type":"string","description":"Workflow id to read"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"get_zk_attestation","fixed":{"name":"get_zk_attestation","description":"Read the fraud-window record for a ZK commitment: certificate voting power, the DA locator co-signers use to re-verify, the height the fraud window opened at, whether that window is still open at the current finalized height, and whether the commitment is admitted to the on-chain ZK_VERIFY registry.","inputSchema":{"type":"object","title":"GetZkAttestationParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["commitment"],"properties":{"commitment":{"type":"string","description":"Hex-encoded 32-byte ZK commitment hash (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"hyperlane_get_message","fixed":{"name":"hyperlane_get_message","description":"Look up a Hyperlane message by id.","inputSchema":{"type":"object","title":"HyperlaneGetMessageParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["message_id"],"properties":{"message_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"hyperlane_list_chains","fixed":{"name":"hyperlane_list_chains","description":"List supported Hyperlane chains and their canonical domain ids. Coverage: Ethereum, Polygon, Arbitrum, Optimism, Base, Avalanche, BSC, Mantle, Blast, Scroll, Linea, Manta, zkSync, Celo, Moonbeam, Mode, Fraxtal, Tenzro.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"import_keystore","fixed":{"name":"import_keystore","description":"Import a wallet from an encrypted keystore JSON. Decrypts with the provided password and adds the wallet to the local node.","inputSchema":{"type":"object","title":"ImportKeystoreParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["keystore_json","password"],"properties":{"password":{"type":"string","description":"Password to decrypt the keystore file"},"keystore_json":{"type":"string","description":"JSON-encoded keystore data"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"iroh_fetch_blob","fixed":{"name":"iroh_fetch_blob","description":"Fetch a content-addressed `tenzro://blob|model|gradient|shard|receipt/...` URI from the local iroh-blobs store (auto-populates from peers as needed). Returns base64-encoded bytes plus the parsed URI and size.","inputSchema":{"type":"object","title":"IrohFetchBlobParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["tenzro_uri"],"properties":{"tenzro_uri":{"type":"string","description":"Content-addressed tenzro:// URI to fetch (blob / model / gradient / shard / receipt)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":152,"tokensAfter":152},{"name":"iroh_get_info","fixed":{"name":"iroh_get_info","description":"Show the local iroh endpoint id, Pkarr relay URL, and ALPNs registered on the shared router. Returns an internal error iff the iroh transport failed to bind at startup.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"iroh_publish_blob","fixed":{"name":"iroh_publish_blob","description":"Publish raw bytes to the shared iroh-blobs store. Returns a content-addressed `tenzro://blob/<blake3-hex>` URI that any iroh peer can fetch (subject to NAT/discovery reachability).","inputSchema":{"type":"object","title":"IrohPublishBlobParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["bytes_b64"],"properties":{"bytes_b64":{"type":"string","description":"Base64-encoded payload to publish to the shared iroh-blobs store."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"ivms101_hash","fixed":{"name":"ivms101_hash","description":"Compute the canonical SHA-256 hash for an IVMS101 Travel Rule envelope. The caller passes the envelope JSON; the node returns the binding hash that anchors the envelope to a settlement receipt.","inputSchema":{"type":"object","title":"Ivms101HashParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["envelope"],"properties":{"envelope":{"description":"IVMS101 Travel Rule envelope JSON payload","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: envelope. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":128,"tokensAfter":133},{"name":"list_active_validators","fixed":{"name":"list_active_validators","description":"List only currently-Active validators. Convenience over list_validators with status='Active'. Useful for SRE dashboards that need the current committee size and stake distribution.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"list_agent_jwks","fixed":{"name":"list_agent_jwks","description":"List all Tenzro agent public signing keys as an RFC 7517 JWK Set. Mirrors GET /.well-known/jwks.json. External RFC 9421 verifiers (Visa TAP, Mastercard, Stripe MPP, AP2, x402) use this to resolve `keyid` parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"list_agent_templates","fixed":{"name":"list_agent_templates","description":"List agent templates from the Tenzro Network agent marketplace. Browse available AI agent configurations that can be deployed. Filter by type, tag, creator, or price.","inputSchema":{"type":"object","title":"ListAgentTemplatesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"tag":{"type":["string","null"],"description":"Filter by tag (optional, must have this tag)"},"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of results (default 20, max 100)"},"offset":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Offset for pagination"},"creator":{"type":["string","null"],"description":"Filter by creator address (optional)"},"free_only":{"type":["boolean","null"],"description":"Only show free templates"},"template_type":{"type":["string","null"],"description":"Filter by template type (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"list_api_keys","fixed":{"name":"list_api_keys","description":"Operator-only. List every API key the node has issued — active and revoked. Requires `X-Tenzro-Admin-Token`. Returns `key_id`, `subject`, `label`, `scopes`, `class`, `created_at`, `revoked_at`, `active`.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"list_apps","fixed":{"name":"list_apps","description":"List all apps registered in the on-chain app registry, sorted by app id.","inputSchema":{"type":"object","title":"ListAppsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":67},{"name":"list_audio_catalog","fixed":{"name":"list_audio_catalog","description":"Browse the curated ONNX ASR catalog: Moonshine v2 (tiny/base, MIT, on-device), Distil-Whisper (small.en/medium.en/large-v3, MIT), Whisper Large-v3-turbo (MIT, flagship), Parakeet-TDT-0.6B-v3 (CC-BY-4.0, 25 European langs), Canary-1B-Flash (CC-BY-4.0, multilingual). The catalog is stable; the ORT-backed transcribers are feature-gated (default builds return ProviderNotAvailable).","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":154},{"name":"list_audio_models","fixed":{"name":"list_audio_models","description":"List ASR (speech-to-text) models currently loaded on this node. The catalog covers Moonshine v2, Distil-Whisper, Whisper-large-v3-turbo, Parakeet-TDT-0.6B-v3, and Canary-1B-Flash, all backed by ORT sessions.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":106},{"name":"list_bridge_adapters","fixed":{"name":"list_bridge_adapters","description":"List all registered bridge adapters (LayerZero, Chainlink CCIP, deBridge, Canton)","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"list_bridge_sponsorship_pools","fixed":{"name":"list_bridge_sponsorship_pools","description":"Enumerate the canonical per-adapter bridge sponsorship-pool vault addresses. Vault addresses are deterministic SHA-256 over 'tenzro/bridge/sponsorship-vault' || adapter_str (first 20 bytes).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"list_canton_domains","fixed":{"name":"list_canton_domains","description":"List Canton synchronizer domains configured on this node. Returns domain IDs, connection status, and participant info for enterprise DAML integration.","inputSchema":{"type":"object","title":"ListCantonDomainsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":94},{"name":"list_capabilities","fixed":{"name":"list_capabilities","description":"List all registered capabilities on this Tenzro node. Returns each capability with the count of agents that have it, the count of attestations, and the list of agent IDs supporting that capability. Use to discover what specialized work the local agent runtime can route.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"list_daml_contracts","fixed":{"name":"list_daml_contracts","description":"List active DAML contracts on a Canton domain. Filter by template ID. Returns contract IDs, parties, and payload data for enterprise workflow automation.","inputSchema":{"type":"object","title":"ListDamlContractsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain_id"],"properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of contracts to return (default 50)"},"domain_id":{"type":"string","description":"Canton domain ID to query contracts from"},"template_filter":{"type":["string","null"],"description":"Optional DAML template filter (e.g. 'MyModule:MyTemplate')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"list_database_engines","fixed":{"name":"list_database_engines","description":"List the database engines this node can serve — each with its data models, license, sharding model, and native-cluster topology. Engines are operator-run externals (PostgreSQL, Qdrant, Valkey) and in-process embedded engines (Lance, Tantivy).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"list_database_partitions","fixed":{"name":"list_database_partitions","description":"List every partition placement of a database.","inputSchema":{"type":"object","title":"DatabaseIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["database_id"],"properties":{"database_id":{"type":"string","description":"Database id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"list_databases","fixed":{"name":"list_databases","description":"List every database this node serves.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":36,"tokensAfter":36},{"name":"list_detection_catalog","fixed":{"name":"list_detection_catalog","description":"Browse the curated ONNX detection catalog: RF-DETR (nano/small/medium/base/large/2xl) — first real-time detector >60 AP on COCO (ICLR 2026); D-FINE (n/s/m/l/x). All Apache-2.0.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":99},{"name":"list_detection_models","fixed":{"name":"list_detection_models","description":"List object detection models currently loaded on this node (RF-DETR, D-FINE). Use list_detection_catalog to browse the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":87},{"name":"list_disputes_by_channel","fixed":{"name":"list_disputes_by_channel","description":"List every dispute (open or historical) attached to a channel. Returns `{channel_id, count, disputes: [...]}`. Empty list is not an error — a channel with no disputes returns count: 0. Requires ChannelManager.","inputSchema":{"type":"object","title":"ListDisputesByChannelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["channel_id"],"properties":{"channel_id":{"type":"string","description":"Channel id. Returns {channel_id, count, disputes: [...]} — every dispute (open or historical) attached to the channel. Empty list is not an error (count: 0)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"list_escrows_by_payee","fixed":{"name":"list_escrows_by_payee","description":"List every escrow held for the given payee address. Returns `{payee, count, escrows: [...]}`. Backed by the `escrow_payee:` secondary index in CF_SETTLEMENTS. Requires EscrowManager.","inputSchema":{"type":"object","title":"ListEscrowsByPayeeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payee"],"properties":{"payee":{"type":"string","description":"Payee address (the recipient on successful release). Returns {payee, count, escrows: [...]} from the `escrow_payee:` secondary index in CF_SETTLEMENTS."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"list_escrows_by_payer","fixed":{"name":"list_escrows_by_payer","description":"List every escrow funded by the given payer address. Returns `{payer, count, escrows: [...]}`. Backed by the `escrow_payer:` secondary index in CF_SETTLEMENTS. Requires EscrowManager.","inputSchema":{"type":"object","title":"ListEscrowsByPayerParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payer"],"properties":{"payer":{"type":"string","description":"Payer address (the wallet that created the escrow). Returns {payer, count, escrows: [...]} from the `escrow_payer:` secondary index in CF_SETTLEMENTS."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"list_fee_routes","fixed":{"name":"list_fee_routes","description":"List every registered fee route. Each route has a label, splits in bps, and a derived 32-byte id used by Workflow.fee_route.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"list_files","fixed":{"name":"list_files","description":"List the caller's own stored files, newest first, with the tenant's total stored bytes. Never returns another tenant's files: the listing is scoped to the subject on the presented `X-Tenzro-Api-Key`.","inputSchema":{"type":"object","title":"ListFilesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"How many to return, newest first. Clamped to 1000"},"purpose":{"type":["string","null"],"description":"Narrow to one purpose: assistants | batch | fine_tune | vision | user_data"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"list_forecast_catalog","fixed":{"name":"list_forecast_catalog","description":"Browse the curated ONNX forecast (timeseries) catalog. Returns models like TimesFM 2.5 — each with HF repo, context length, max horizon, and quantile support.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":93},{"name":"list_forecast_models","fixed":{"name":"list_forecast_models","description":"List forecast (timeseries) models currently loaded on this node. Use list_forecast_catalog to browse available models from the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":84,"tokensAfter":89},{"name":"list_functions","fixed":{"name":"list_functions","description":"List deployed functions, optionally filtered by owner DID.","inputSchema":{"type":"object","title":"HostingListByOwnerParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"owner_did":{"type":["string","null"],"description":"Filter by owner DID; omit to list all"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"list_inference_challenges","fixed":{"name":"list_inference_challenges","description":"List inference challenges, optionally filtered by status (voting_commit/voting_reveal/upheld/dismissed) and provider. Returns {count, challenges: [...]} sorted newest first. Mirrors tenzro_listInferenceChallenges.","inputSchema":{"type":"object","title":"ListInferenceChallengesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":["string","null"],"default":null,"description":"Optional status filter: voting_commit, voting_reveal, upheld, or dismissed."},"provider":{"type":["string","null"],"default":null,"description":"Optional provider filter (announce-signer pubkey hex)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"list_leases","fixed":{"name":"list_leases","description":"List all active placement leases held on this node across sites, functions, and machines.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"list_machines","fixed":{"name":"list_machines","description":"List deployed machines, optionally filtered by owner DID.","inputSchema":{"type":"object","title":"HostingListByOwnerParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"owner_did":{"type":["string","null"],"description":"Filter by owner DID; omit to list all"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"list_memory_records","fixed":{"name":"list_memory_records","description":"List newest-first memories for an agent. Optional `kind` filter ('granted' | 'recalled' | 'self_noted' | 'archived'). Pure read against the on-tier text index. Use memory_recall for query-driven hybrid retrieval.","inputSchema":{"type":"object","title":"ListMemoryRecordsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_did"],"properties":{"kind":{"type":["string","null"],"description":"Filter by record kind: 'granted' | 'recalled' | 'self_noted' | 'archived'"},"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Max records to return (default 50)"},"agent_did":{"type":"string","description":"Agent DID to scope the listing to"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":207},{"name":"list_model_endpoints","fixed":{"name":"list_model_endpoints","description":"List all model service endpoints with their API and MCP URLs, model details, and status","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"list_model_hashes","fixed":{"name":"list_model_hashes","description":"List every recorded canonical model hash on this node. Each entry carries the model ID, BLAKE3, SHA-256, manifest hash, recorder DID, and record epoch. Open — no auth","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"list_models","fixed":{"name":"list_models","description":"List AI models available on the Tenzro network. Shows all models with availability: 'local' (served on this node, free), 'network' (available from remote providers, costs TNZO), or 'downloadable' (in catalog but not yet available). Filter by category or search by name","inputSchema":{"type":"object","title":"ListModelsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"type":["string","null"],"description":"Filter by name substring (optional)"},"category":{"type":["string","null"],"description":"Filter by model category/modality: 'text', 'image', 'audio', 'video', 'text_image', 'text_audio', 'multimodal' (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"list_my_api_keys","fixed":{"name":"list_my_api_keys","description":"Subject-gated. List every API key belonging to the caller's own subject, and the entitlement behind each: scopes, tier ceiling, `canton_networks`, `canton_user_id`, and party-delegation arrays. A row with a non-empty `canton_networks` but a null `canton_user_id` has node access without ledger access — it authenticates but is bound to no Canton party, so command submission is refused. Requires the caller's MCP request to carry an `X-Tenzro-Api-Key` header identifying the subject.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"list_nft_collections","fixed":{"name":"list_nft_collections","description":"List all NFT collections registered on the Tenzro ledger. Optionally filter by creator address or NFT standard (erc721/erc1155).","inputSchema":{"type":"object","title":"ListNftCollectionsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of results (default 50, max 100)"},"creator":{"type":["string","null"],"description":"Filter by creator address (hex, optional)"},"standard":{"type":["string","null"],"description":"Filter by standard: 'erc721' or 'erc1155' (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"list_passkeys","fixed":{"name":"list_passkeys","description":"List the WebAuthn credential ids enrolled on a passkey-bound smart account.","inputSchema":{"type":"object","title":"ListPasskeysParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address"],"properties":{"account_address":{"type":"string","description":"Hex-encoded 20-byte smart-account address."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"list_payment_protocols","fixed":{"name":"list_payment_protocols","description":"List the payment protocols supported by this Tenzro node, including MPP (session-based streaming), x402 (stateless one-shot), and native TNZO transfers","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"list_pending_approvals","fixed":{"name":"list_pending_approvals","description":"List every approval in `Pending` state for the given approver DID. Lazy-expires stale records server-side before returning, so the caller never sees expired entries. Returns `{approver_did, count, pending: [{approval_id, requester_did, approver_did, created_at_ms, expires_at_ms, status, decided_at_ms, summary, action}]}`. Requires AuthEngine to be initialised on the node.","inputSchema":{"type":"object","title":"ListPendingApprovalsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["approver_did"],"properties":{"approver_did":{"type":"string","description":"Approver DID (e.g. 'did:tenzro:human:alice'). Returns every approval in `Pending` status whose approver_did matches. Lazy-expires stale records server-side before returning."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"list_pending_recoveries","fixed":{"name":"list_pending_recoveries","description":"List in-flight social-recovery ceremonies for a smart account, with current signature counts and expiration timestamps.","inputSchema":{"type":"object","title":"PasskeyListPendingRecoveriesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address"],"properties":{"account_address":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"list_privacy_domains_for_did","fixed":{"name":"list_privacy_domains_for_did","description":"List privacy domains a given DID is a member of. Caller-side filtered to the DIDs the requester is authorized to see.","inputSchema":{"type":"object","title":"DidParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["did"],"properties":{"did":{"type":"string","description":"DID string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"list_proposals","fixed":{"name":"list_proposals","description":"List governance proposals on the Tenzro Network. Filter by status (active/passed/rejected/pending). Returns proposal IDs, titles, vote tallies, and deadlines.","inputSchema":{"type":"object","title":"ListProposalsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of results (default 20)"},"offset":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Pagination offset"},"status":{"type":["string","null"],"description":"Filter by status: 'active', 'passed', 'rejected', 'pending'. If omitted, returns all."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"list_provider_capacity","fixed":{"name":"list_provider_capacity","description":"List providers with published capacity across the Tenzro network. For each provider returns both the advertised capacity (its own claim: max concurrent requests, requests/sec, batch size, MTP support) and the measured throughput this node has observed (tokens/sec, p95 latency, reputation, and a reputation-discounted throughput figure). Includes this node's local providers (source=local) and gossip-discovered peers (source=network). Mirrors tenzro_listProviderCapacity.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"list_providers","fixed":{"name":"list_providers","description":"List all providers discovered on the Tenzro Network. Providers broadcast announcements every 60s on the tenzro/providers gossipsub topic. Returns both the local node (if serving) and all remotely discovered providers. Optionally filter by provider_type: 'llm', 'tee', or 'general'.","inputSchema":{"type":"object","title":"ListProvidersParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"provider_type":{"type":["string","null"],"description":"Optional filter by provider type: 'llm', 'tee', or 'general'. If omitted, all providers are returned."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"list_rpc_methods","fixed":{"name":"list_rpc_methods","description":"Enumerate the JSON-RPC methods this node serves, with how each is gated (admin token vs open) and which API-key scope it needs. Use this to discover capability beyond the named tools, then invoke what you find with call_rpc. Filter with `namespace` or `contains` — the unfiltered directory is ~900 entries.","inputSchema":{"type":"object","title":"ListRpcMethodsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"contains":{"type":["string","null"],"description":"Case-insensitive substring of the method name, e.g. `database`, `stake`, `Forecast`"},"namespace":{"type":["string","null"],"description":"Restrict to one namespace, e.g. `eth`, `canton`, `list`. Omit to search across all"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":212,"tokensAfter":212},{"name":"list_sealed_models","fixed":{"name":"list_sealed_models","description":"List sealed-model manifests stored on this node. Sealed models are distributed as encrypted shards with per-recipient wrapped content keys (x25519-hkdf-sha256-envelope-aes-256-gcm); only named recipients can decrypt. Returns summaries — use get_sealed_model for a full manifest","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"list_segmentation_catalog","fixed":{"name":"list_segmentation_catalog","description":"Browse the curated ONNX segmentation catalog: SAM 2 (base/large), EdgeSAM, MobileSAM. SAM 3 / 3.1 are text-promptable with a different decoder ABI and are not exposed via this point/box segment tool.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":106},{"name":"list_segmentation_models","fixed":{"name":"list_segmentation_models","description":"List segmentation models currently loaded on this node (SAM 2, EdgeSAM, MobileSAM). Use list_segmentation_catalog to browse the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":90},{"name":"list_site_aliases","fixed":{"name":"list_site_aliases","description":"List all hostname aliases and the site_ids they resolve to.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":43,"tokensAfter":43},{"name":"list_site_domains","fixed":{"name":"list_site_domains","description":"List all claimed custom domains and their site_ids.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":40,"tokensAfter":40},{"name":"list_site_placements","fixed":{"name":"list_site_placements","description":"List all site placements across the node.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"list_sites","fixed":{"name":"list_sites","description":"List published sites, optionally filtered by owner DID.","inputSchema":{"type":"object","title":"ListSitesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"owner_did":{"type":["string","null"],"description":"Filter by owner DID; omit to list all"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"list_smart_accounts","fixed":{"name":"list_smart_accounts","description":"List every smart account known to the node, including each account's installed validators.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"list_snapshots","fixed":{"name":"list_snapshots","description":"List local snapshots available for state-sync. Per-chunk hashes are elided for compactness — use `get_snapshot_manifest` to fetch the full manifest with `chunk_hashes_hex[]`. Returns `{snapshots: [{height, state_root_hex, num_chunks, created_at, format}, ...]}`.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"list_tasks","fixed":{"name":"list_tasks","description":"List tasks from the Tenzro Network task marketplace. Filter by type, status, poster address, or maximum price. Defaults to showing open tasks. Use this to discover tasks agents can fulfill.","inputSchema":{"type":"object","title":"ListTasksParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Maximum number of results (default 20, max 100)"},"offset":{"type":["integer","null"],"format":"uint","minimum":0,"description":"Offset for pagination"},"poster":{"type":["string","null"],"description":"Filter by poster address (optional)"},"status":{"type":["string","null"],"description":"Filter by status: open, assigned, in_progress, completed, cancelled, expired, disputed (optional, default: open)"},"task_type":{"type":["string","null"],"description":"Filter by task type (optional)"},"max_price_wei":{"type":["string","null"],"default":null,"description":"Maximum price filter in wei (only show tasks at or below this price). Accepts u64 number or decimal string."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":309,"tokensAfter":309},{"name":"list_tee_providers","fixed":{"name":"list_tee_providers","description":"List all registered TEE providers on the network, including their TEE type, attestation status, and supported capabilities.","inputSchema":{"type":"object","title":"ListTeeProvidersParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":86},{"name":"list_text_embedding_catalog","fixed":{"name":"list_text_embedding_catalog","description":"Browse the curated ONNX text-embedding catalog: Qwen3-Embedding (0.6B/4B/8B), EmbeddingGemma-300M, BGE-M3, ModernBERT-embed (base/large). Each entry carries embedding_dim, supported Matryoshka truncations, and license tier.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":113},{"name":"list_text_embedding_models","fixed":{"name":"list_text_embedding_models","description":"List text-embedding models currently loaded on this node (Qwen3-Embedding, EmbeddingGemma, BGE-M3, etc.). Use list_text_embedding_catalog to browse the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":97},{"name":"list_text_segmentation_catalog","fixed":{"name":"list_text_segmentation_catalog","description":"Browse the curated ONNX text-promptable segmentation catalog: SAM 3 / SAM 3.1 (Meta) — open-vocabulary text-promptable segmenter, ViT-H backbone, 1008x1008 input, 32-token CLIP BPE language encoder.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":107},{"name":"list_text_segmentation_models","fixed":{"name":"list_text_segmentation_models","description":"List text-promptable segmenters currently loaded on this node (SAM 3 family). Use list_text_segmentation_catalog to browse the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":91},{"name":"list_tokens","fixed":{"name":"list_tokens","description":"List all registered tokens in the unified token registry. Optionally filter by VM type or creator address.","inputSchema":{"type":"object","title":"ListTokensParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Maximum number of tokens to return (default: 50, max: 100)"},"vm_type":{"type":["string","null"],"description":"Filter by VM type: 'evm', 'svm', 'daml', 'native'"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"list_validators","fixed":{"name":"list_validators","description":"List validators in the on-chain registry, optionally filtered by status ('Active' | 'Candidate' | 'PendingActive' | 'PendingExit' | 'Exited' | 'Jailed'). Each entry carries base58 address, Ed25519 + ML-DSA-65 + BLS12-381 pubkeys, self_stake (u128 decimal string), and epoch lifecycle markers.","inputSchema":{"type":"object","title":"ListValidatorsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":["string","null"],"description":"Optional status filter: 'Active' | 'Candidate' | 'PendingActive' | 'PendingExit' | 'Exited' | 'Jailed'"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"list_video_catalog","fixed":{"name":"list_video_catalog","description":"Browse the curated video encoder catalog: the V-JEPA 2 family (vjepa2-vitl-256, vjepa2-vith-256, vjepa2-vitg-384 — Meta AI). Serving is frame-based rather than native — load_video_model composes a clip encoder over an already-loaded image encoder and mean-pools the per-frame embeddings.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":128},{"name":"list_video_models","fixed":{"name":"list_video_models","description":"List clip-level video encoders currently loaded on this node, each wrapping an image encoder with a frame count. Use list_video_catalog to browse the curated catalog.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":94},{"name":"list_vision_catalog","fixed":{"name":"list_vision_catalog","description":"Browse the curated ONNX vision encoder catalog: DINOv3 (small/base/large), SigLIP2 (base/large/so400m), CLIP ViT-B/32 + L/14, DINOv2. Each entry carries input_size, embedding_dim, normalization preset, and license tier.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":110},{"name":"list_vision_models","fixed":{"name":"list_vision_models","description":"List vision encoder models currently loaded on this node (DINOv3, SigLIP2, CLIP, etc.). Use list_vision_catalog to browse available models.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":87},{"name":"list_webhooks","fixed":{"name":"list_webhooks","description":"List the webhooks registered under one owner DID. Returns each webhook's id, url, active flag, event_types/addresses filters, and delivery counters (total_deliveries, failed_deliveries). Secret hashes are NOT returned — secrets are write-only. Scoped to one owner rather than the whole node: a row carries its delivery URL and the addresses its owner watches, so it requires a signed did_envelope for owner_did.","inputSchema":{"type":"object","title":"ListWebhooksParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["owner_did","did_envelope"],"properties":{"owner_did":{"type":"string","description":"DID whose webhooks to list."},"did_envelope":{"type":"string","description":"Hex DID envelope proving control of owner_did, bound to method tenzro_listWebhooks with the DID string as the params hash."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":242,"tokensAfter":242},{"name":"list_workflow_receipts","fixed":{"name":"list_workflow_receipts","description":"Walk a workflow's receipt chain from head backwards via prev_receipt. Returns receipts oldest-last, bounded by `max` (default 256). Use this for audit trails and dispute history.","inputSchema":{"type":"object","title":"WorkflowReceiptListParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workflow_id"],"properties":{"max":{"type":["integer","null"],"format":"uint32","minimum":0,"description":"Maximum receipts to return (default 256)"},"workflow_id":{"type":"string","description":"32-byte hex workflow id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"list_workflows_by_creator","fixed":{"name":"list_workflows_by_creator","description":"List workflow ids created by a given DID. Returns up to all workflows the DID has authored, regardless of status.","inputSchema":{"type":"object","title":"CreatorDidParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["creator_did"],"properties":{"creator_did":{"type":"string","description":"Creator DID (did:tenzro:human:... or did:tenzro:machine:...)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"list_workflows_by_participant","fixed":{"name":"list_workflows_by_participant","description":"List workflow ids that include a DID as a participant (regardless of role). The DID may be the creator, an obligor, an oblige, or an approver.","inputSchema":{"type":"object","title":"DidParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["did"],"properties":{"did":{"type":"string","description":"DID string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"list_workflows_by_status","fixed":{"name":"list_workflows_by_status","description":"List workflow ids in a given status. Status: draft | awaiting_signatures | active | suspended | settling | completed | failed | disputed | cancelled.","inputSchema":{"type":"object","title":"WorkflowStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["status"],"properties":{"status":{"type":"string","description":"Workflow status: draft | awaiting_signatures | active | suspended | settling | completed | failed | disputed | cancelled"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"list_x402_schemes","fixed":{"name":"list_x402_schemes","description":"List the x402 scheme backends registered on this node. Each scheme corresponds to a different verification path under the x402 protocol: 'tenzro-hybrid' (Ed25519 hybrid sig over canonical preimage), 'exact-eip3009' (USDC EIP-3009 meta-tx via CDP facilitator), 'permit2' (Uniswap Permit2 via CDP facilitator), 'erc7710' (delegation redemption). Use the returned ids in the 'extra.scheme' field of an x402 PaymentRequirement.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"list_zk_circuits","fixed":{"name":"list_zk_circuits","description":"List all available ZK circuits on the node — name, AIR type, field, and hash function.","inputSchema":{"type":"object","title":"ListZkCircuitsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":74},{"name":"machine_deploy","fixed":{"name":"machine_deploy","description":"Deploy a long-running microVM (Firecracker) from a content-addressed image. Placed only on KVM+nested-virt nodes; optionally TEE-sealed. Env vars are wrapped to the node's X25519 sealing key. Requires a signed did_envelope.","inputSchema":{"type":"object","title":"MachineDeployParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name","owner_did","artifact_caid","internal_port"],"properties":{"name":{"type":"string","description":"Machine name (unique per owner)"},"replicas":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Number of serving replicas to place"},"owner_did":{"type":"string","description":"Owner DID"},"resources":{"description":"Resource request: {vcpus, mem_mib, disk_mib}","type":"string"},"sealed_env":{"description":"Sealed env vars, each ciphertext wrapped to the node's X25519 sealing key (see machine_sealing_key)","type":"string"},"region_hint":{"type":["string","null"],"description":"Preferred region for placement"},"did_envelope":{"type":["string","null"],"description":"Signed DID envelope authorizing the mutation"},"tee_required":{"type":["boolean","null"],"description":"Require a TEE-capable serving node"},"artifact_caid":{"type":"string","description":"Content-addressed id of the microVM image artifact"},"internal_port":{"type":"integer","format":"uint16","maximum":65535,"minimum":0,"description":"Loopback port the guest server listens on"},"price_per_request":{"description":"x402 price per request in base TNZO units (stringified integer)","type":"string"},"max_price_per_hour":{"type":["string","null"],"description":"Maximum price per hour a serving node may charge (stringified integer)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: resources, sealed_env, price_per_request. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":467,"tokensAfter":481},{"name":"machine_get","fixed":{"name":"machine_get","description":"Read a deployed machine's manifest: artifact CAID, internal port, resources, TEE requirement, price, and placement.","inputSchema":{"type":"object","title":"HostingIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"properties":{"id":{"type":"string","description":"Deployment id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"machine_remove","fixed":{"name":"machine_remove","description":"Remove a deployed machine by id, tearing down the microVM. Requires a signed did_envelope matching owner_did.","inputSchema":{"type":"object","title":"HostingRemoveByIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id","owner_did"],"properties":{"id":{"type":"string","description":"Deployment id to remove"},"owner_did":{"type":"string","description":"Owner DID"},"did_envelope":{"type":["string","null"],"description":"Signed DID envelope authorizing the mutation"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":151,"tokensAfter":151},{"name":"machine_status","fixed":{"name":"machine_status","description":"Read a running machine's live status: lifecycle state, serving node, and last heartbeat.","inputSchema":{"type":"object","title":"HostingIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["id"],"properties":{"id":{"type":"string","description":"Deployment id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"media_gen_get_job","fixed":{"name":"media_gen_get_job","description":"Look up a single Tenzro Media Gen job by id. Returns null when this node has never seen it. On a split job the assignments array shows which halves of the denoising schedule are already claimed.","inputSchema":{"type":"object","title":"MediaGenJobIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["job_id"],"properties":{"job_id":{"type":"string","description":"Tenzro Media Gen job id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"media_gen_get_receipt","fixed":{"name":"media_gen_get_receipt","description":"Fetch the signed receipt sealing a completed Tenzro Media Gen job. Returns null while the job is still open. The receipt commits to output_hash, output_mime, output_bytes, the params actually rendered, and the worker's signature.","inputSchema":{"type":"object","title":"MediaGenJobIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["job_id"],"properties":{"job_id":{"type":"string","description":"Tenzro Media Gen job id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"media_gen_list_catalog","fixed":{"name":"media_gen_list_catalog","description":"List the curated generative-media catalog: ungated diffusers pipelines serving text2image, image2image, text2video, or image2video. Each entry carries id, hf_repo, pipeline_class, kinds, default resolution and steps, min_vram_gb, license, and expert_pair. A non-null expert_pair means the denoising schedule splits across two workers, so a claim on that model needs a role.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"media_gen_list_jobs","fixed":{"name":"media_gen_list_jobs","description":"List the Tenzro Media Gen jobs this node holds, optionally filtered by status. Each job carries job_id, task_spec, status, required_roles, assignments, handoff-if-split, and receipt-if-complete. Read-only — safe for monitoring agents.","inputSchema":{"type":"object","title":"MediaGenListJobsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":["string","null"],"description":"Optional status filter: 'pending' | 'claimed' | 'running' | 'completed' | 'failed' | 'cancelled'"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"media_gen_list_workers","fixed":{"name":"media_gen_list_workers","description":"List the generative-media workers enrolled on this node. Each entry carries worker_did, supported_models, expert_holdings (the halves of a split model it has resident), max_resolution, max_frames, and gpu_vram_gb. Read-only.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"media_gen_quote","fixed":{"name":"media_gen_quote","description":"Price a Tenzro Media Gen job before posting it. The work unit is the pixel-step (width x height x steps x frames). Returns kind, pixel_steps, per_pixel_step, base_fee, and quote as decimal attoTNZO strings. Read-only — nothing is queued.","inputSchema":{"type":"object","title":"MediaGenQuoteParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["kind","params"],"properties":{"kind":{"type":"string","description":"Media kind: 'text2image' | 'image2image' | 'text2video' | 'image2video'"},"params":{"description":"MediaGenParams object: prompt, width, height, steps, guidance_scale, and (for video) num_frames and fps","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: params. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":191,"tokensAfter":196},{"name":"memory_archive","fixed":{"name":"memory_archive","description":"Archive a memory record. Pushes the canonical payload to the configured DA backend, then rewrites the on-tier rows with kind='archived' and the resulting DaPointer attached. Frees hot search budget; payload is fetchable on demand via the pointer.","inputSchema":{"type":"object","title":"MemoryArchiveParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["record_id","agent_did"],"properties":{"agent_did":{"type":"string","description":"Agent DID owning the record (used to scope the lookup)."},"record_id":{"type":"string","description":"Memory record id (UUID v4) to archive."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"memory_grant","fixed":{"name":"memory_grant","description":"Grant a memory to an agent on the Tenzro Network. Embeds the text via the configured TextEmbeddingRuntime and writes to both the Lance vector index and the Tantivy BM25 index. Returns the persisted MemoryRecord including its UUID.","inputSchema":{"type":"object","title":"MemoryGrantParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_did","text"],"properties":{"kind":{"type":["string","null"],"description":"Memory kind: 'granted' (default), 'recalled', 'self_noted', or 'archived'."},"text":{"type":"string","description":"The text payload to remember. Indexed for both vector and BM25 recall."},"source":{"type":["string","null"],"description":"Memory source: 'controller' (default), 'tool', 'peer', or 'self'."},"metadata":{"description":"Free-form JSON metadata stored alongside the record.","type":"string"},"agent_did":{"type":"string","description":"Agent DID the memory belongs to (e.g. 'did:tenzro:machine:...')"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: metadata. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":273,"tokensAfter":277},{"name":"moe_expert_status","fixed":{"name":"moe_expert_status","description":"Snapshot of this node's resident MoE experts and gating networks: each entry's residency tier (memory / disk), byte footprint, the total footprint, the memory budget, and whether GPU compute is active.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"moe_prepare_experts","fixed":{"name":"moe_prepare_experts","description":"Slice a catalog MoE checkpoint into per-expert safetensors blobs (and optionally the layer gate), optionally block-quantizing each projection (q4_k_m / q8_0 / q4_k / q6_k preset, or a per-projection gate/up/down mix), and publish them as tenzro://blob content so holders can load them. Runs asynchronously; returns a job_id to poll with moe_prepare_status. Omit experts to prepare every expert in the layer.","inputSchema":{"type":"object","title":"MoePrepareExpertsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id","layer"],"properties":{"layer":{"type":"integer","format":"uint32","minimum":0,"description":"Layer index to prepare experts for"},"quant":{"description":"Block-quantization: a preset string (q4_k_m / q8_0 / q4_k / q6_k) or a per-projection object like {\"gate\":\"q4_k\",\"up\":\"q4_k\",\"down\":\"q6_k\"}. Omit for dense f32 blobs.","type":"string"},"experts":{"type":["array","null"],"items":{"type":"integer","format":"uint32","minimum":0},"description":"Expert indices to prepare; omit or empty to prepare every expert in the layer"},"model_id":{"type":"string","description":"Catalog model id (must be a MoE entry)"},"include_gate":{"type":["boolean","null"],"description":"Publish the layer's gating-network blob alongside the experts (default true)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: quant. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":374,"tokensAfter":378},{"name":"moe_prepare_status","fixed":{"name":"moe_prepare_status","description":"Poll the state of an expert-preparation job started by moe_prepare_experts. Returns the job's model_id, layer, state (running / done / error), any error, and the prepared per-expert tenzro://blob URIs when done.","inputSchema":{"type":"object","title":"MoePrepareStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["job_id"],"properties":{"job_id":{"type":"string","description":"Job id returned by moe_prepare_experts"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"mpc_keygen_status","fixed":{"name":"mpc_keygen_status","description":"Query MPC keygen session state. Pass instance_id for a single session, or omit it to list every keygen session on this node. Each record carries status, threshold, total_parties, local_party_index, and — once completed — group_id, group_public_key, and the derived EIP-55 address.","inputSchema":{"type":"object","title":"McpKeygenStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"instance_id":{"type":["string","null"],"description":"Instance id (hex) of a specific keygen session. Omit to list all sessions on this node."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":169,"tokensAfter":169},{"name":"netting_get_batch","fixed":{"name":"netting_get_batch","description":"Read a netting batch (gross obligations, net settlement instructions, status). Mirrors tenzro_nettingGetBatch.","inputSchema":{"type":"object","title":"NettingGetBatchParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["batch_id"],"properties":{"batch_id":{"type":"string","description":"Batch id (hex) to read."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"netting_list_batches","fixed":{"name":"netting_list_batches","description":"List all netting batches. Returns {count, batches: [...]}. Mirrors tenzro_nettingListBatches.","inputSchema":{"type":"object","title":"NettingListBatchesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":79},{"name":"netting_settle","fixed":{"name":"netting_settle","description":"Mark a computed netting batch as settled once its net settlement instructions have been executed. Mirrors tenzro_nettingSettle.","inputSchema":{"type":"object","title":"NettingSettleParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["batch_id"],"properties":{"batch_id":{"type":"string","description":"Batch id (hex) to mark settled."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"open_payment_channel","fixed":{"name":"open_payment_channel","description":"Open a micropayment channel for off-chain per-token billing. Sender deposits TNZO into the channel for streaming payments to the recipient. Returns the channel ID.","inputSchema":{"type":"object","title":"OpenPaymentChannelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["sender","recipient","deposit_wei"],"properties":{"app_id":{"type":["string","null"],"description":"Registered app_id for developer-margin attribution. The channel snapshots the app's wallet and margin at open; the margin is carved out of the payee credit at channel finalize."},"sender":{"type":"string","description":"Hex-encoded sender address (opens and funds the channel)"},"recipient":{"type":"string","description":"Hex-encoded recipient address"},"deposit_wei":{"type":"string","description":"Initial deposit amount in wei (1 TNZO = 10^18 wei). Accepts u64 number or decimal string."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"post_agent_bond","fixed":{"name":"post_agent_bond","description":"Post an AgentBond surety against an agent DID (Agent-Swarm Spec 9). An Active bond ≥ bond_min_for_promotion promotes a Machine identity into the Delegated admission lane even when its controller is unknown / sub-Enhanced KYC. NOTE: this MCP tool describes the operation only — sign and submit a PostAgentBond transaction via tenzro_signAndSendTransaction.","inputSchema":{"type":"object","title":"PostAgentBondParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["from","agent_did","controller_did","amount"],"properties":{"from":{"type":"string","description":"Controller wallet address (hex). Must match the signing key."},"amount":{"type":"string","description":"Bond amount in wei as a decimal string (1 TNZO = 10^18 wei)"},"agent_did":{"type":"string","description":"DID of the agent the bond is posted against (e.g. did:tenzro:machine:...)"},"controller_did":{"type":"string","description":"Controller DID (e.g. did:tenzro:human:...) authorizing the bond"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":287,"tokensAfter":287},{"name":"post_task","fixed":{"name":"post_task","description":"Post a new task to the Tenzro Network task marketplace. Returns the created task with its UUID. Tasks can request AI inference, code review, data analysis, content generation, agent execution, translation, or research.","inputSchema":{"type":"object","title":"PostTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title","description","task_type","poster_address","max_price_wei","input"],"properties":{"input":{"type":"string","description":"Input data or prompt for the task"},"title":{"type":"string","description":"Short title for the task (e.g. 'Translate README to Spanish')"},"deadline":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Optional: Unix timestamp deadline for task completion"},"priority":{"type":["string","null"],"description":"Task priority: low, normal, high, urgent (default: normal)"},"task_type":{"type":"string","description":"Task type: inference, code_review, data_analysis, content_generation, agent_execution, translation, research, or custom:<value>"},"description":{"type":"string","description":"Detailed description of the task and expected output"},"max_price_wei":{"type":"string","description":"Maximum price willing to pay in wei (1 TNZO = 10^18 wei). Accepts u64 number or decimal string."},"poster_address":{"type":"string","description":"Hex-encoded address of the task poster"},"required_model":{"type":["string","null"],"description":"Optional: minimum model size required (e.g. '7b', '70b')"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":426,"tokensAfter":426},{"name":"refund_escrow","fixed":{"name":"refund_escrow","description":"Refund escrowed funds back to the payer via a signed RefundEscrow transaction. Only the original payer can refund, AND the escrow must be expired (or use Timeout/Custom release conditions).","inputSchema":{"type":"object","title":"RefundEscrowParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["escrow_id","payer"],"properties":{"payer":{"type":"string","description":"Hex-encoded payer address (must match the bearer's wallet)"},"escrow_id":{"type":"string","description":"32-byte escrow ID (hex, with or without 0x prefix)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"register_stable_asset","fixed":{"name":"register_stable_asset","description":"Register or replace an issuer's stable-asset policy (issuer-agnostic stable-unit issuance on the Secure-Mint reserve floor). Requires the `issuer` API-key scope.","inputSchema":{"type":"object","title":"RegisterStableAssetParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["issuer","unit_token","symbol","reserve_source","por_feed_id","allowed_rails","settlement_dst"],"properties":{"issuer":{"type":"string","description":"Issuer address, 32-byte hex"},"symbol":{"type":"string","description":"Human label for the unit (e.g. USDX)"},"unit_token":{"type":"string","description":"Unit token address, 20-byte hex"},"por_feed_id":{"type":"string"},"allowed_rails":{"type":"array","items":{"type":"string"},"description":"Allowed rails: x402 ap2 mpp visa_tap mastercard tempo open_standard native"},"reserve_source":{"description":"Reserve source: {kind:\"custodial\", attester_did, asset_caip19} or {kind:\"on_chain_vault\", vault, asset_caip19}","type":"string"},"settlement_dst":{"type":"string","description":"Settlement destination address, 32-byte hex"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: reserve_source. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":310,"tokensAfter":315},{"name":"remove_passkey","fixed":{"name":"remove_passkey","description":"Revoke a single WebAuthn credential from a passkey-bound smart account by credential id. The account stays usable while at least one other credential survives; removing the last one leaves it recoverable-only until a guardian finalizes a recovery.","inputSchema":{"type":"object","title":"RemovePasskeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","credential_id_hex"],"properties":{"account_address":{"type":"string","description":"Hex-encoded 20-byte smart-account address."},"credential_id_hex":{"type":"string","description":"Credential id (hex) to revoke. Removing the last credential leaves the account recoverable-only."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":200,"tokensAfter":200},{"name":"resolve_did","fixed":{"name":"resolve_did","description":"Resolve a DID to its identity information, including display name, type, status, and delegation scope for machine identities","inputSchema":{"type":"object","title":"ResolveDidParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["did"],"properties":{"did":{"type":"string","description":"DID to resolve (e.g. did:tenzro:human:uuid or did:tenzro:machine:controller:uuid)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"resolve_username","fixed":{"name":"resolve_username","description":"Resolve a username to its DID on the Tenzro Network. Returns the DID associated with the given username.","inputSchema":{"type":"object","title":"ResolveUsernameParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["username"],"properties":{"username":{"type":"string","description":"Username to resolve to its DID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"revoke_api_key","fixed":{"name":"revoke_api_key","description":"Operator-only. Revoke an API key by its non-secret `key_id`. Requires `X-Tenzro-Admin-Token`. Fails with `-32004` if the target is an `operator_protected` key (those cannot be revoked via RPC, by anyone, including an admin — rotate by updating the operator secret and restarting the node).","inputSchema":{"type":"object","title":"RevokeApiKeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["key_id"],"properties":{"key_id":{"type":"string","description":"Non-secret `key_id` (returned by `create_api_key` / `list_api_keys`)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"revoke_jwt","fixed":{"name":"revoke_jwt","description":"Revoke a JWT by its jti. Requires a signed did_envelope from the token's bearer DID or the controller DID that authorized it — a jti travels in every audit row, so knowing one is not authority to destroy it. Cascades to any tokens minted from the revoked token.","inputSchema":{"type":"object","title":"RevokeJwtParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["jti","did_envelope"],"properties":{"jti":{"type":"string","description":"JWT id (jti) to revoke. Cascades to any tokens minted from it."},"reason":{"type":["string","null"],"description":"Optional human-readable revocation reason."},"did_envelope":{"type":"string","description":"Hex DID envelope proving control of the token's bearer DID or of the controller DID that authorized it, bound to method tenzro_revokeJwt with the jti as the params hash. A jti is an identifier, not a credential."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":257,"tokensAfter":257},{"name":"revoke_my_api_key","fixed":{"name":"revoke_my_api_key","description":"Subject-gated. Revoke an API key belonging to the caller's own subject. Requires `X-Tenzro-Api-Key`. Only `subject`-class keys are eligible. The error for \"no such key\" and \"not your key\" is intentionally the same so ownership cannot be probed.","inputSchema":{"type":"object","title":"RevokeApiKeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["key_id"],"properties":{"key_id":{"type":"string","description":"Non-secret `key_id` (returned by `create_api_key` / `list_api_keys`)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"revoke_session","fixed":{"name":"revoke_session","description":"Revoke an active wallet session immediately. Requires a signed did_envelope from the DID that owns the session's wallet. The session ID becomes invalid and any pending operations under this session are cancelled.","inputSchema":{"type":"object","title":"RevokeSessionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id","did_envelope"],"properties":{"session_id":{"type":"string","description":"Session ID (UUID) to revoke"},"did_envelope":{"type":"string","description":"Hex DID envelope proving control of the DID that owns the session's wallet, bound to method tenzro_revokeSession with the session id as the params hash. A session id is a handle the node hands back, not a credential."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"revoke_session_key","fixed":{"name":"revoke_session_key","description":"Revoke a smart account's session-key validator config.","inputSchema":{"type":"object","title":"PasskeyRevokeSessionKeyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address"],"properties":{"account_address":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"route_difficulty_stats","fixed":{"name":"route_difficulty_stats","description":"Read the node's difficulty index: how many prompt clusters it has discovered and how many prompts landed in each. With model_id, also returns that model's per-cluster outcome counters and error rate. An operator diagnostic — routing does not depend on it. enabled=false means the node has no embedding model loaded and routes on declared metadata alone","inputSchema":{"type":"object","title":"RouteDifficultyStatsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"model_id":{"type":["string","null"],"description":"Model to report per-cluster outcome counters and error rate for. Omit for the cluster map alone. Optional"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"run_agent_task","fixed":{"name":"run_agent_task","description":"Run an agentic task loop for an agent. The agent calls an LLM with built-in tools (spawn_agent, delegate_task, collect_results, complete) and executes them iteratively until done or the maximum step limit is reached.","inputSchema":{"type":"object","title":"RunAgentTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id","task"],"properties":{"task":{"type":"string","description":"Task description for the agentic execution loop"},"agent_id":{"type":"string","description":"Agent ID that will execute the task"},"inference_url":{"type":["string","null"],"description":"Optional inference endpoint URL (default: localhost)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"run_agent_template","fixed":{"name":"run_agent_template","description":"Run (invoke) a spawned agent template. For paid templates, the `payer_wallet` is charged: the network commission (5%) goes to the treasury and the remainder is paid to the template's `creator_wallet`. `tokens_estimate` is used for per-token pricing. Set `dry_run=true` to simulate without charging fees or dispatching real transactions. Successful non-dry-run invocations are metered (invocation_count + total_revenue) and persisted.","inputSchema":{"type":"object","title":"RunAgentTemplateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_id"],"properties":{"app_id":{"type":["string","null"],"description":"Registered app_id for developer-margin attribution. The payer is additionally charged the app's margin, routed to the app wallet in the same settlement."},"dry_run":{"type":["boolean","null"],"description":"If true, simulate execution without dispatching real transactions or charging fees (default false)"},"agent_id":{"type":"string","description":"UUID of the spawned agent to run (must have been created via spawn_agent_template first)"},"payer_wallet":{"type":["string","null"],"description":"Hex-encoded payer wallet address. REQUIRED for paid templates — will be charged the network commission (to treasury) and creator payout."},"max_iterations":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Maximum iterations through the template's execution steps (default 1)"},"tokens_estimate":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Estimated token usage for per-token pricing. Ignored for free/per_execution/subscription pricing. Default 0."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":470,"tokensAfter":470},{"name":"search_agent_templates","fixed":{"name":"search_agent_templates","description":"Search agent templates on the Tenzro Network marketplace by query. Matches against template name, description, and tags using case-insensitive substring search.","inputSchema":{"type":"object","title":"SearchAgentTemplatesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"query":{"type":"string","description":"Search query to match against template name, description, and tags"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"secure_mint_check","fixed":{"name":"secure_mint_check","description":"Read-only invariant check for a proposed mint. Returns `{would_succeed, reserve, circulating, headroom, reason?}`.","inputSchema":{"type":"object","title":"SecureMintAssetAmountParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["asset_id","amount"],"properties":{"amount":{"type":"string","description":"Amount (u128 decimal string)"},"asset_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"seed_agent_get_charter","fixed":{"name":"seed_agent_get_charter","description":"Fetch a SeedAgent governance charter by 32-byte id. Charter enumerates OperationKind (InferenceConsumer / TaskMarketplaceConsumer / etc.), spend caps, throughput target, counterparty filter, and sunset deadline.","inputSchema":{"type":"object","title":"SeedAgentCharterParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["charter_id"],"properties":{"charter_id":{"type":"string","description":"32-byte charter id (hex, with or without 0x prefix)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"seed_agent_get_earmark","fixed":{"name":"seed_agent_get_earmark","description":"Show the genesis SeedAgent treasury earmark — total TNZO allocation, draw-down to date, decay schedule, seed-agent count, surplus burn bps at sunset. The earmark funds protocol-owned bootstrap agents for the first 12 months.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"seed_agent_get_network_activity","fixed":{"name":"seed_agent_get_network_activity","description":"Get network activity counters (inference / settlement / bridge / ERC-7683). exclude_seed=true filters out flows where either side `is_seed_agent`, isolating organic activity from protocol bootstrap traffic.","inputSchema":{"type":"object","title":"SeedAgentActivityParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"window":{"type":["string","null"],"description":"Time window — '1h', '24h', '7d', or '30d'. Default '24h'."},"exclude_seed":{"type":["boolean","null"],"description":"Skip transactions where either side is a registered seed agent. Default false."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"seed_agent_list","fixed":{"name":"seed_agent_list","description":"List provisioned SeedAgent records. Each record carries agent_did, controller_did, status (Active/Paused/Quarantined/Terminated), allocation drawn, and optional bond id. Filter by charter_id to scope to one charter's roster.","inputSchema":{"type":"object","title":"SeedAgentListParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"charter_id":{"type":["string","null"],"description":"Optional 32-byte charter id filter (hex). Omit to list every seed agent."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"seed_agent_list_charters","fixed":{"name":"seed_agent_list_charters","description":"List every SeedAgent governance charter registered on this node.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"segment","fixed":{"name":"segment","description":"Run prompt-driven image segmentation. `prompts` is an array of `{type:'point', x, y, is_foreground}` (is_foreground true for a point inside the object, false for background) or `{type:'box', x0, y0, x1, y1}` objects, in original-image pixels. Returns mask data with IOU scores. The encoder caches the per-image embedding, so repeated prompts against the same image only re-run the decoder.","inputSchema":{"type":"object","title":"SegmentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id","image_base64","prompts"],"properties":{"prompts":{"description":"Prompts: array of `{type:'point', x, y, is_foreground}` (is_foreground true marks a point inside the object, false marks background) or `{type:'box', x0, y0, x1, y1}` objects. Coordinates are original-image pixels.","type":"string"},"model_id":{"type":"string","description":"Registered segmenter id (e.g. 'sam2-base', 'sam2-large', 'edgesam', 'mobilesam')"},"image_base64":{"type":"string","description":"Base64-encoded image bytes"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: prompts. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":291,"tokensAfter":295},{"name":"send_agent_message","fixed":{"name":"send_agent_message","description":"Submit a hybrid-signed (Ed25519 + ML-DSA-65) AgentMessage to a recipient agent's queue. Signing preimage: SHA-256(AgentMessage::signing_data()) — which includes both wallet addresses (resolved from registry, not wire). Both signature legs are required when the router enforces signing (production default); half-signed messages are rejected. Returns message_id, status, timestamp, and signed flag.","inputSchema":{"type":"object","title":"SendAgentMessageParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["from","to","message"],"properties":{"to":{"type":"string","description":"Recipient agent_id (same format). Must be registered with the local node's MessageRouter."},"from":{"type":"string","description":"Sender agent_id (16-byte hex, as returned by register_agent). Must already be registered with the local node's AgentRuntime."},"message":{"type":"string","description":"UTF-8 message body. Becomes AgentMessage.payload."},"reply_to":{"type":["string","null"],"default":null,"description":"Optional message_id of a prior message this is a reply to. Changes the canonical hash, so callers must include it BEFORE signing."},"signature":{"type":["string","null"],"default":null,"description":"Hybrid signing: 64-byte Ed25519 signature (hex) over SHA-256(AgentMessage::signing_data()). Required (with pq_signature) when the router enforces signing."},"message_type":{"type":["string","null"],"default":null,"description":"Optional message type: 'task_request' (default), 'task_response', 'query', 'query_response', 'notification', 'coordination', 'error'."},"pq_signature":{"type":["string","null"],"default":null,"description":"Hybrid signing: 3309-byte ML-DSA-65 signature (hex) over the same hash. Required (with signature) when the router enforces signing."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":512,"tokensAfter":512},{"name":"send_transaction","fixed":{"name":"send_transaction","description":"Send a TNZO transfer transaction on the Tenzro ledger. Two supported paths: (a) ambient OAuth/DPoP (server-custodial) — omit the signature fields; the server looks up the wallet bound to the bearer DID and signs; (b) self-custody / pre-signed — the caller signs both legs locally and supplies signature (Ed25519) + public_key (Ed25519) + pq_signature (ML-DSA-65) + pq_public_key (ML-DSA-65 verifying key) + timestamp matching the signed Transaction::hash(). The node verifies both legs and rejects a ","inputSchema":{"type":"object","title":"SendTransactionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["from","to","amount"],"properties":{"to":{"type":"string","description":"Hex-encoded recipient address"},"from":{"type":"string","description":"Hex-encoded sender address"},"nonce":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Transaction nonce (default 0)"},"amount":{"type":"integer","format":"uint128","minimum":0,"description":"Amount in TNZO base units"},"chain_id":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Chain ID (default 1337)"},"gas_limit":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Gas limit (default 21000)"},"gas_price":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Gas price in wei (default 1 Gwei)"},"signature":{"type":["string","null"],"description":"Either (a) omit all of signature/public_key/timestamp and rely on ambient OAuth/DPoP auth — the server will look up the wallet bound to the bearer DID and sign on its behalf — or (b) supply all three for a pre-signed transaction."},"timestamp":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Transaction timestamp in ms since Unix epoch — MUST match the timestamp used when computing the signed hash (required if pre-signing)"},"public_key":{"type":["string","null"],"description":"Hex-encoded 32-byte Ed25519 public key (required if pre-signing)"},"approval_id":{"type":["string","null"],"description":"An approval granted out-of-band after a prior attempt returned -32002 with data.approval_id. Pass it back to execute the approved transfer; a denial returns the approver's reason."},"pq_signature":{"type":["string","null"],"description":"Hex-encoded ML-DSA-65 signature (3309 bytes) over the same Transaction::hash() (required if pre-signing — self-custody submits are hybrid)"},"pq_public_key":{"type":["string","null"],"description":"Hex-encoded ML-DSA-65 verifying key (1952 bytes), included in the signed hash preimage (required if pre-signing)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":733,"tokensAfter":733},{"name":"set_app_status","fixed":{"name":"set_app_status","description":"Activate or deactivate a registered app. Requires a developer-signed DID envelope (hex header value) authorizing tenzro_setAppStatus over the canonical status params of (app_id, active). A deactivated app rejects new settlement authorizations.","inputSchema":{"type":"object","title":"SetAppStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id","active","envelope"],"properties":{"active":{"type":"boolean","description":"New active status"},"app_id":{"type":"string","description":"App identifier"},"envelope":{"type":"string","description":"Developer-signed DID envelope (hex header value) authorizing tenzro_setAppStatus over the canonical status params of (app_id, active)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":211,"tokensAfter":211},{"name":"set_delegation_scope","fixed":{"name":"set_delegation_scope","description":"Set the delegation scope for a machine identity, defining spending limits, allowed operations, payment protocols, and chains the agent may use","inputSchema":{"type":"object","title":"SetDelegationScopeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["machine_did"],"properties":{"machine_did":{"type":"string","description":"Machine DID to set delegation scope for"},"allowed_chains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed chains (e.g. ['tenzro', 'base', 'ethereum'])"},"max_daily_spend":{"type":["integer","null"],"format":"uint128","minimum":0,"description":"Maximum daily spend across all transactions"},"allowed_operations":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed operations (e.g. ['InferenceRequest', 'Transfer', 'Stake'])"},"max_transaction_value":{"type":["integer","null"],"format":"uint128","minimum":0,"description":"Maximum transaction value (in smallest unit, e.g. 10000000 = $10 USDC)"},"allowed_payment_protocols":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed payment protocols (e.g. ['mpp', 'x402', 'native'])"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":334,"tokensAfter":334},{"name":"set_passkey_policy","fixed":{"name":"set_passkey_policy","description":"Set a smart account's second-factor policy. \"single_credential\" (default): one enrolled passkey approves each operation. \"two_credentials\": two distinct enrolled passkeys must both sign every operation (requires at least two enrolled credentials).","inputSchema":{"type":"object","title":"PasskeySetPolicyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","second_factor"],"properties":{"second_factor":{"type":"string","description":"\"single_credential\" or \"two_credentials\""},"account_address":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":170,"tokensAfter":170}],"toolsChanged":353,"tokensSaved":0,"todo":[{"tool":"add_hardware_signer","params":["label","device_kind","public_key_hex","account_address","required_always","required_above_wei"]},{"tool":"add_passkey_guardian","params":["label","threshold","account_address","guardian_ml_dsa_pubkey_hex","guardian_ed25519_pubkey_hex"]},{"tool":"attested_mint","params":["to","caller"]},{"tool":"axelar_call_contract","params":["gas_token","gas_amount","payload_hex","source_chain","destination_chain","destination_address"]},{"tool":"axelar_get_message","params":["payload_hash"]},{"tool":"axelar_pay_gas","params":["gas_token","gas_amount","payload_hash","source_chain","destination_chain","destination_address"]},{"tool":"babylon_get_finality_provider","params":["validator"]},{"tool":"babylon_list_delegations","params":["validator"]},{"tool":"babylon_register_finality_provider","params":["validator","commission_bps"]},{"tool":"babylon_submit_finality_signature","params":["validator","block_hash"]},{"tool":"babylon_total_stake_for_provider","params":["validator"]},{"tool":"capital_intent_assign","params":["payee","payer","intent_id"]},{"tool":"capital_intent_compensate","params":["intent_id"]},{"tool":"capital_intent_execute","params":["intent_id"]},{"tool":"capital_intent_quote","params":["plan","price","eta_secs","intent_id","solver_did"]},{"tool":"capital_intent_settle","params":["payee","intent_id"]},{"tool":"capital_intent_verify","params":["intent_id"]},{"tool":"clear_secure_mint_policy","params":["asset_id"]},{"tool":"enroll_passkey","params":["salt","display_name","credential_id_hex","ml_dsa_public_key_hex","passkey_public_key_hex"]},{"tool":"finalize_passkey_recovery","params":["recovery_id"]},{"tool":"get_capital_intent","params":["intent_id"]},{"tool":"get_passkey_policy","params":["account_address"]},{"tool":"get_reserve","params":["asset_id"]},{"tool":"get_secure_mint_policy","params":["asset_id"]},{"tool":"get_smart_account","params":["account_address"]},{"tool":"grant_session_key","params":["label","account_address","allowed_targets","valid_after_unix","valid_until_unix","session_pubkey_hex","max_total_value_wei","allowed_selectors_hex","max_value_per_call_wei"]},{"tool":"hyperlane_dispatch","params":["sender","origin_domain","destination_domain","interchain_gas_payment"]},{"tool":"hyperlane_get_message","params":["message_id"]},{"tool":"hyperlane_quote_dispatch","params":["sender","origin_domain","destination_domain","interchain_gas_payment"]},{"tool":"initiate_passkey_recovery","params":["ttl_secs","account_address","new_credential_id_hex","new_ml_dsa_public_key_hex","new_passkey_public_key_hex"]},{"tool":"list_pending_recoveries","params":["account_address"]},{"tool":"permit2_digest","params":["chain_id"]},{"tool":"permit2_nonce_used","params":["nonce","owner"]},{"tool":"permit2_verify_and_consume","params":["nonce","owner","token","amount","spender","witness","chain_id","deadline","witness_type_string"]},{"tool":"register_stable_asset","params":["por_feed_id"]},{"tool":"revoke_session_key","params":["account_address"]},{"tool":"secure_mint_apply","params":["asset_id"]},{"tool":"secure_mint_check","params":["asset_id"]},{"tool":"secure_mint_record_burn","params":["asset_id"]},{"tool":"set_passkey_policy","params":["account_address"]},{"tool":"set_secure_mint_policy","params":["asset_id","ttl_secs","attested_at","circulating","por_feed_id","attester_did","attestation_hash"]},{"tool":"set_spending_limit","params":["daily_cap_wei","per_tx_cap_wei","account_address","authenticator_pubkey_hex"]},{"tool":"sign_with_passkey","params":["op_hash_hex","account_address","credential_id_hex","ml_dsa_signature_hex","second_credential_id_hex","second_ml_dsa_signature_hex"]},{"tool":"submit_recovery_signature","params":["recovery_id","guardian_index","composite_signature_hex"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API. Showing the first 300 of 353 changed tools.","truncated":true}