warda
What this MCP does
Builds and checks non-custodial Kaspa grant transactions for agent spending, delegation, settlement, revocation, and payment control.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['parent', 'childAgentKey', 'childBudgetKas', 'childMaxPerSpendKas', 'childEpochLimitKas', 'childDelegationDepth', 'utxo'], 'properties': {'utxo': {'type': 'object', 'required': ['transactionId', 'index', 'valueSompi', 'blockDaaScore', 'isCoinbase', 'covenantId'], 'properties': {'index': {'type': 'number'}, 'covenantId': {'type': 'string'}, 'isCoinbase': {'type': 'boolean'}, 'valueSompi': {'type': 'string', 'description': "The grant's whole balance, in sompi, as a string."}, 'blockDaaScore': {'type': 'string'}, 'transactionId': {'type': 'string'}}, 'description': "The grant's CURRENT UTXO. Its address moves after every spend, so a stale one will not be found.", 'additionalProperties': False}, 'parent': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'prefix': {'type': 'string', 'description': 'Address prefix: kaspa, kaspatest, kaspasim or kaspadev. Defaults to kaspatest.'}, 'feeSompi': {'type': 'string'}, 'childAgentKey': {'type': 'string', 'description': "The sub-agent's x-only public key, 32 bytes of hex."}, 'computeBudget': {'type': 'number'}, 'childBudgetKas': {'type': 'string'}, 'childExpiresAt': {'type': 'string', 'description': 'A short window is the only attenuation that ends BY ITSELF, with nobody online to revoke.'}, 'childNotBefore': {'type': 'string', 'description': 'Inherited from the parent when omitted.'}, 'childRecipients': {'type': 'array', 'items': {'type': 'string'}, 'description': "A subset of the parent's allowlist. Omit to inherit all of it."}, 'parentRecipients': {'type': 'array', 'items': {'type': 'string'}, 'description': "The parent's FULL member list. Required only when childRecipients narrows it."}, 'childEpochLimitKas': {'type': 'string'}, 'childMaxPerSpendKas': {'type': 'string'}, 'childDelegationDepth': {'type': 'number', 'description': "Strictly less than the parent's, or the tree could not terminate."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant', 'kind', 'utxo'], 'properties': {'kind': {'enum': ['revoke', 'reclaim'], 'type': 'string'}, 'utxo': {'type': 'object', 'required': ['transactionId', 'index', 'valueSompi', 'blockDaaScore', 'isCoinbase', 'covenantId'], 'properties': {'index': {'type': 'number'}, 'covenantId': {'type': 'string'}, 'isCoinbase': {'type': 'boolean'}, 'valueSompi': {'type': 'string', 'description': "The grant's whole balance, in sompi, as a string."}, 'blockDaaScore': {'type': 'string'}, 'transactionId': {'type': 'string'}}, 'description': "The grant's CURRENT UTXO. Its address moves after every spend, so a stale one will not be found.", 'additionalProperties': False}, 'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'feeSompi': {'type': 'string'}, 'lockTime': {'type': 'string', 'description': 'Reclaim needs at least expiresAt, and still below the current DAA score. Revoke takes 0.'}, 'computeBudget': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['parent', 'child', 'prevRoot', 'parentUtxo', 'childUtxo'], 'properties': {'child': {'$ref': '#/properties/parent'}, 'parent': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'prefix': {'type': 'string', 'description': 'Address prefix: kaspa, kaspatest, kaspasim or kaspadev. Defaults to kaspatest.'}, 'feeSompi': {'type': 'string', 'description': "Defaults to 2000000 — two covenant inputs, so roughly twice a spend's mass."}, 'prevRoot': {'type': 'string', 'description': "The parent's reserve root before this child was pushed."}, 'childUtxo': {'$ref': '#/properties/parentUtxo'}, 'parentUtxo': {'type': 'object', 'required': ['transactionId', 'index', 'valueSompi', 'blockDaaScore', 'isCoinbase', 'covenantId'], 'properties': {'index': {'type': 'number'}, 'covenantId': {'type': 'string'}, 'isCoinbase': {'type': 'boolean'}, 'valueSompi': {'type': 'string', 'description': "The grant's whole balance, in sompi, as a string."}, 'blockDaaScore': {'type': 'string'}, 'transactionId': {'type': 'string'}}, 'description': "The grant's CURRENT UTXO. Its address moves after every spend, so a stale one will not be found.", 'additionalProperties': False}, 'computeBudget': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant', 'amountKas', 'recipient', 'daaScore', 'utxo'], 'properties': {'utxo': {'type': 'object', 'required': ['transactionId', 'index', 'valueSompi', 'blockDaaScore', 'isCoinbase', 'covenantId'], 'properties': {'index': {'type': 'number'}, 'covenantId': {'type': 'string'}, 'isCoinbase': {'type': 'boolean'}, 'valueSompi': {'type': 'string', 'description': "The grant's whole balance, in sompi, as a string."}, 'blockDaaScore': {'type': 'string'}, 'transactionId': {'type': 'string', 'description': "The grant UTXO's transaction id."}}, 'description': "The grant's CURRENT UTXO. Its address moves after every spend, so a stale one will not be found.", 'additionalProperties': False}, 'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'daaScore': {'type': 'string', 'description': 'Current DAA score of the chain.'}, 'feeSompi': {'type': 'string', 'description': "Defaults to 3000000. A covenant spend carries the whole redeem script in its signature script — about 7KB — so its mass is dominated by size and an ordinary transfer's fee is rejected as non-standard."}, 'amountKas': {'type': 'string', 'description': 'Amount to pay, in KAS.'}, 'recipient': {'type': 'string', 'description': 'Payee public key, 32 bytes of hex. Must be on the allowlist.'}, 'computeBudget': {'type': 'number', 'description': 'Defaults to 16. Charged as mass, so over-provisioning costs money and under-provisioning is rejected outright.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['parent', 'childBudgetKas', 'childMaxPerSpendKas', 'childEpochLimitKas', 'childAgentKey', 'daaScore'], 'properties': {'parent': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'daaScore': {'type': 'string'}, 'childAgentKey': {'type': 'string'}, 'childBudgetKas': {'type': 'string'}, 'childEpochLimitKas': {'type': 'string'}, 'childMaxPerSpendKas': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant', 'amountKas', 'recipient', 'daaScore'], 'properties': {'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'daaScore': {'type': 'string'}, 'amountKas': {'type': 'string', 'description': 'Amount to pay, in KAS.'}, 'recipient': {'type': 'string', 'description': 'Payee public key, 32 bytes of hex.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Plain substring over name and description. Crude on purpose.'}, 'network': {'type': 'string', 'description': "e.g. 'kaspa:testnet-10'. Omit for any."}, 'maxPrice': {'type': 'string', 'description': "Most you will pay per unit, as a decimal string in the asset's own units, e.g. '0.05'."}, 'capability': {'type': 'array', 'items': {'type': 'string'}, 'description': "Capabilities the service must offer, ALL of them. e.g. ['weather.current']"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant'], 'properties': {'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'prefix': {'type': 'string', 'description': 'Address prefix: kaspa, kaspatest, kaspasim or kaspadev. Defaults to kaspatest.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant', 'daaScore'], 'properties': {'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'daaScore': {'type': 'string', 'description': 'Current DAA score of the chain.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'prefix': {'type': 'string', 'description': 'Address prefix: kaspa, kaspatest, kaspasim or kaspadev. Defaults to kaspatest.'}, 'transaction': {'description': 'A wire-format transaction that spent the grant.'}, 'redeemScriptHex': {'type': 'string', 'description': 'The covenant script alone, if you have only that.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grant', 'daaScore'], 'properties': {'grant': {'type': 'object', 'required': ['agentKey', 'principalKey', 'revocationKey', 'budgetKas', 'maxPerSpendKas', 'epochLimitKas', 'epochLength', 'recipients', 'notBefore', 'expiresAt', 'delegationDepth', 'nonce'], 'properties': {'nonce': {'type': 'string'}, 'state': {'type': 'object', 'required': ['spentTotalKas', 'reservedKas', 'epochIndex', 'epochSpentKas'], 'properties': {'epochIndex': {'type': 'string'}, 'reserveRoot': {'type': 'string', 'description': 'The reserve root, for a grant with outstanding delegated children. It is part of the ADDRESS: omit it only if this grant has never delegated. warda_build_delegation returns it as parentReserveRootAfter.'}, 'reservedKas': {'type': 'string'}, 'epochSpentKas': {'type': 'string'}, 'spentTotalKas': {'type': 'string'}}, 'additionalProperties': False}, 'agentKey': {'type': 'string'}, 'budgetKas': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'notBefore': {'type': 'string'}, 'recipients': {'type': 'array', 'items': {'type': 'string'}}, 'epochLength': {'type': 'string'}, 'principalKey': {'type': 'string'}, 'epochLimitKas': {'type': 'string'}, 'revocationKey': {'type': 'string'}, 'maxPerSpendKas': {'type': 'string'}, 'delegationDepth': {'type': 'number'}}, 'description': 'The grant, as issued by the principal.', 'additionalProperties': False}, 'prefix': {'type': 'string', 'description': 'Address prefix: kaspa, kaspatest, kaspasim or kaspadev. Defaults to kaspatest.'}, 'daaScore': {'type': 'string', 'description': 'Current DAA score of the chain.'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
SAP MCP Server
Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.
FortFi Treasury MCP
Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges…
DPX — Institutional Cross-Border Settlement
Provides compliance-gated cross-border crypto settlement, agent registration and spending mandates, stablecoin routing, ESG and s…
Peer
Reads Peer protocol, checkout, deposit, wallet, Peer Cash, cross-chain routing, payout, and IntentGuardian data on Base and relat…
Robyn — Gasless Cross-Chain for AI Agents
Supports gasless cross-chain transfers, wallet and transaction checks, spending mandates, privacy-preserving messaging, and signe…
MERX - TRON Resource Exchange
Manages TRON energy and bandwidth purchasing, resource monitoring, transaction cost estimation, wallet operations, token transfer…
Wisely x402 Agent-Payment Infrastructure
Provides agent payment workflows for x402 endpoints, wallet handoffs, receipts, creator catalogs, local commerce bridges, endpoin…
AgentTools Hub
Offers calculators, unit and data converters, reference lookups, live crypto data, wallet utilities, and paid x402 access.