MCP execution tools
executeIntent, walletExecute, agentRun, buildTx, getIntentStatus, and the recommended write sequence.
Execution tools submit catalog-backed intents. Unsupported actions are rejected before broadcast.
Write rails
| Tool | When |
|---|---|
walletExecute | Single agent-owned execution wallet (runMode=agent_wallet) after agentWalletBootstrap |
executeIntent | Fan-out / subscriber lane, hybrid and thirdfy delegated users |
agentRun | Higher-level run wrapper with JSON params (common in MCP hosts) |
buildTx | BYOW unsigned tx preparation (runMode=self) |
walletSign + walletSubmit | BYOW sign and broadcast |
getIntentStatus | Poll execute-intent fanout jobs only |
For walletExecute, read txHash, blockedReason, and blockedStage from the direct response. Do not poll getIntentStatus for solo wallet executes.
Recommended write sequence
- Onboarding (once): Onboarding tools
getActionsCataloggetAgentActionsgetProviderActionsfor the venue familygetChainCapabilitiesorgetNonEvmCapabilities- Readiness gate
agent_wallet:agentWalletBootstrapwithrequireFundingCheck: truewhen collateral is requiredself:getSelfReadinessthenbuildTx/walletSignhybrid/thirdfy:delegationStatusand active Gator binding
- Write via the rail that matches
runMode - Analytics:
trackAgentActionand portfolio reads (Tracking)
Run mode quick reference
| Mode | Authority | Typical MCP path |
|---|---|---|
agent_wallet | Managed execution wallet | agentWalletBootstrap → walletExecute |
thirdfy / hybrid | Delegated user wallet | delegation* → executeIntent or agentRun |
self | Local signer | buildTx → walletSign → walletSubmit |
Off-chain venue orders (Hyperliquid, Polymarket CLOB, Bitfinex) use venue credentials or managed wallets. Do not use self for those order paths.
Workflow examples
| Goal | Discovery | Execute |
|---|---|---|
| Spot swap | getProviderActions { provider: "trading" } | walletExecute or executeIntent with action=swap |
| HL perps | provider: "hyperliquid" | Setup actions → orders with agent_wallet or delegated lane |
| Polymarket | provider: "polymarket" | Funding/setup status → CLOB orders (EU egress for live orders) |
| Earn deposit | provider: "earn" or morpho / aegis | deposit_* actions with correct decimals |
| Bitfinex funding | provider: "bitfinex" | executeIntent with cexCredentialRef |
Venue operator detail lives on Integrations pages and in getProviderActions hints.
Hosted runtime context
Pass optional executionContext (runtimeId, orgId) on walletExecute, executeIntent, and agentRun so Thirdfy credits attribute to the correct EarnClaw or Claude runtime.