{"serverId":"mcp-registry/network.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_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":"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":"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":"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_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_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)"},"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":398,"tokensAfter":398},{"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_user_wallet","fixed":{"name":"create_user_wallet","description":"Create a new user wallet under an application. Optionally fund it with an initial TNZO amount from the app's master wallet.","inputSchema":{"type":"object","title":"CreateUserWalletParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id","label"],"properties":{"label":{"type":"string","description":"Human-readable label for the user wallet"},"app_id":{"type":"string","description":"Application ID (UUID) the wallet belongs to"},"initial_funding_wei":{"type":["string","null"],"description":"Optional initial funding in wei as a decimal string (1 TNZO = 10^18 wei). Example: '10000000000000000000' for 10 TNZO."}}},"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":192,"tokensAfter":192},{"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":"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_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. Returns JSON-RPC error `-32602` if the id is unknown.","inputSchema":{"type":"object","title":"DeleteWebhookParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["webhook_id"],"properties":{"webhook_id":{"type":"string","description":"Webhook id returned by register_webhook / list_webhooks"}}},"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":107,"tokensAfter":107},{"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_model","fixed":{"name":"download_model","description":"Download a model from the Tenzro model registry or HuggingFace Hub to this node's local storage. Performs SHA-256 integrity verification. Returns download status and progress.","inputSchema":{"type":"object","title":"DownloadModelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"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":133,"tokensAfter":133},{"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":"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_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_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_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_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_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_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 price per 1k tokens, minimum charge, and last updated timestamp.","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":122,"tokensAfter":122},{"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_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_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_usage_stats","fixed":{"name":"get_usage_stats","description":"Get usage statistics for an application. Returns total transactions, gas spent, active users, and wallet count.","inputSchema":{"type":"object","title":"GetUsageStatsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id"],"properties":{"app_id":{"type":"string","description":"Application ID (UUID) to get usage stats for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":111,"tokensAfter":111},{"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":"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_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_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_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_inference_challenges","fixed":{"name":"list_inference_challenges","description":"List inference challenges, optionally filtered by status (filed/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: filed, 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":176,"tokensAfter":176},{"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_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. 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":73,"tokensAfter":73},{"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_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_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_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, Snowflake Arctic-Embed. 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":107,"tokensAfter":111},{"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_user_wallets","fixed":{"name":"list_user_wallets","description":"List all user wallets belonging to an application. Returns wallet addresses, labels, and current balances.","inputSchema":{"type":"object","title":"ListUserWalletsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["app_id"],"properties":{"app_id":{"type":"string","description":"Application ID (UUID) to list wallets for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"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 ONNX video encoder catalog. Advertises the V-JEPA 2 family (vjepa2-vitl-256, vjepa2-vith-256, vjepa2-vitg-384 — Meta AI, MIT / Apache-2.0). Loading is gated on per-model ONNX export until each entry has a published `model.onnx` artifact.","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":115,"tokensAfter":120},{"name":"list_video_models","fixed":{"name":"list_video_models","description":"List video encoder models currently loaded on this node. The V-JEPA 2 family (ViT-L / ViT-H / ViT-g) is advertised in the catalog; loading is gated on per-model ONNX export.","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":92,"tokensAfter":96},{"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 every registered webhook. 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.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"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":"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 with total byte footprint.","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":"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":{"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":198,"tokensAfter":198},{"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":"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_inference_challenge","fixed":{"name":"resolve_inference_challenge","description":"Resolve an inference challenge (operator only — requires X-Tenzro-Admin-Token). Provide `prompt` for local re-execution (a failing verification upholds the challenge) or an explicit `upheld` verdict. Upheld verdicts decrement the provider's reputation and record a compute-bond failure; the response carries reputation_penalized + bond_failure_recorded booleans. Mirrors tenzro_resolveInferenceChallenge.","inputSchema":{"type":"object","title":"ResolveInferenceChallengeParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["challenge_id"],"properties":{"prompt":{"type":["string","null"],"default":null,"description":"Re-execute this prompt locally to decide the verdict — a failing verification upholds the challenge. Mutually exclusive with `upheld`."},"upheld":{"type":["boolean","null"],"default":null,"description":"Explicit verdict when no prompt is supplied: true upholds the challenge (provider penalized), false dismisses it."},"challenge_id":{"type":"string","description":"Challenge id (UUID) to resolve."},"provider_did":{"type":["string","null"],"default":null,"description":"Optional compute-bond provider DID; skips the bond-registry address scan when recording the bond failure."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":355,"tokensAfter":355},{"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_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. 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"],"properties":{"session_id":{"type":"string","description":"Session ID (UUID) to revoke"}}},"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":115,"tokensAfter":115},{"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":"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 end-to-end. 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":{"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":416,"tokensAfter":416},{"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, label}` (label=1 foreground / 0 background) or `{type:'box', x0, y0, x1, y1}` objects. Returns one mask per prompt with confidence scores.","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, label}` or `{type:'box', x0, y0, x1, y1}` objects","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":210,"tokensAfter":215},{"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 — omit signature/public_key/timestamp; the server will look up the wallet bound to the bearer DID and sign; (b) pre-signed — supply signature + public_key + timestamp matching the signed Transaction::hash(). The legacy private_key inline-signing path has been removed.","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)"}}},"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":528,"tokensAfter":528},{"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_provider_pricing","fixed":{"name":"set_provider_pricing","description":"Set the per-token pricing configuration for a provider node. Prices are wei per token (1 TNZO = 10^18 wei). Returns the updated pricing config.","inputSchema":{"type":"object","title":"SetProviderPricingParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["provider_address","input_price_per_token_wei","output_price_per_token_wei"],"properties":{"provider_address":{"type":"string","description":"Hex-encoded provider address"},"input_price_per_token_wei":{"type":"string","description":"Wei per input token (decimal string; 1 TNZO = 10^18 wei)"},"output_price_per_token_wei":{"type":"string","description":"Wei per output token (decimal string; 1 TNZO = 10^18 wei)"}}},"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":206,"tokensAfter":206},{"name":"set_provider_schedule","fixed":{"name":"set_provider_schedule","description":"Set the availability schedule for a provider node. Define which hours and days the node will accept new inference requests. Returns the updated schedule.","inputSchema":{"type":"object","title":"SetProviderScheduleParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["provider_address","schedule"],"properties":{"schedule":{"description":"Availability schedule as JSON (e.g. {\"timezone\": \"UTC\", \"hours\": \"0-23\", \"days\": \"mon-sun\"})","type":"string"},"provider_address":{"type":"string","description":"Hex-encoded provider address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: schedule. 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":172},{"name":"set_secure_mint_policy","fixed":{"name":"set_secure_mint_policy","description":"Set or update a Secure-Mint policy for a tokenized real-world asset. Enforces per-token 1:1 reserve attestation `circulating + amount ≤ reserve` at every mint.","inputSchema":{"type":"object","title":"SecureMintSetPolicyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["asset_id","reserve","por_feed_id","attester_did","attestation_hash","attested_at","ttl_secs"],"properties":{"reserve":{"type":"string","description":"Reserve (u128 decimal string)"},"asset_id":{"type":"string"},"ttl_secs":{"type":"integer","format":"uint64","minimum":0},"attested_at":{"type":"integer","format":"uint64","minimum":0},"circulating":{"type":["string","null"]},"por_feed_id":{"type":"string"},"attester_did":{"type":"string"},"attestation_hash":{"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":230,"tokensAfter":230},{"name":"set_spending_limit","fixed":{"name":"set_spending_limit","description":"Install or update the per-account SpendingLimitValidator config (per-tx + daily rolling-window caps).","inputSchema":{"type":"object","title":"PasskeySetSpendingLimitParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["account_address","per_tx_cap_wei","daily_cap_wei","authenticator_pubkey_hex"],"properties":{"daily_cap_wei":{"type":"string"},"per_tx_cap_wei":{"type":"string"},"account_address":{"type":"string"},"authenticator_pubkey_hex":{"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":148,"tokensAfter":148},{"name":"set_spending_limits","fixed":{"name":"set_spending_limits","description":"Set spending limits for a wallet. Defines the maximum daily spend and per-transaction limit in TNZO. Transactions exceeding these limits will be rejected.","inputSchema":{"type":"object","title":"SetSpendingLimitsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["wallet_id","daily_limit","per_tx_limit"],"properties":{"wallet_id":{"type":"string","description":"Wallet ID (UUID)"},"daily_limit":{"type":"number","format":"double","description":"Maximum daily spend in TNZO (e.g. 1000.0)"},"per_tx_limit":{"type":"number","format":"double","description":"Maximum per-transaction amount in TNZO (e.g. 100.0)"}}},"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":190,"tokensAfter":190},{"name":"set_username","fixed":{"name":"set_username","description":"Set a globally unique username for a DID on the Tenzro Network. Usernames provide human-readable aliases for DIDs (e.g. 'alice' instead of 'did:tenzro:human:uuid').","inputSchema":{"type":"object","title":"SetUsernameParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["did","username"],"properties":{"did":{"type":"string","description":"DID to associate the username with (e.g. did:tenzro:human:uuid)"},"username":{"type":"string","description":"Globally unique username to register (alphanumeric, underscores, hyphens)"}}},"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":164,"tokensAfter":164},{"name":"settle_payment","fixed":{"name":"settle_payment","description":"Execute an immediate settlement between two addresses on the Tenzro Network. Transfers TNZO from payer to payee for a specific service type. Returns the settlement receipt.","inputSchema":{"type":"object","title":"SettlePaymentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["payer","payee","amount_wei","service_type"],"properties":{"payee":{"type":"string","description":"Hex-encoded payee address"},"payer":{"type":"string","description":"Hex-encoded payer address"},"amount_wei":{"type":"string","description":"Amount in wei as a decimal string (1 TNZO = 10^18 wei). Example: '1500000000000000000' for 1.5 TNZO."},"reference_id":{"type":["string","null"],"description":"Optional reference ID for this settlement"},"service_type":{"type":"string","description":"Service type: 'inference', 'tee', 'storage', 'general'"}}},"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":249,"tokensAfter":249},{"name":"signed_agent_card_canonical_hash","fixed":{"name":"signed_agent_card_canonical_hash","description":"Compute the canonical hash for an A2A v1.0 SignedAgentCard payload. The caller passes the AgentCard JSON; the node returns the 32-byte hash the domain owner must sign via JWS to produce the SignedAgentCard envelope.","inputSchema":{"type":"object","title":"SignedAgentCardHashParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_card"],"properties":{"agent_card":{"description":"A2A AgentCard JSON payload to hash","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: agent_card. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":141,"tokensAfter":146},{"name":"sla_get_params","fixed":{"name":"sla_get_params","description":"Read the SLA fault-detector parameters this validator is using: `slash_threshold` (number of missed probes before slashing fires for a provider), `slash_amount_wei` (per-crossing slash amount in wei, decimal string), and this validator's `vrf_pubkey` (0x-prefixed hex).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"sla_list_outstanding_probes","fixed":{"name":"sla_list_outstanding_probes","description":"List every in-flight SLA probe awaiting a response, regardless of issuer. Returns `{count, probes: [...]}` with `challenge_nonce`, `provider_did`, `epoch`, `round`, `deadline_ms`, and `issuer` for each probe. Used by operators to spot stuck probes whose deadline has already elapsed without a matching response.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"sponsor_transaction","fixed":{"name":"sponsor_transaction","description":"Sponsor a transaction using the master/paymaster wallet. The gas cost is paid by the master address while the transaction is sent on behalf of the user. Uses ERC-4337 account abstraction.","inputSchema":{"type":"object","title":"SponsorTransactionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["master_address","user_tx"],"properties":{"user_tx":{"description":"User transaction object to sponsor. Must include `gas_limit` and `gas_price` (and any other tx fields). The master pays gas_limit * gas_price out of its TNZO balance.","type":"string"},"master_address":{"type":"string","description":"Hex-encoded master/paymaster address that sponsors the gas"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: user_tx. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":200,"tokensAfter":204},{"name":"stop_model","fixed":{"name":"stop_model","description":"Stop serving a model on this node. The model remains downloaded but no longer accepts inference requests. Returns the stop confirmation.","inputSchema":{"type":"object","title":"StopModelParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id"],"properties":{"model_id":{"type":"string","description":"Model ID to stop serving"}}},"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":111,"tokensAfter":111},{"name":"storage_charge_epoch","fixed":{"name":"storage_charge_epoch","description":"Run one proof-of-retrievability-gated charge epoch for a storage deal. Charges only when the retrievability challenge passes.","inputSchema":{"type":"object","title":"StorageChargeEpochParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["deal_id"],"properties":{"deal_id":{"type":"string","description":"Storage deal 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":110,"tokensAfter":110},{"name":"storage_get_deal","fixed":{"name":"storage_get_deal","description":"Look up a storage deal by id.","inputSchema":{"type":"object","title":"StorageGetDealParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["deal_id"],"properties":{"deal_id":{"type":"string","description":"Storage deal id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"storage_set_pricing","fixed":{"name":"storage_set_pricing","description":"Set the byte-epoch storage 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":"StorageSetPricingParams","$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":"Byte-epoch capacity for dynamic pricing (decimal string — u128)"},"max_rate":{"type":["string","null"],"description":"Maximum rate ceiling in wei per byte-epoch (decimal string — u128)"},"min_rate":{"type":["string","null"],"description":"Minimum rate floor in wei per byte-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":234,"tokensAfter":234},{"name":"storage_status","fixed":{"name":"storage_status","description":"Summary of this node's storage-provider state: effective rate and stored object 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":"submit_daml_command","fixed":{"name":"submit_daml_command","description":"Submit a DAML command to a Canton domain. Supports create, exercise, and create_and_exercise commands. Returns the transaction ID and updated contract state.","inputSchema":{"type":"object","title":"SubmitDamlCommandParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain_id","party","command_type","template_id","arguments"],"properties":{"party":{"type":"string","description":"DAML party identifier (submitting party)"},"choice":{"type":["string","null"],"description":"Choice name for exercise commands"},"arguments":{"description":"JSON-encoded arguments for the command","type":"string"},"domain_id":{"type":"string","description":"Canton domain ID to submit the command to"},"contract_id":{"type":["string","null"],"description":"Contract ID for exercise commands"},"template_id":{"type":"string","description":"DAML template identifier (e.g. 'MyModule:MyTemplate')"},"command_type":{"type":"string","description":"DAML command type: 'create', 'exercise', 'create_and_exercise'"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: arguments. 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":291,"tokensAfter":296},{"name":"submit_recovery_signature","fixed":{"name":"submit_recovery_signature","description":"Submit one guardian's composite (Ed25519 + ML-DSA-65) signature against an in-flight social-recovery ceremony. Returns the running tally and a quorum_reached flag.","inputSchema":{"type":"object","title":"PasskeySubmitRecoverySignatureParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["recovery_id","guardian_index","composite_signature_hex"],"properties":{"recovery_id":{"type":"string"},"guardian_index":{"type":"integer","format":"uint32","minimum":0},"composite_signature_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":161,"tokensAfter":161},{"name":"submit_reserve_attestation","fixed":{"name":"submit_reserve_attestation","description":"Record a signed Proof-of-Reserve attestation backing a tokenized asset, so attested-mint can enforce 1:1 backing. Mirrors tenzro_submitReserveAttestation.","inputSchema":{"type":"object","title":"ReserveAttestationParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["attestation"],"properties":{"attestation":{"description":"ReserveAttestation: {asset_id, reserves, source(issuer|tee|chainlink_por|oracle), attestor_did, attested_at, signature?}","type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: attestation. 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":147,"tokensAfter":151},{"name":"terminate_agent","fixed":{"name":"terminate_agent","description":"Terminate an agent (TERMINAL — irreversible). Halts messaging, optionally slashes stake (slash_bps 0-10000), and optionally cascades to all descendant spawned agents. Requires controller_did to match. NOTE: this MCP tool describes the operation only — the transaction must be signed and submitted via tenzro_signAndSendTransaction with type=TerminateAgent.","inputSchema":{"type":"object","title":"TerminateAgentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agent_did","controller_did","reason"],"properties":{"reason":{"type":"string","description":"Free-text reason recorded on the kill-switch receipt"},"cascade":{"type":["boolean","null"],"description":"If true, recursively terminate all descendant agents in the spawn tree"},"agent_did":{"type":"string","description":"DID of the agent to terminate (terminal state, optionally cascades to spawned children)"},"slash_bps":{"type":["integer","null"],"format":"uint16","maximum":65535,"minimum":0,"description":"Slash basis points 0-10000 (10000 = 100%). Default 0."},"evidence_hash":{"type":["string","null"],"description":"Optional 32-byte evidence hash (hex-encoded, with or without 0x prefix)"},"controller_did":{"type":"string","description":"DID of the controller authorizing the termination"}}},"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":369,"tokensAfter":369},{"name":"terminate_swarm","fixed":{"name":"terminate_swarm","description":"Terminate a Tenzro agent swarm and all its member agents. Attempts graceful shutdown of each member. Returns confirmation with swarm ID and terminated status.","inputSchema":{"type":"object","title":"TerminateSwarmParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["swarm_id"],"properties":{"swarm_id":{"type":"string","description":"Swarm ID to terminate"}}},"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":119,"tokensAfter":119},{"name":"text_segment","fixed":{"name":"text_segment","description":"Run open-vocabulary text-promptable segmentation. Provide a free-text label (e.g. 'person', 'dog') and an image; optionally narrow with a normalized cxcywh box. Returns a variable number of detections, each with a bbox (x0,y0,x1,y1 pixels), score, and binary mask resampled to original image dimensions.","inputSchema":{"type":"object","title":"TextSegmentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["model_id","image_base64","text_prompt"],"properties":{"model_id":{"type":"string","description":"Registered SAM-3 family segmenter id (e.g. 'sam3-vit-h')"},"box_prompt":{"description":"Optional normalized cxcywh box prompt {cx, cy, w, h} in [0,1]","type":"string"},"text_prompt":{"type":"string","description":"Free-text label to segment (e.g. 'person', 'sofa', 'dog')"},"image_base64":{"type":"string","description":"Base64-encoded image bytes"},"score_threshold":{"type":["number","null"],"format":"float","description":"Score threshold in [0, 1]; detections below are dropped (default 0.5)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: box_prompt. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":293,"tokensAfter":297},{"name":"training_get_receipt","fixed":{"name":"training_get_receipt","description":"Fetch the sealed receipt for a finalized Tenzro Train run. Returns null when the run is still active. Persisted under CF_TRAINING_RECEIPTS — carries final_state_root, rounds_completed, witness_committees, optional manifest_hash, sealed_at_ms.","inputSchema":{"type":"object","title":"TrainingTaskIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Tenzro Train task id (run identifier)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"training_get_run","fixed":{"name":"training_get_run","description":"Look up a single Tenzro Train run by task_id. Returns the full read-side view (task_spec, status, current_round, state_root, enrolled_trainers, metadata, receipt-if-terminal). Returns JSON-RPC -32602 when the run is unknown.","inputSchema":{"type":"object","title":"TrainingTaskIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Tenzro Train task id (run identifier)"}}},"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":"training_get_sealed_manifest","fixed":{"name":"training_get_sealed_manifest","description":"Fetch the installed sealed-shard manifest for a Confidential-tier Tenzro Train task. Returns null when no manifest has been installed (Open and Verified tiers never have a manifest). Manifest binds each trainer's encrypted shard, HPKE-wrapped data key, and enclave attestation.","inputSchema":{"type":"object","title":"TrainingTaskIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Tenzro Train task id (run identifier)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"training_list_runs","fixed":{"name":"training_list_runs","description":"List every active Tenzro Train run this node is syncing. Each run carries task_id, status (Pending/Active/Completed/Failed/Cancelled), current_round, state_root, enrolled_trainers, and (once terminal) the sealed receipt. Read-only — safe for monitoring agents.","inputSchema":{"type":"object","properties":{}},"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":99,"tokensAfter":99},{"name":"transfer_nft","fixed":{"name":"transfer_nft","description":"Transfer an NFT between addresses within a collection. Verifies the sender owns the token before transferring. Returns the updated ownership details.","inputSchema":{"type":"object","title":"TransferNftParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["collection_id","from","to","token_id"],"properties":{"to":{"type":"string","description":"Hex-encoded recipient address"},"from":{"type":"string","description":"Hex-encoded sender address"},"amount":{"type":["integer","null"],"format":"uint64","minimum":0,"description":"Amount to transfer (only for ERC-1155, default 1)"},"token_id":{"type":"string","description":"Token ID to transfer (numeric string)"},"collection_id":{"type":"string","description":"Collection ID (UUID)"}}},"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":222,"tokensAfter":222},{"name":"treasury_approve_withdrawal","fixed":{"name":"treasury_approve_withdrawal","description":"Approve a treasury withdrawal with a signed approval. The signature covers 'tenzro/treasury/withdrawal-approval' || withdrawal_id || asset_id || amount_le and must come from an authorized withdrawer. Returns the approval count and whether the threshold is reached.","inputSchema":{"type":"object","title":"TreasuryApproveWithdrawalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["withdrawal_id","asset_id","amount","approver","public_key","signature"],"properties":{"amount":{"type":"string","description":"Amount in base units (decimal string)"},"approver":{"type":"string","description":"Approver address (0x-prefixed hex) — must be an authorized withdrawer"},"asset_id":{"type":"string","description":"Asset identifier (e.g. 'TNZO')"},"key_type":{"type":["string","null"],"description":"Signature key type: 'ed25519' (default) or 'secp256k1'"},"signature":{"type":"string","description":"Hex signature over 'tenzro/treasury/withdrawal-approval' || withdrawal_id || asset_id || amount_le"},"public_key":{"type":"string","description":"Approver public key (hex)"},"withdrawal_id":{"type":"string","description":"Withdrawal identifier shared by all approvers"}}},"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":346,"tokensAfter":346},{"name":"treasury_execute_withdrawal","fixed":{"name":"treasury_execute_withdrawal","description":"Execute a treasury withdrawal after the approval threshold is reached. The (withdrawal_id, asset_id, amount) triple must match the approved withdrawal exactly.","inputSchema":{"type":"object","title":"TreasuryExecuteWithdrawalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["withdrawal_id","asset_id","amount"],"properties":{"amount":{"type":"string","description":"Amount in base units (decimal string) — must match the approved amount"},"asset_id":{"type":"string","description":"Asset identifier (e.g. 'TNZO')"},"withdrawal_id":{"type":"string","description":"Withdrawal identifier"}}},"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":187,"tokensAfter":187},{"name":"treasury_get_pending_withdrawal","fixed":{"name":"treasury_get_pending_withdrawal","description":"Get a pending treasury withdrawal's approval state: asset, amount, approver addresses, approval count, and the configured threshold. Returns null when no pending withdrawal matches.","inputSchema":{"type":"object","title":"TreasuryGetPendingWithdrawalParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["withdrawal_id"],"properties":{"withdrawal_id":{"type":"string","description":"Withdrawal identifier"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"update_agent_template","fixed":{"name":"update_agent_template","description":"Update metadata for an agent template you own. Change description, version, status, or tags. Returns the updated template record.","inputSchema":{"type":"object","title":"UpdateAgentTemplateParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["template_id"],"properties":{"tags":{"type":["array","null"],"items":{"type":"string"},"description":"Updated tags list"},"status":{"type":["string","null"],"description":"New status: 'active', 'inactive', 'deprecated'"},"version":{"type":["string","null"],"description":"New version string (e.g. '1.1.0')"},"description":{"type":["string","null"],"description":"New description for the template"},"template_id":{"type":"string","description":"Agent template ID to update"}}},"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":220,"tokensAfter":220},{"name":"urwa_get_frozen_tokens","fixed":{"name":"urwa_get_frozen_tokens","description":"Read the ERC-7943 (uRWA) frozen-tokens amount for a (token_id, account) pair. Returns the frozen amount in token smallest unit.","inputSchema":{"type":"object","title":"UrwaFrozenLookupParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["token_id_hex","account_hex"],"properties":{"account_hex":{"type":"string","description":"20-byte hex-encoded EVM account address (with or without 0x prefix)"},"token_id_hex":{"type":"string","description":"32-byte hex-encoded token_id (with or without 0x prefix)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"urwa_is_kill_switched","fixed":{"name":"urwa_is_kill_switched","description":"Read the ERC-7943 (uRWA) kill-switch state for a given token_id (32-byte hex). Returns the kill-switch active flag, the canonical 4-byte selectors for the standard uRWA functions, and the precompile addresses backing the on-chain enforcement path.","inputSchema":{"type":"object","title":"UrwaTokenIdParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["token_id_hex"],"properties":{"token_id_hex":{"type":"string","description":"32-byte hex-encoded token_id (with or without 0x prefix)"}}},"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":157,"tokensAfter":157},{"name":"verify_payment","fixed":{"name":"verify_payment","description":"Verify a payment credential against a previously created challenge and settle the payment on-chain","inputSchema":{"type":"object","title":"VerifyPaymentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["challenge_id","protocol","payer_did","payer_address","amount","asset","signature","pq_signature","pq_public_key"],"properties":{"asset":{"type":"string","description":"Payment asset: 'USDC', 'USDT', or 'TNZO'"},"amount":{"type":"integer","format":"uint128","minimum":0,"description":"Payment amount in smallest unit"},"protocol":{"type":"string","description":"Payment protocol used: 'mpp', 'x402', or 'native'"},"payer_did":{"type":"string","description":"Payer DID (e.g. did:tenzro:human:uuid or did:tenzro:machine:controller:uuid)"},"signature":{"type":"string","description":"Hex-encoded classical (Ed25519) signature proving payment"},"challenge_id":{"type":"string","description":"Challenge ID from the payment challenge"},"pq_signature":{"type":"string","description":"Hex-encoded post-quantum (ML-DSA-65, FIPS 204) signature — 3309 bytes — required for internal Tenzro mpp/x402/native protocols; pass empty string for external passthroughs (visa-tap, mastercard-agent-pay) that don't yet have a hybrid signing scheme"},"payer_address":{"type":"string","description":"Payer wallet address (hex-encoded)"},"pq_public_key":{"type":"string","description":"Hex-encoded ML-DSA-65 verifying key — 1952 bytes — required for internal Tenzro mpp/x402/native protocols; pass empty string for external passthroughs"}}},"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":441,"tokensAfter":441},{"name":"workflow_step_execute","fixed":{"name":"workflow_step_execute","description":"Execute a saga step: transition it Pending→Executing and, if escrow_amount is set, lock a per-step escrow (payer→vault). Mirrors tenzro_workflowStepExecute.","inputSchema":{"type":"object","title":"WorkflowStepExecuteParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["workflow_id","step_idx"],"properties":{"payee":{"type":["string","null"],"description":"Payee address (required when escrow_amount is set)"},"payer":{"type":["string","null"],"description":"Payer address (required when escrow_amount is set)"},"proof":{"description":"Opaque execution-proof reference recorded at execute","type":"string"},"step_idx":{"type":"integer","format":"uint64","minimum":0,"description":"Zero-based index of the step to execute"},"workflow_id":{"type":"string","description":"Workflow id"},"escrow_amount":{"description":"Optional per-step escrow amount to lock (smallest unit)","type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: proof, escrow_amount. 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":259,"tokensAfter":268},{"name":"wormhole_ntt_list_chains","fixed":{"name":"wormhole_ntt_list_chains","description":"Enumerate the Wormhole NTT chain catalog supported by this Tenzro deployment. Returns Wormhole chain ids + names + supported Transceiver kinds (wormhole / axelar / layerzero / custom).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79}],"toolsChanged":271,"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_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_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","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."}