@moonpay/cli 0.5.2 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-PBRXVTTG.js → chunk-DCHEUKV7.js} +529 -528
- package/dist/chunk-DCHEUKV7.js.map +1 -0
- package/dist/{chunk-V7MA7WNX.js → chunk-GSAFAKB7.js} +145 -119
- package/dist/chunk-GSAFAKB7.js.map +1 -0
- package/dist/index.js +173 -30
- package/dist/index.js.map +1 -1
- package/dist/{mcp-TDQN25MO.js → mcp-6IZ4QWFM.js} +3 -3
- package/dist/{store-HCN56E6A.js → store-UAGR3DWU.js} +2 -2
- package/package.json +1 -1
- package/skills/moonpay-auth/SKILL.md +24 -4
- package/skills/moonpay-block-explorer/SKILL.md +123 -0
- package/skills/moonpay-buy-crypto/SKILL.md +1 -1
- package/skills/moonpay-export-data/SKILL.md +111 -0
- package/skills/moonpay-mcp/SKILL.md +3 -2
- package/skills/moonpay-polymarket-ready/SKILL.md +1 -1
- package/skills/moonpay-price-alerts/SKILL.md +167 -0
- package/skills/moonpay-trading-automation/SKILL.md +276 -0
- package/skills/moonpay-virtual-account/SKILL.md +14 -18
- package/dist/chunk-PBRXVTTG.js.map +0 -1
- package/dist/chunk-V7MA7WNX.js.map +0 -1
- /package/dist/{mcp-TDQN25MO.js.map → mcp-6IZ4QWFM.js.map} +0 -0
- /package/dist/{store-HCN56E6A.js.map → store-UAGR3DWU.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auth.ts","../src/client.ts","../src/generated/schemas.json","../src/tools/wallet/create/tool.ts","../src/tools/shared.ts","../src/tools/wallet/create/schema.ts","../src/tools/wallet/import/tool.ts","../src/tools/wallet/import/schema.ts","../src/tools/wallet/list/schema.ts","../src/tools/wallet/list/tool.ts","../src/tools/wallet/retrieve/schema.ts","../src/tools/wallet/retrieve/tool.ts","../src/tools/wallet/delete/schema.ts","../src/tools/wallet/delete/tool.ts","../src/tools/transaction/sign/tool.ts","../src/tools/transaction/sign/schema.ts","../src/tools/message/sign/tool.ts","../src/tools/message/sign/schema.ts","../src/tools/bitcoin/balance/tool.ts","../src/tools/bitcoin/balance/schema.ts","../src/tools/token/swap/tool.ts","../src/tools/token/swap/schema.ts","../src/tools/x402/request/tool.ts","../src/tools/x402/request/schema.ts","../src/tools/virtual-account/wallet/register/schema.ts","../src/tools/virtual-account/wallet/register/tool.ts"],"sourcesContent":["import { spawn } from \"child_process\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { createInterface } from \"node:readline\";\n\nfunction generateCodeVerifier(): string {\n return crypto.randomBytes(32).toString(\"base64url\");\n}\n\nfunction generateCodeChallenge(verifier: string): string {\n return crypto.createHash(\"sha256\").update(verifier).digest(\"base64url\");\n}\n\nconst CONFIG_DIR = path.join(os.homedir(), \".config\", \"moonpay\");\nconst CONFIG_PATH = path.join(CONFIG_DIR, \"config.json\");\nconst CREDENTIALS_PATH = path.join(CONFIG_DIR, \"credentials.json\");\nconst LOCK_PATH = path.join(CONFIG_DIR, \".credentials.lock\");\n\n/** Built-in config used when no ~/.config/moonpay/config.json exists. */\nexport const DEFAULT_CONFIG: Config = {\n baseUrl: \"https://agents.moonpay.com\",\n clientId: \"mooniq_zin3s5jz3olzkdfxpmbeaogv\",\n};\n\nexport type Config = {\n baseUrl: string;\n clientId: string;\n clientSecret?: string;\n};\n\nexport type Credentials = {\n accessToken: string;\n refreshToken: string | null;\n expiresAt: number;\n baseUrl: string;\n};\n\nfunction ensureConfigDir() {\n if (!fs.existsSync(CONFIG_DIR)) {\n fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n }\n}\n\nfunction atomicWriteFileSync(\n filePath: string,\n data: string,\n mode: number,\n) {\n const tmp = filePath + `.tmp.${process.pid}`;\n fs.writeFileSync(tmp, data, { encoding: \"utf-8\", mode });\n fs.renameSync(tmp, filePath);\n}\n\nconst LOCK_STALE_MS = 30_000;\n\nfunction acquireLock(): (() => void) | null {\n ensureConfigDir();\n try {\n const fd = fs.openSync(LOCK_PATH, fs.constants.O_CREAT | fs.constants.O_EXCL | fs.constants.O_WRONLY, 0o600);\n fs.writeSync(fd, JSON.stringify({ pid: process.pid, ts: Date.now() }));\n fs.closeSync(fd);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== \"EEXIST\") throw err;\n try {\n const lockData = JSON.parse(fs.readFileSync(LOCK_PATH, \"utf-8\"));\n if (Date.now() - lockData.ts < LOCK_STALE_MS) {\n return null;\n }\n } catch {\n // corrupt lock file\n }\n try { fs.unlinkSync(LOCK_PATH); } catch { /* already removed */ }\n try {\n const fd = fs.openSync(LOCK_PATH, fs.constants.O_CREAT | fs.constants.O_EXCL | fs.constants.O_WRONLY, 0o600);\n fs.writeSync(fd, JSON.stringify({ pid: process.pid, ts: Date.now() }));\n fs.closeSync(fd);\n } catch {\n return null;\n }\n }\n return () => {\n try { fs.unlinkSync(LOCK_PATH); } catch { /* already removed */ }\n };\n}\n\nexport function getConfig(): Config | null {\n if (!fs.existsSync(CONFIG_PATH)) return null;\n try {\n const data = JSON.parse(fs.readFileSync(CONFIG_PATH, \"utf-8\"));\n if (!data.baseUrl || !data.clientId) return null;\n return data as Config;\n } catch {\n return null;\n }\n}\n\nexport function getConfigOrDefault(): Config {\n const fromFile = getConfig();\n if (fromFile) return fromFile;\n saveConfig(DEFAULT_CONFIG);\n return DEFAULT_CONFIG;\n}\n\nexport function getCredentials(): Credentials | null {\n if (!fs.existsSync(CREDENTIALS_PATH)) return null;\n try {\n const data = JSON.parse(fs.readFileSync(CREDENTIALS_PATH, \"utf-8\"));\n if (!data.accessToken || !data.baseUrl) return null;\n return data as Credentials;\n } catch {\n return null;\n }\n}\n\nexport function saveCredentials(creds: Credentials) {\n ensureConfigDir();\n atomicWriteFileSync(CREDENTIALS_PATH, JSON.stringify(creds, null, 2), 0o600);\n}\n\nexport function saveConfig(config: Config) {\n ensureConfigDir();\n atomicWriteFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 0o600);\n}\n\nexport function clearCredentials() {\n if (fs.existsSync(CREDENTIALS_PATH)) {\n fs.unlinkSync(CREDENTIALS_PATH);\n }\n}\n\nexport function resolveBaseUrl(): string {\n const config = getConfig();\n const creds = getCredentials();\n return config?.baseUrl ?? creds?.baseUrl ?? DEFAULT_CONFIG.baseUrl;\n}\n\nfunction openBrowser(url: string): boolean {\n const platform = process.platform;\n const cmd =\n platform === \"darwin\"\n ? \"open\"\n : platform === \"win32\"\n ? \"cmd\"\n : \"xdg-open\";\n const args =\n platform === \"win32\" ? [\"/c\", \"start\", \"\", url] : [url];\n\n try {\n spawn(cmd, args, { stdio: \"ignore\", detached: true }).unref();\n return true;\n } catch {\n return false;\n }\n}\n\nfunction promptLine(prompt: string): Promise<string> {\n const rl = createInterface({ input: process.stdin, output: process.stderr });\n return new Promise((resolve) => {\n rl.question(prompt, (answer) => {\n rl.close();\n resolve(answer.trim());\n });\n });\n}\n\n/**\n * OAuth login flow.\n *\n * Redirects to a frontend callback page that displays the authorization code.\n * The user copies the code and pastes it into the terminal.\n * Works on desktop, headless servers, VPS, and SSH sessions.\n */\nconst LOGIN_STATE_PATH = path.join(CONFIG_DIR, \".login-state.json\");\n\ntype LoginOptions = {\n noBrowser?: boolean;\n code?: string;\n};\n\nexport async function login(config: Config, options: LoginOptions = {}): Promise<Credentials> {\n const callbackUrl = `${config.baseUrl}/callback`;\n\n // Step 2: complete login with a code from a previous --no-browser run\n if (options.code) {\n const stateData = loadLoginState();\n if (!stateData) {\n throw new Error(\"No pending login found. Run `mp login --no-browser` first.\");\n }\n return exchangeCode(config, options.code, callbackUrl, stateData.codeVerifier);\n }\n\n // Step 1: start the auth flow\n const state = crypto.randomUUID();\n const usePkce = !config.clientSecret;\n\n let codeVerifier: string | undefined;\n if (usePkce) {\n codeVerifier = generateCodeVerifier();\n }\n\n const authorizeParams = new URLSearchParams({\n client_id: config.clientId,\n redirect_uri: callbackUrl,\n response_type: \"code\",\n scope: \"profile email\",\n state,\n });\n if (usePkce && codeVerifier) {\n authorizeParams.set(\"code_challenge\", generateCodeChallenge(codeVerifier));\n authorizeParams.set(\"code_challenge_method\", \"S256\");\n }\n\n const authorizeUrl = `${config.baseUrl}/authorize?${authorizeParams.toString()}`;\n\n // Save PKCE state for --code step\n saveLoginState({ state, codeVerifier: codeVerifier ?? null });\n\n const opened = options.noBrowser ? false : openBrowser(authorizeUrl);\n\n // Always print the URL so it's visible in terminal/logs\n console.log(\"Open this URL in your browser to log in:\\n\");\n console.log(` ${authorizeUrl}\\n`);\n\n if (options.noBrowser) {\n console.log(\"To open in the user's browser, run: open \\\"<url>\\\" (macOS) or xdg-open \\\"<url>\\\" (Linux)\");\n console.log(\"The user clicks Allow, then copies the code from the callback page.\");\n console.log(\"Complete login with:\\n\");\n console.log(\" mp login --code <paste-code-here>\\n\");\n process.exit(0);\n }\n\n const code = await promptLine(\"Paste code: \");\n if (!code) {\n throw new Error(\"No authorization code provided.\");\n }\n\n return exchangeCode(config, code, callbackUrl, codeVerifier ?? null);\n}\n\nfunction saveLoginState(state: { state: string; codeVerifier: string | null }): void {\n ensureConfigDir();\n atomicWriteFileSync(LOGIN_STATE_PATH, JSON.stringify(state), 0o600);\n}\n\nfunction loadLoginState(): { state: string; codeVerifier: string | null } | null {\n if (!fs.existsSync(LOGIN_STATE_PATH)) return null;\n try {\n const data = JSON.parse(fs.readFileSync(LOGIN_STATE_PATH, \"utf-8\"));\n fs.unlinkSync(LOGIN_STATE_PATH); // one-time use\n return data;\n } catch {\n return null;\n }\n}\n\nasync function exchangeCode(\n config: Config,\n code: string,\n callbackUrl: string,\n codeVerifier: string | null,\n): Promise<Credentials> {\n const tokenParams: Record<string, string> = {\n grant_type: \"authorization_code\",\n code,\n client_id: config.clientId,\n redirect_uri: callbackUrl,\n };\n if (config.clientSecret) {\n tokenParams.client_secret = config.clientSecret;\n }\n if (codeVerifier) {\n tokenParams.code_verifier = codeVerifier;\n }\n\n const tokenResponse = await fetch(`${config.baseUrl}/api/oauth/token`, {\n method: \"POST\",\n signal: AbortSignal.timeout(15_000),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams(tokenParams),\n });\n\n if (!tokenResponse.ok) {\n const err = (await tokenResponse.json().catch(() => ({}))) as {\n error?: string;\n error_description?: string;\n };\n const msg = err.error_description ?? err.error ?? tokenResponse.statusText;\n throw new Error(`Token exchange failed: ${msg}`);\n }\n\n const tokens = await tokenResponse.json();\n const expiresAt = Date.now() + (tokens.expires_in ?? 3600) * 1000;\n\n const creds: Credentials = {\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? null,\n expiresAt,\n baseUrl: config.baseUrl,\n };\n\n saveCredentials(creds);\n return creds;\n}\n\nexport async function refreshCredentials(\n creds: Credentials,\n config: Config,\n): Promise<Credentials> {\n if (!creds.refreshToken) {\n throw new Error(\"No refresh token available\");\n }\n\n const unlock = acquireLock();\n if (!unlock) {\n await new Promise((r) => setTimeout(r, 2000));\n const fresh = getCredentials();\n if (fresh && fresh.expiresAt > Date.now()) {\n return fresh;\n }\n throw new Error(\"Token refresh failed (concurrent refresh in progress)\");\n }\n\n try {\n const latest = getCredentials();\n if (latest && latest.expiresAt > Date.now() + 60_000) {\n return latest;\n }\n\n const refreshParams: Record<string, string> = {\n grant_type: \"refresh_token\",\n refresh_token: creds.refreshToken,\n client_id: config.clientId,\n };\n if (config.clientSecret) {\n refreshParams.client_secret = config.clientSecret;\n }\n\n const tokenResponse = await fetch(`${config.baseUrl}/api/oauth/token`, {\n method: \"POST\",\n signal: AbortSignal.timeout(15_000),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams(refreshParams),\n });\n\n if (!tokenResponse.ok) {\n throw new Error(\"Token refresh failed\");\n }\n\n const tokens = await tokenResponse.json();\n const expiresAt = Date.now() + (tokens.expires_in ?? 3600) * 1000;\n\n const newCreds: Credentials = {\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? creds.refreshToken,\n expiresAt,\n baseUrl: config.baseUrl,\n };\n\n saveCredentials(newCreds);\n return newCreds;\n } finally {\n unlock();\n }\n}\n\nconst TOKEN_EXPIRY_BUFFER_MS = 5 * 60 * 1000;\n\nexport async function getValidToken(): Promise<string | null> {\n const creds = getCredentials();\n if (!creds) return null;\n\n const config = getConfig();\n if (!config || config.baseUrl !== creds.baseUrl) return null;\n\n if (Date.now() >= creds.expiresAt - TOKEN_EXPIRY_BUFFER_MS) {\n if (creds.refreshToken) {\n try {\n const newCreds = await refreshCredentials(creds, config);\n return newCreds.accessToken;\n } catch {\n return null;\n }\n }\n return null;\n }\n\n return creds.accessToken;\n}\n","/**\n * Remote tool client.\n * Attaches auth (Bearer token) if credentials are available, otherwise calls without auth.\n * Handles automatic token refresh on 401.\n */\n\nimport {\n getConfig,\n getCredentials,\n getValidToken,\n refreshCredentials,\n} from \"./auth\";\nimport type { ToolIO } from \"./generated/client\";\n\nexport async function callTool(\n baseUrl: string,\n toolName: string,\n params: Record<string, unknown>,\n): Promise<unknown> {\n const token = await getValidToken();\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n if (token) {\n headers[\"Authorization\"] = `Bearer ${token}`;\n }\n\n let res = await fetch(`${baseUrl}/api/tools/${encodeURIComponent(toolName)}`, {\n method: \"POST\",\n headers,\n body: JSON.stringify(params),\n });\n\n // Auto-refresh on 401 if we have a refresh token\n if (res.status === 401 && token) {\n const creds = getCredentials();\n const config = getConfig();\n if (creds?.refreshToken && config && config.baseUrl === creds.baseUrl) {\n try {\n const newCreds = await refreshCredentials(creds, config);\n res = await fetch(`${baseUrl}/api/tools/${encodeURIComponent(toolName)}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${newCreds.accessToken}`,\n },\n body: JSON.stringify(params),\n });\n } catch {\n // Refresh failed, fall through\n }\n }\n }\n\n const data = await res.json();\n\n if (res.status === 401) {\n throw new Error(\"This command requires a MoonPay Agents account. Run `moonpay login` first.\");\n }\n\n if (res.status < 200 || res.status >= 300) {\n const err = data as { error?: string };\n throw new Error(err?.error ?? `Tool call failed (${res.status})`);\n }\n\n return data;\n}\n\nexport async function callRemoteTool<T extends keyof ToolIO>(\n baseUrl: string,\n toolName: T,\n params: ToolIO[T][\"input\"],\n): Promise<ToolIO[T][\"output\"]> {\n return (await callTool(baseUrl, toolName, params)) as ToolIO[T][\"output\"];\n}\n","[\n {\n \"name\": \"buy\",\n \"description\": \"Buy crypto with fiat via MoonPay. Returns a checkout URL to complete the purchase.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/buy_input\",\n \"definitions\": {\n \"buy_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"enum\": [\n \"btc\",\n \"pol_polygon\",\n \"sol\",\n \"usdc\",\n \"usdc_arbitrum\",\n \"usdc_base\",\n \"usdc_optimism\",\n \"usdc_sol\",\n \"usdc_polygon\",\n \"eth\",\n \"eth_polygon\",\n \"eth_optimism\",\n \"eth_base\",\n \"eth_arbitrum\"\n ],\n \"description\": \"MoonPay currency code: sol (Solana), usdc_sol (USDC on Solana), eth (Ethereum), usdc (USDC on Ethereum), usdc_base (USDC on Base), etc.\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Amount of the token to buy, in token units — not fiat. For example, 1.5 means 1.5 SOL, not $1.50.\"\n },\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Destination wallet address to receive the tokens\"\n },\n \"email\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Buyer email to pre-fill on the checkout page\"\n }\n },\n \"required\": [\n \"token\",\n \"amount\",\n \"wallet\",\n \"email\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/buy_output\",\n \"definitions\": {\n \"buy_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"description\": \"MoonPay checkout URL — open in browser to complete purchase\"\n }\n },\n \"required\": [\n \"url\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"swaps_transaction_build\",\n \"description\": \"Build a swap or bridge transaction. Returns an unsigned transaction with a human-readable message, amounts, exchange rate, and estimated time. Supports same-chain swaps and cross-chain bridges. Accepts UI amounts (e.g. 0.1 SOL) — decimal conversion is handled automatically.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/swaps_transaction_build_input\",\n \"definitions\": {\n \"swaps_transaction_build_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Source wallet address\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Source blockchain\"\n },\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Source token address\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Amount to swap (exact-in). Null for exact-out.\"\n }\n },\n \"required\": [\n \"wallet\",\n \"chain\",\n \"token\",\n \"amount\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Source: wallet, chain, token, amount\"\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Destination wallet address\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Destination blockchain\"\n },\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Destination token address\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Amount to receive (exact-out). Null for exact-in.\"\n }\n },\n \"required\": [\n \"wallet\",\n \"chain\",\n \"token\",\n \"amount\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Destination: wallet, chain, token, amount\"\n }\n },\n \"required\": [\n \"from\",\n \"to\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/swaps_transaction_build_output\",\n \"definitions\": {\n \"swaps_transaction_build_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"transactionId\": {\n \"type\": \"string\",\n \"description\": \"Transaction ID for tracking\"\n },\n \"transaction\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"solana\"\n },\n \"base64\": {\n \"type\": \"string\",\n \"description\": \"Base64-encoded transaction\"\n }\n },\n \"required\": [\n \"type\",\n \"base64\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"evm\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Contract address\"\n },\n \"data\": {\n \"type\": \"string\",\n \"description\": \"Calldata\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Native token value in wei\"\n },\n \"chainId\": {\n \"type\": \"number\",\n \"description\": \"EVM chain ID\"\n }\n },\n \"required\": [\n \"type\",\n \"to\",\n \"data\",\n \"value\",\n \"chainId\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"description\": \"Unsigned transaction\"\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"Human-readable description (e.g. Swap 0.1 SOL → 42.5 USDC on Solana)\"\n },\n \"amountIn\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"symbol\": {\n \"type\": \"string\"\n },\n \"usd\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"amount\",\n \"symbol\",\n \"usd\"\n ],\n \"additionalProperties\": false\n },\n \"amountOut\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"symbol\": {\n \"type\": \"string\"\n },\n \"usd\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"amount\",\n \"symbol\",\n \"usd\"\n ],\n \"additionalProperties\": false\n },\n \"exchangeRate\": {\n \"type\": \"number\",\n \"description\": \"Exchange rate (amountOut / amountIn)\"\n },\n \"estimatedTime\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Estimated completion time in seconds\"\n },\n \"requiresApproval\": {\n \"type\": \"boolean\",\n \"description\": \"Whether an ERC20 approval transaction is needed first\"\n }\n },\n \"required\": [\n \"transactionId\",\n \"transaction\",\n \"message\",\n \"amountIn\",\n \"amountOut\",\n \"exchangeRate\",\n \"estimatedTime\",\n \"requiresApproval\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_balance_list\",\n \"description\": \"List all token balances held in a wallet, including amount owned, current value in USD, and token details. Shows the complete token portfolio.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_balance_list_input\",\n \"definitions\": {\n \"token_balance_list_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Wallet address to check token balances for\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain to check balances on (e.g. 'solana', 'ethereum', 'base')\"\n }\n },\n \"required\": [\n \"wallet\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_balance_list_output\",\n \"definitions\": {\n \"token_balance_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the token\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the token\"\n },\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Symbol of the token\"\n },\n \"image\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Image of the token\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Description of the token\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Chain of the token\"\n },\n \"decimals\": {\n \"type\": \"number\",\n \"description\": \"Number of decimals of the token\"\n },\n \"externalLinks\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"website\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Official website URL\"\n },\n \"twitter\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Twitter/X profile URL\"\n },\n \"telegram\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Telegram group URL\"\n },\n \"discord\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Discord server URL\"\n },\n \"github\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"GitHub repository URL\"\n },\n \"coingeckoId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"CoinGecko token ID\"\n }\n },\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"External links and social media\"\n },\n \"balance\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Number of tokens owned\"\n },\n \"value\": {\n \"type\": \"number\",\n \"description\": \"Total value of the token in USD\"\n },\n \"price\": {\n \"type\": \"number\",\n \"description\": \"Current price of the token\"\n }\n },\n \"required\": [\n \"amount\",\n \"value\",\n \"price\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"address\",\n \"name\",\n \"symbol\",\n \"chain\",\n \"decimals\",\n \"balance\"\n ],\n \"additionalProperties\": false\n },\n \"description\": \"Array of all tokens in the wallet with their balances and current values\"\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_retrieve\",\n \"description\": \"Get detailed token information including market data, price changes, volume, trades, and holder statistics by token address\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_retrieve_input\",\n \"definitions\": {\n \"token_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Address of the token to retrieve\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain network where the token exists\"\n }\n },\n \"required\": [\n \"token\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_retrieve_output\",\n \"definitions\": {\n \"token_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the token\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the token\"\n },\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Symbol of the token\"\n },\n \"image\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Image of the token\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Description of the token\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Chain of the token\"\n },\n \"decimals\": {\n \"type\": \"number\",\n \"description\": \"Number of decimals of the token\"\n },\n \"externalLinks\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"website\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Official website URL\"\n },\n \"twitter\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Twitter/X profile URL\"\n },\n \"telegram\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Telegram group URL\"\n },\n \"discord\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Discord server URL\"\n },\n \"github\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"GitHub repository URL\"\n },\n \"coingeckoId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"CoinGecko token ID\"\n }\n },\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"External links and social media\"\n },\n \"marketData\": {\n \"type\": \"object\",\n \"properties\": {\n \"liquidity\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Total liquidity\"\n },\n \"marketCap\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Market capitalization\"\n },\n \"fdv\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Fully diluted valuation\"\n },\n \"price\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Current price\"\n },\n \"priceChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in price across time intervals\"\n },\n \"volume\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Trading volume in USD across time intervals\"\n },\n \"volumeChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in trading volume across time intervals\"\n },\n \"trades\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of trades across time intervals\"\n },\n \"tradesChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of trades across time intervals\"\n },\n \"buys\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of buys across time intervals\"\n },\n \"buysChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of buys across time intervals\"\n },\n \"sells\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of sells across time intervals\"\n },\n \"sellsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of sells across time intervals\"\n },\n \"uniqueWallets\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of unique wallets trading across time intervals\"\n },\n \"uniqueWalletsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of unique wallets trading across time intervals\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"address\",\n \"name\",\n \"symbol\",\n \"chain\",\n \"decimals\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_search\",\n \"description\": \"Search for tokens by name, symbol, or address. Returns matching tokens with their market data including price, volume, and liquidity.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_search_input\",\n \"definitions\": {\n \"token_search_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Search term - can be token name (e.g. 'Bitcoin'), symbol (e.g. 'BTC'), or partial match\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain to search on (e.g. 'solana', 'ethereum', 'base')\"\n },\n \"limit\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Maximum number of results to return (optional, defaults to 5)\"\n }\n },\n \"required\": [\n \"query\",\n \"chain\",\n \"limit\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_search_output\",\n \"definitions\": {\n \"token_search_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the token\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the token\"\n },\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Symbol of the token\"\n },\n \"image\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Image of the token\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Description of the token\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Chain of the token\"\n },\n \"decimals\": {\n \"type\": \"number\",\n \"description\": \"Number of decimals of the token\"\n },\n \"externalLinks\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"website\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Official website URL\"\n },\n \"twitter\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Twitter/X profile URL\"\n },\n \"telegram\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Telegram group URL\"\n },\n \"discord\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Discord server URL\"\n },\n \"github\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"GitHub repository URL\"\n },\n \"coingeckoId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"CoinGecko token ID\"\n }\n },\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"External links and social media\"\n },\n \"marketData\": {\n \"type\": \"object\",\n \"properties\": {\n \"liquidity\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Total liquidity\"\n },\n \"marketCap\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Market capitalization\"\n },\n \"fdv\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Fully diluted valuation\"\n },\n \"price\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Current price\"\n },\n \"priceChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in price across time intervals\"\n },\n \"volume\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Trading volume in USD across time intervals\"\n },\n \"volumeChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in trading volume across time intervals\"\n },\n \"trades\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of trades across time intervals\"\n },\n \"tradesChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of trades across time intervals\"\n },\n \"buys\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of buys across time intervals\"\n },\n \"buysChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of buys across time intervals\"\n },\n \"sells\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of sells across time intervals\"\n },\n \"sellsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of sells across time intervals\"\n },\n \"uniqueWallets\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of unique wallets trading across time intervals\"\n },\n \"uniqueWalletsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of unique wallets trading across time intervals\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"address\",\n \"name\",\n \"symbol\",\n \"chain\",\n \"decimals\"\n ],\n \"additionalProperties\": false\n },\n \"description\": \"Array of tokens matching the search query with their market data\"\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_swap\",\n \"description\": \"Swap the specified amount of input token for output token.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_swap_input\",\n \"definitions\": {\n \"token_swap_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"simulation\": {\n \"type\": \"boolean\",\n \"description\": \"If true, only simulate the transaction without executing it\"\n },\n \"input\": {\n \"type\": \"string\",\n \"description\": \"The address of the input token to swap\"\n },\n \"output\": {\n \"type\": \"string\",\n \"description\": \"The address of the output token to receive\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"The amount of the input token to swap\"\n }\n },\n \"required\": [\n \"simulation\",\n \"input\",\n \"output\",\n \"amount\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_swap_output\",\n \"definitions\": {\n \"token_swap_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"signature\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_transfer\",\n \"description\": \"Build an unsigned transfer transaction. Returns a transaction ready for signing. Handles both native and token transfers.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_transfer_input\",\n \"definitions\": {\n \"token_transfer_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Wallet address to transfer from\"\n },\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Mint address of the token to transfer\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Recipient wallet address\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Amount to transfer in human-readable units (e.g. 1.5)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain to execute the transfer on\"\n }\n },\n \"required\": [\n \"wallet\",\n \"token\",\n \"to\",\n \"amount\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_transfer_output\",\n \"definitions\": {\n \"token_transfer_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"transaction\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"solana\"\n },\n \"base64\": {\n \"type\": \"string\",\n \"description\": \"Base64-encoded transaction\"\n }\n },\n \"required\": [\n \"type\",\n \"base64\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"evm\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Recipient or contract address\"\n },\n \"data\": {\n \"type\": \"string\",\n \"description\": \"Calldata (0x for native transfers)\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Native token value in wei\"\n },\n \"chainId\": {\n \"type\": \"number\",\n \"description\": \"EVM chain ID\"\n }\n },\n \"required\": [\n \"type\",\n \"to\",\n \"data\",\n \"value\",\n \"chainId\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"transaction\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"token_trending_list\",\n \"description\": \"Get currently trending tokens on a blockchain. Perfect for discovering what's hot right now.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/token_trending_list_input\",\n \"definitions\": {\n \"token_trending_list_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain to get trending tokens from (e.g. 'solana', 'ethereum', 'base')\"\n },\n \"limit\": {\n \"type\": \"number\",\n \"description\": \"Number of results per page\"\n },\n \"page\": {\n \"type\": \"number\",\n \"description\": \"The page number of results\"\n }\n },\n \"required\": [\n \"chain\",\n \"limit\",\n \"page\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/token_trending_list_output\",\n \"definitions\": {\n \"token_trending_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Address of the token\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the token\"\n },\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Symbol of the token\"\n },\n \"image\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Image of the token\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Description of the token\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Chain of the token\"\n },\n \"decimals\": {\n \"type\": \"number\",\n \"description\": \"Number of decimals of the token\"\n },\n \"externalLinks\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"website\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Official website URL\"\n },\n \"twitter\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Twitter/X profile URL\"\n },\n \"telegram\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Telegram group URL\"\n },\n \"discord\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Discord server URL\"\n },\n \"github\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"GitHub repository URL\"\n },\n \"coingeckoId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"CoinGecko token ID\"\n }\n },\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"External links and social media\"\n },\n \"marketData\": {\n \"type\": \"object\",\n \"properties\": {\n \"liquidity\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Total liquidity\"\n },\n \"marketCap\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Market capitalization\"\n },\n \"fdv\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Fully diluted valuation\"\n },\n \"price\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"Current price\"\n },\n \"priceChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in price across time intervals\"\n },\n \"volume\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Trading volume in USD across time intervals\"\n },\n \"volumeChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in trading volume across time intervals\"\n },\n \"trades\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of trades across time intervals\"\n },\n \"tradesChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of trades across time intervals\"\n },\n \"buys\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of buys across time intervals\"\n },\n \"buysChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of buys across time intervals\"\n },\n \"sells\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of sells across time intervals\"\n },\n \"sellsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of sells across time intervals\"\n },\n \"uniqueWallets\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Number of unique wallets trading across time intervals\"\n },\n \"uniqueWalletsChangePercent\": {\n \"type\": \"object\",\n \"properties\": {\n \"1m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-minute data\"\n },\n \"5m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"5-minute data\"\n },\n \"30m\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"30-minute data\"\n },\n \"1h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"1-hour data\"\n },\n \"2h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"2-hour data\"\n },\n \"4h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"4-hour data\"\n },\n \"6h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"6-hour data\"\n },\n \"8h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"8-hour data\"\n },\n \"12h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"12-hour data\"\n },\n \"24h\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"description\": \"24-hour data\"\n }\n },\n \"additionalProperties\": false,\n \"description\": \"Percentage change in number of unique wallets trading across time intervals\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"address\",\n \"name\",\n \"symbol\",\n \"chain\",\n \"decimals\"\n ],\n \"additionalProperties\": false\n },\n \"description\": \"Array of trending tokens with their market data\"\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"transaction_list\",\n \"description\": \"List swap and bridge transaction history. Filter by wallet address and/or chain.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/transaction_list_input\",\n \"definitions\": {\n \"transaction_list_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Wallet address to filter transactions\"\n },\n \"chain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Chain to filter transactions\"\n }\n },\n \"required\": [\n \"wallet\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/transaction_list_output\",\n \"definitions\": {\n \"transaction_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"transactionId\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"swap\",\n \"bridge\"\n ]\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\"\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"txHash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"chain\",\n \"token\",\n \"amount\",\n \"txHash\"\n ],\n \"additionalProperties\": false\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\"\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"txHash\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"chain\",\n \"token\",\n \"amount\",\n \"txHash\"\n ],\n \"additionalProperties\": false\n },\n \"usd\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"bridgeTime\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"transactionId\",\n \"status\",\n \"type\",\n \"from\",\n \"to\",\n \"usd\",\n \"bridgeTime\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"transaction_register\",\n \"description\": \"Register a broadcast transaction for tracking. Call after transaction_send to enable status tracking via transaction_retrieve.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/transaction_register_input\",\n \"definitions\": {\n \"transaction_register_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"transactionId\": {\n \"type\": \"string\",\n \"description\": \"Transaction ID from swaps_transaction_build\"\n },\n \"transactionHash\": {\n \"type\": \"string\",\n \"description\": \"Transaction hash/signature after broadcasting\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain where the transaction was broadcast\"\n }\n },\n \"required\": [\n \"transactionId\",\n \"transactionHash\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/transaction_register_output\",\n \"definitions\": {\n \"transaction_register_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the operation was successful\"\n }\n },\n \"required\": [\n \"success\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"transaction_retrieve\",\n \"description\": \"Get the status and details of a transaction by its ID.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/transaction_retrieve_input\",\n \"definitions\": {\n \"transaction_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"transactionId\": {\n \"type\": \"string\",\n \"description\": \"Transaction ID from swaps_transaction_build or transaction_register\"\n }\n },\n \"required\": [\n \"transactionId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/transaction_retrieve_output\",\n \"definitions\": {\n \"transaction_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"transactionId\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"swap\",\n \"bridge\"\n ]\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\"\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"txHash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"chain\",\n \"token\",\n \"amount\",\n \"txHash\"\n ],\n \"additionalProperties\": false\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\"\n },\n \"token\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"txHash\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"chain\",\n \"token\",\n \"amount\",\n \"txHash\"\n ],\n \"additionalProperties\": false\n },\n \"usd\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"bridgeTime\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"transactionId\",\n \"status\",\n \"type\",\n \"from\",\n \"to\",\n \"usd\",\n \"bridgeTime\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"transaction_send\",\n \"description\": \"Broadcast a signed transaction to the network. Supports Solana, EVM chains, and Bitcoin.\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/transaction_send_input\",\n \"definitions\": {\n \"transaction_send_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"transaction\": {\n \"type\": \"string\",\n \"description\": \"Signed transaction: base64-encoded for Solana, hex-encoded (0x...) for EVM, raw hex for Bitcoin\"\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"Human-readable message describing the transaction\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ],\n \"description\": \"Blockchain to broadcast on\"\n }\n },\n \"required\": [\n \"transaction\",\n \"message\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/transaction_send_output\",\n \"definitions\": {\n \"transaction_send_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"signature\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"user_retrieve\",\n \"description\": \"Get the currently authenticated user\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/user_retrieve_input\",\n \"definitions\": {\n \"user_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/user_retrieve_output\",\n \"definitions\": {\n \"user_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_create\",\n \"description\": \"Create a virtual account and start KYC verification\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_create_input\",\n \"definitions\": {\n \"virtual-account_create_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_create_output\",\n \"definitions\": {\n \"virtual-account_create_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"customerType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Person\",\n \"Business\"\n ]\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"UserRequired\",\n \"SigningsRequired\",\n \"IdentificationRequired\",\n \"Active\",\n \"Suspended\"\n ]\n },\n \"nextStep\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"customerType\",\n \"status\",\n \"nextStep\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_delete\",\n \"description\": \"Delete your virtual account\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_delete_input\",\n \"definitions\": {\n \"virtual-account_delete_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_delete_output\",\n \"definitions\": {\n \"virtual-account_delete_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the operation was successful\"\n }\n },\n \"required\": [\n \"success\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_identification_create\",\n \"description\": \"Create a KYC verification link to complete identity verification\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_create_input\",\n \"definitions\": {\n \"virtual-account_identification_create_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_create_output\",\n \"definitions\": {\n \"virtual-account_identification_create_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"Processed\",\n \"PendingReview\",\n \"Approved\",\n \"Declined\",\n \"Expired\"\n ]\n },\n \"url\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"message\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"status\",\n \"url\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_identification_list\",\n \"description\": \"List all KYC identifications\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_list_input\",\n \"definitions\": {\n \"virtual-account_identification_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_list_output\",\n \"definitions\": {\n \"virtual-account_identification_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"Processed\",\n \"PendingReview\",\n \"Approved\",\n \"Declined\",\n \"Expired\"\n ]\n },\n \"url\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"status\",\n \"url\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_identification_retrieve\",\n \"description\": \"Get the status of a KYC identification\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_retrieve_input\",\n \"definitions\": {\n \"virtual-account_identification_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_identification_retrieve_output\",\n \"definitions\": {\n \"virtual-account_identification_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"Processed\",\n \"PendingReview\",\n \"Approved\",\n \"Declined\",\n \"Expired\"\n ]\n },\n \"url\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"status\",\n \"url\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_create\",\n \"description\": \"Create an onramp to convert fiat to stablecoin\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_create_input\",\n \"definitions\": {\n \"virtual-account_onramp_create_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the onramp\"\n },\n \"fiat\": {\n \"type\": \"string\",\n \"enum\": [\n \"USD\",\n \"EUR\"\n ],\n \"description\": \"The fiat currency to convert from\"\n },\n \"stablecoin\": {\n \"type\": \"string\",\n \"enum\": [\n \"USDC\",\n \"USDT\",\n \"EURC\"\n ],\n \"description\": \"The stablecoin token to convert to\"\n },\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Registered wallet address to receive stablecoin\"\n }\n },\n \"required\": [\n \"name\",\n \"fiat\",\n \"stablecoin\",\n \"wallet\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_create_output\",\n \"definitions\": {\n \"virtual-account_onramp_create_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Created\",\n \"Authorized\",\n \"DepositAccountAdded\",\n \"Approved\",\n \"Rejected\",\n \"Cancelled\"\n ]\n },\n \"fiat\": {\n \"type\": \"string\"\n },\n \"stablecoin\": {\n \"type\": \"string\"\n },\n \"depositAccount\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"walletAddress\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"status\",\n \"fiat\",\n \"stablecoin\",\n \"depositAccount\",\n \"walletAddress\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_delete\",\n \"description\": \"Cancel an onramp\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_delete_input\",\n \"definitions\": {\n \"virtual-account_onramp_delete_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"onrampId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The ID of the onramp to cancel\"\n }\n },\n \"required\": [\n \"onrampId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_delete_output\",\n \"definitions\": {\n \"virtual-account_onramp_delete_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"success\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_list\",\n \"description\": \"List all onramps\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_list_input\",\n \"definitions\": {\n \"virtual-account_onramp_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_list_output\",\n \"definitions\": {\n \"virtual-account_onramp_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Created\",\n \"Authorized\",\n \"DepositAccountAdded\",\n \"Approved\",\n \"Rejected\",\n \"Cancelled\"\n ]\n },\n \"fiat\": {\n \"type\": \"string\"\n },\n \"stablecoin\": {\n \"type\": \"string\"\n },\n \"depositAccount\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"walletAddress\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"status\",\n \"fiat\",\n \"stablecoin\",\n \"depositAccount\",\n \"walletAddress\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_payment_create\",\n \"description\": \"Create an open banking payment link for an onramp\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_payment_create_input\",\n \"definitions\": {\n \"virtual-account_onramp_payment_create_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"onrampId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The ID of the onramp\"\n },\n \"amount\": {\n \"type\": \"string\",\n \"description\": \"The amount to pay\"\n },\n \"fiat\": {\n \"type\": \"string\",\n \"enum\": [\n \"USD\",\n \"EUR\"\n ],\n \"description\": \"The fiat currency (USD or EUR)\"\n }\n },\n \"required\": [\n \"onrampId\",\n \"amount\",\n \"fiat\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_payment_create_output\",\n \"definitions\": {\n \"virtual-account_onramp_payment_create_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"paymentLink\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"Ready\",\n \"Processing\",\n \"Completed\",\n \"Failed\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"paymentLink\",\n \"status\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_payment_retrieve\",\n \"description\": \"Get the status of an open banking payment\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_payment_retrieve_input\",\n \"definitions\": {\n \"virtual-account_onramp_payment_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"onrampId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The ID of the onramp this payment belongs to\"\n },\n \"paymentId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The ID of the payment to retrieve\"\n }\n },\n \"required\": [\n \"onrampId\",\n \"paymentId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_payment_retrieve_output\",\n \"definitions\": {\n \"virtual-account_onramp_payment_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"paymentLink\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"Ready\",\n \"Processing\",\n \"Completed\",\n \"Failed\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"paymentLink\",\n \"status\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_onramp_retrieve\",\n \"description\": \"Get onramp details and banking info\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_retrieve_input\",\n \"definitions\": {\n \"virtual-account_onramp_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"onrampId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The ID of the onramp to retrieve\"\n }\n },\n \"required\": [\n \"onrampId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_onramp_retrieve_output\",\n \"definitions\": {\n \"virtual-account_onramp_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"Created\",\n \"Authorized\",\n \"DepositAccountAdded\",\n \"Approved\",\n \"Rejected\",\n \"Cancelled\"\n ]\n },\n \"fiat\": {\n \"type\": \"string\"\n },\n \"stablecoin\": {\n \"type\": \"string\"\n },\n \"depositAccount\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"walletAddress\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"status\",\n \"fiat\",\n \"stablecoin\",\n \"depositAccount\",\n \"walletAddress\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_retrieve\",\n \"description\": \"Get your virtual account status\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_retrieve_input\",\n \"definitions\": {\n \"virtual-account_retrieve_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_retrieve_output\",\n \"definitions\": {\n \"virtual-account_retrieve_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"customerType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Person\",\n \"Business\"\n ]\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"UserRequired\",\n \"SigningsRequired\",\n \"IdentificationRequired\",\n \"Active\",\n \"Suspended\"\n ]\n },\n \"nextStep\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"customerType\",\n \"status\",\n \"nextStep\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_signing_create\",\n \"description\": \"Sign a required document for your virtual account\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_create_input\",\n \"definitions\": {\n \"virtual-account_signing_create_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"contentId\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the content to sign\"\n }\n },\n \"required\": [\n \"contentId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_create_output\",\n \"definitions\": {\n \"virtual-account_signing_create_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"contentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"documentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"contentId\",\n \"documentId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_signing_list\",\n \"description\": \"List all signed documents\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_list_input\",\n \"definitions\": {\n \"virtual-account_signing_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_list_output\",\n \"definitions\": {\n \"virtual-account_signing_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"contentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"documentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"contentId\",\n \"documentId\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_signing_required_list\",\n \"description\": \"List documents that require your signature\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_required_list_input\",\n \"definitions\": {\n \"virtual-account_signing_required_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_signing_required_list_output\",\n \"definitions\": {\n \"virtual-account_signing_required_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"displayName\",\n \"url\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_transaction_list\",\n \"description\": \"List virtual account transactions\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_transaction_list_input\",\n \"definitions\": {\n \"virtual-account_transaction_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_transaction_list_output\",\n \"definitions\": {\n \"virtual-account_transaction_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"type\": \"string\",\n \"enum\": [\n \"Pending\",\n \"PayoutPending\",\n \"Payout\",\n \"PayoutCompleted\",\n \"Completed\",\n \"Failed\",\n \"InAmlReview\",\n \"AmlRejected\",\n \"AmountRejected\"\n ]\n },\n \"sourceAmount\": {\n \"type\": \"string\"\n },\n \"destinationAmount\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"state\",\n \"sourceAmount\",\n \"destinationAmount\",\n \"createdAt\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_wallet_list\",\n \"description\": \"List registered wallets\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_wallet_list_input\",\n \"definitions\": {\n \"virtual-account_wallet_list_input\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_wallet_list_output\",\n \"definitions\": {\n \"virtual-account_wallet_list_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"address\": {\n \"type\": \"string\"\n },\n \"blockchain\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"address\",\n \"blockchain\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n },\n {\n \"name\": \"virtual-account_wallet_register\",\n \"description\": \"Register a wallet using a signed verification message\",\n \"inputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_wallet_register_input\",\n \"definitions\": {\n \"virtual-account_wallet_register_input\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"The wallet address to register\"\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"The verification message\"\n },\n \"signature\": {\n \"type\": \"string\",\n \"description\": \"Signature of the message\"\n },\n \"chain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"solana\",\n \"ethereum\",\n \"base\",\n \"polygon\",\n \"arbitrum\",\n \"optimism\",\n \"bnb\",\n \"avalanche\",\n \"tron\",\n \"bitcoin\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Blockchain (defaults to solana)\"\n }\n },\n \"required\": [\n \"wallet\",\n \"message\",\n \"signature\",\n \"chain\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n },\n \"outputSchema\": {\n \"$ref\": \"#/definitions/virtual-account_wallet_register_output\",\n \"definitions\": {\n \"virtual-account_wallet_register_output\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the operation was successful\"\n }\n },\n \"required\": [\n \"success\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n }\n }\n]","import { generateMnemonic } from \"@scure/bip39\";\nimport { wordlist as english } from \"@scure/bip39/wordlists/english\";\nimport { execSync } from \"node:child_process\";\nimport { platform } from \"node:os\";\nimport { createTool } from \"../../shared\";\nimport { deriveAllAddresses } from \"../chains\";\nimport { addWallet } from \"../store\";\nimport { walletCreateSchema } from \"./schema\";\n\nfunction copyToClipboard(text: string): boolean {\n try {\n const os = platform();\n if (os === \"darwin\") {\n execSync(\"pbcopy\", { input: text, stdio: [\"pipe\", \"ignore\", \"ignore\"] });\n return true;\n }\n if (os === \"linux\") {\n execSync(\"xclip -selection clipboard\", { input: text, stdio: [\"pipe\", \"ignore\", \"ignore\"] });\n return true;\n }\n } catch {}\n return false;\n}\n\nexport const walletCreate = createTool(walletCreateSchema, async (params) => {\n const mnemonic = generateMnemonic(english, 256);\n const addresses = deriveAllAddresses(mnemonic);\n\n addWallet({\n name: params.name,\n type: \"hd\",\n mnemonic,\n addresses,\n createdAt: new Date().toISOString(),\n });\n\n if (process.stdout.isTTY) {\n const copied = copyToClipboard(mnemonic);\n if (copied) {\n process.stderr.write(\n \"\\nMnemonic copied to clipboard. Paste it into your password manager.\\n\" +\n \"Clipboard will be cleared in 30 seconds.\\n\\n\",\n );\n setTimeout(() => copyToClipboard(\"\"), 30_000).unref();\n } else {\n process.stderr.write(\n \"\\nCould not copy to clipboard. Run `mp wallet export` to view your mnemonic.\\n\\n\",\n );\n }\n }\n\n return { name: params.name, addresses };\n});\n","import { z } from \"zod\";\n\n// ── Schema types ─────────────────────────────────────────────\n\nexport type ToolSchema<\n I extends z.ZodType = z.ZodType,\n O extends z.ZodType = z.ZodType,\n> = {\n name: string;\n description: string;\n input: I;\n output: O;\n};\n\nexport type ToolInput<TSchema extends ToolSchema> = z.infer<TSchema[\"input\"]>;\nexport type ToolOutput<TSchema extends ToolSchema> = z.infer<TSchema[\"output\"]>;\n\nexport const defineToolSchema = <\n TInput extends z.ZodType,\n TOutput extends z.ZodType,\n>(config: {\n name: string;\n description: string;\n input: TInput;\n output: TOutput;\n}): ToolSchema<TInput, TOutput> => config;\n\n// ── Tool wrapper ─────────────────────────────────────────────\n\nexport type Tool<TSchema extends ToolSchema = ToolSchema> = {\n schema: TSchema;\n handler: (params: z.input<TSchema[\"input\"]>) => Promise<z.output<TSchema[\"output\"]>>;\n};\n\n/**\n * Lightweight createTool for CLI local tools.\n * Validates input/output with Zod, no logging or context.\n */\nexport const createTool = <TSchema extends ToolSchema>(\n schema: TSchema,\n handler: (\n params: z.output<TSchema[\"input\"]>,\n ) => Promise<z.output<TSchema[\"output\"]>>,\n): Tool<TSchema> => ({\n schema,\n handler: async (params: z.input<TSchema[\"input\"]>) => {\n const parsedInput = schema.input.parse(params);\n const result = await handler(parsedInput);\n return schema.output.parse(result);\n },\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { keyChainSchema } from \"../models\";\n\nexport const walletCreateSchema = defineToolSchema({\n name: \"wallet_create\",\n description:\n \"Create a new multi-chain HD wallet. Generates a BIP39 mnemonic and derives addresses for Solana, Ethereum, Bitcoin, and Tron. \" +\n \"The mnemonic is copied to clipboard (interactive) or omitted (headless). Keys are encrypted with a random key stored in the OS keychain.\",\n input: z.object({\n name: z.string().describe(\"Wallet name\"),\n }),\n output: z.object({\n name: z.string(),\n addresses: z.record(keyChainSchema, z.string()),\n }),\n});\n","import { validateMnemonic } from \"@scure/bip39\";\nimport { wordlist as english } from \"@scure/bip39/wordlists/english\";\nimport { Keypair } from \"@solana/web3.js\";\nimport bs58 from \"bs58\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { createTool } from \"../../shared\";\nimport { deriveAllAddresses } from \"../chains\";\nimport { addWallet } from \"../store\";\nimport { KEY_CHAIN_MAP, type KeyChain } from \"../models\";\nimport { walletImportSchema } from \"./schema\";\n\nexport const walletImport = createTool(walletImportSchema, async (params) => {\n if (params.mnemonic && params.key) {\n throw new Error(\"Provide either --mnemonic or --key, not both.\");\n }\n\n if (params.mnemonic) {\n const trimmed = params.mnemonic.trim().toLowerCase();\n if (!validateMnemonic(trimmed, english)) {\n throw new Error(\"Invalid BIP39 mnemonic.\");\n }\n\n const addresses = deriveAllAddresses(trimmed);\n addWallet({\n name: params.name,\n type: \"hd\",\n mnemonic: trimmed,\n addresses,\n createdAt: new Date().toISOString(),\n });\n\n return { name: params.name, type: \"hd\" as const, addresses };\n }\n\n const chain: KeyChain = params.chain ? KEY_CHAIN_MAP[params.chain] : \"solana\";\n const key = params.key ?? \"\";\n let address: string;\n let cleanKey: string;\n\n if (chain === \"solana\") {\n try {\n const secretKeyBytes = bs58.decode(key);\n const keypair = Keypair.fromSecretKey(secretKeyBytes);\n address = keypair.publicKey.toBase58();\n cleanKey = key;\n } catch {\n throw new Error(\"Invalid Solana private key. Expected base58-encoded secret key.\");\n }\n } else if (chain === \"ethereum\") {\n cleanKey = key.startsWith(\"0x\") ? key.slice(2) : key;\n if (!/^[0-9a-fA-F]{64}$/.test(cleanKey)) {\n throw new Error(\"Invalid EVM private key. Expected 64-character hex string.\");\n }\n address = privateKeyToAccount(`0x${cleanKey}`).address;\n } else {\n throw new Error(`Single-key import for ${chain} is not yet supported. Use a mnemonic instead.`);\n }\n\n addWallet({\n name: params.name,\n type: \"imported\",\n chain,\n privateKey: cleanKey,\n addresses: { [chain]: address },\n createdAt: new Date().toISOString(),\n });\n\n return { name: params.name, type: \"imported\" as const, addresses: { [chain]: address } };\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { chainSchema, keyChainSchema } from \"../models\";\n\nexport const walletImportSchema = defineToolSchema({\n name: \"wallet_import\",\n description:\n \"Import a wallet from a BIP39 mnemonic (HD, all chains) or a single private key (one chain). \" +\n \"Provide either --mnemonic or --key, not both.\",\n input: z.object({\n name: z.string().describe(\"Wallet name\"),\n mnemonic: z\n .string()\n .nullable()\n .describe(\"BIP39 mnemonic seed phrase (for HD wallet import)\"),\n key: z\n .string()\n .nullable()\n .describe(\"Private key: base58 for Solana, hex for EVM/Bitcoin\"),\n chain: chainSchema\n .nullable()\n .describe(\"Chain for single-key import (default solana)\"),\n }),\n output: z.object({\n name: z.string(),\n type: z.enum([\"hd\", \"imported\"]),\n addresses: z.record(keyChainSchema, z.string()),\n }),\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { walletInfoSchema } from \"../models\";\n\nexport const walletListSchema = defineToolSchema({\n name: \"wallet_list\",\n description: \"List all local wallets\",\n input: z.object({}),\n output: z.array(walletInfoSchema),\n});\n","import { createTool } from \"../../shared\";\nimport { loadWallets } from \"../store\";\nimport { walletListSchema } from \"./schema\";\n\nexport const walletList = createTool(walletListSchema, async () => {\n const wallets = loadWallets();\n return wallets.map((w) => ({\n name: w.name,\n type: w.type,\n addresses: w.addresses,\n createdAt: w.createdAt,\n }));\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { walletInfoSchema } from \"../models\";\n\nexport const walletRetrieveSchema = defineToolSchema({\n name: \"wallet_retrieve\",\n description: \"Get details of a specific wallet\",\n input: z.object({\n wallet: z.string().describe(\"Wallet name or address\"),\n }),\n output: walletInfoSchema,\n});\n","import { createTool } from \"../../shared\";\nimport { findWalletOrThrow } from \"../store\";\nimport { walletRetrieveSchema } from \"./schema\";\n\nexport const walletRetrieve = createTool(walletRetrieveSchema, async (params) => {\n const wallet = findWalletOrThrow(params.wallet);\n return {\n name: wallet.name,\n type: wallet.type,\n addresses: wallet.addresses,\n createdAt: wallet.createdAt,\n };\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\n\nexport const walletDeleteSchema = defineToolSchema({\n name: \"wallet_delete\",\n description:\n \"Permanently delete a local wallet. This removes the private key file and cannot be undone.\",\n input: z.object({\n wallet: z.string().describe(\"Name or address of the wallet to delete\"),\n confirm: z\n .boolean()\n .describe(\"Must be true to confirm deletion\"),\n }),\n output: z.object({\n name: z.string().describe(\"Name of the deleted wallet\"),\n deleted: z.literal(true),\n }),\n});\n","import { createTool } from \"../../shared\";\nimport { findWalletOrThrow, removeWallet } from \"../store\";\nimport { walletDeleteSchema } from \"./schema\";\n\nexport const walletDelete = createTool(walletDeleteSchema, async (params) => {\n if (!params.confirm) {\n throw new Error(\n \"Deletion not confirmed. Pass --confirm to permanently delete this wallet.\",\n );\n }\n\n const wallet = findWalletOrThrow(params.wallet);\n removeWallet(wallet.name);\n\n return { name: wallet.name, deleted: true as const };\n});\n","import { Keypair, VersionedTransaction } from \"@solana/web3.js\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { parseTransaction, type TransactionSerializable } from \"viem\";\nimport { createPublicClient, http } from \"viem\";\nimport * as viemChains from \"viem/chains\";\nimport { createTool } from \"../../shared\";\nimport { findWalletOrThrow, resolveSigningKey } from \"../../wallet/store\";\nimport { KEY_CHAIN_MAP, type Chain } from \"../../wallet/models\";\nimport { transactionSignSchema } from \"./schema\";\n\nconst CHAIN_ID_TO_VIEM: Record<number, viemChains.Chain> = {\n 1: viemChains.mainnet,\n 137: viemChains.polygon,\n 42161: viemChains.arbitrum,\n 8453: viemChains.base,\n 10: viemChains.optimism,\n 56: viemChains.bsc,\n 43114: viemChains.avalanche,\n};\n\nconst RPC_OVERRIDES: Record<number, string> = {\n 137: \"https://polygon-bor-rpc.publicnode.com\",\n 42161: \"https://arbitrum-one-rpc.publicnode.com\",\n 10: \"https://optimism-rpc.publicnode.com\",\n 8453: \"https://base-rpc.publicnode.com\",\n 56: \"https://bsc-rpc.publicnode.com\",\n 43114: \"https://avalanche-c-chain-rpc.publicnode.com\",\n};\n\nexport const transactionSign = createTool(\n transactionSignSchema,\n async (params) => {\n const wallet = findWalletOrThrow(params.wallet);\n const chain = params.chain as Chain;\n const keyChain = KEY_CHAIN_MAP[chain];\n const { privateKey } = resolveSigningKey(wallet, chain);\n\n switch (keyChain) {\n case \"solana\":\n return signSolana(privateKey, params.transaction.trim());\n case \"ethereum\":\n case \"tron\":\n return signEvm(privateKey, params.transaction.trim());\n case \"bitcoin\":\n return signBitcoin(privateKey, params.transaction.trim());\n }\n },\n);\n\nfunction signSolana(\n privateKey: Uint8Array,\n transaction: string,\n): { transaction: string } {\n const txBytes = Buffer.from(transaction, \"base64\");\n const tx = VersionedTransaction.deserialize(txBytes);\n const keypair = Keypair.fromSecretKey(privateKey);\n tx.sign([keypair]);\n return { transaction: Buffer.from(tx.serialize()).toString(\"base64\") };\n}\n\nasync function signEvm(\n privateKey: Uint8Array,\n transaction: string,\n): Promise<{ transaction: string }> {\n const account = privateKeyToAccount(\n `0x${Buffer.from(privateKey).toString(\"hex\")}`,\n );\n\n // swaps.xyz returns JSON {to, data, value, chainId} — build a proper tx\n if (transaction.startsWith(\"{\")) {\n const { to, data, value, chainId } = JSON.parse(transaction);\n const chain = CHAIN_ID_TO_VIEM[chainId] ?? viemChains.mainnet;\n const rpc = RPC_OVERRIDES[chainId];\n\n const client = createPublicClient({ chain, transport: http(rpc) });\n\n const nonce = await client.getTransactionCount({ address: account.address });\n const fees = await client.estimateFeesPerGas();\n const gas = await client.estimateGas({\n account: account.address,\n to: to as `0x${string}`,\n data: data as `0x${string}`,\n value: BigInt(value ?? \"0\"),\n });\n\n const signed = await account.signTransaction({\n to: to as `0x${string}`,\n data: data as `0x${string}`,\n value: BigInt(value ?? \"0\"),\n chainId,\n nonce,\n gas,\n maxFeePerGas: fees.maxFeePerGas,\n maxPriorityFeePerGas: fees.maxPriorityFeePerGas,\n type: \"eip1559\",\n });\n\n return { transaction: signed };\n }\n\n // Serialized hex transaction\n const hex = transaction.startsWith(\"0x\")\n ? (transaction as `0x${string}`)\n : (`0x${Buffer.from(transaction, \"base64\").toString(\"hex\")}` as `0x${string}`);\n\n const tx = parseTransaction(hex) as TransactionSerializable;\n const signed = await account.signTransaction(tx);\n\n return { transaction: signed };\n}\n\nasync function signBitcoin(\n privateKey: Uint8Array,\n transaction: string,\n): Promise<{ transaction: string }> {\n const bitcoin = await import(\"bitcoinjs-lib\");\n const ECPairFactory = (await import(\"ecpair\")).default;\n const ecc = await import(\"tiny-secp256k1\");\n\n const ECPair = ECPairFactory(ecc);\n const keyPair = ECPair.fromPrivateKey(Buffer.from(privateKey));\n\n const psbt = bitcoin.Psbt.fromBase64(transaction);\n psbt.signAllInputs(keyPair);\n psbt.finalizeAllInputs();\n\n return { transaction: psbt.toBase64() };\n}\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { chainSchema } from \"../../wallet/models\";\n\nexport const transactionSignSchema = defineToolSchema({\n name: \"transaction_sign\",\n description:\n \"Sign a transaction with a local wallet. Supports Solana (VersionedTransaction), EVM (RLP-encoded), and Bitcoin (PSBT) transactions.\",\n input: z.object({\n wallet: z.string().describe(\"Wallet name or address\"),\n chain: chainSchema.describe(\n \"Chain: solana, ethereum, base, arbitrum, or bitcoin\",\n ),\n transaction: z\n .string()\n .describe(\"Base64-encoded unsigned transaction\"),\n }),\n output: z.object({\n transaction: z\n .string()\n .describe(\"Base64-encoded signed transaction\"),\n }),\n});\n","import { createHash } from \"node:crypto\";\nimport { Keypair } from \"@solana/web3.js\";\nimport bs58 from \"bs58\";\nimport nacl from \"tweetnacl\";\nimport * as ecc from \"tiny-secp256k1\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { createTool } from \"../../shared\";\nimport { findWalletOrThrow, resolveSigningKey } from \"../../wallet/store\";\nimport { KEY_CHAIN_MAP, type Chain } from \"../../wallet/models\";\nimport { messageSignSchema } from \"./schema\";\n\nexport const messageSign = createTool(messageSignSchema, async (params) => {\n const wallet = findWalletOrThrow(params.wallet);\n const chain = params.chain as Chain;\n const keyChain = KEY_CHAIN_MAP[chain];\n const { privateKey } = resolveSigningKey(wallet, chain);\n\n const messageBytes = Buffer.from(params.message, \"utf8\");\n\n switch (keyChain) {\n case \"solana\":\n return signSolana(privateKey, messageBytes);\n case \"ethereum\":\n case \"tron\":\n return signEvm(privateKey, params.message);\n case \"bitcoin\":\n return signBitcoin(privateKey, messageBytes);\n }\n});\n\nfunction signSolana(\n privateKey: Uint8Array,\n messageBytes: Buffer,\n): { signature: string } {\n const keypair = Keypair.fromSecretKey(privateKey);\n const signatureBytes = nacl.sign.detached(messageBytes, keypair.secretKey);\n return { signature: bs58.encode(signatureBytes) };\n}\n\nasync function signEvm(\n privateKey: Uint8Array,\n message: string,\n): Promise<{ signature: string }> {\n const account = privateKeyToAccount(\n `0x${Buffer.from(privateKey).toString(\"hex\")}`,\n );\n const signature = await account.signMessage({ message });\n return { signature };\n}\n\nfunction signBitcoin(\n privateKey: Uint8Array,\n messageBytes: Buffer,\n): { signature: string } {\n const hash1 = createHash(\"sha256\").update(messageBytes).digest();\n const hash2 = createHash(\"sha256\").update(hash1).digest();\n\n const sig = ecc.sign(hash2, privateKey);\n if (!sig) throw new Error(\"Bitcoin message signing failed\");\n\n return { signature: \"0x\" + Buffer.from(sig).toString(\"hex\") };\n}\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { chainSchema } from \"../../wallet/models\";\n\nexport const messageSignSchema = defineToolSchema({\n name: \"message_sign\",\n description:\n \"Sign a message with a local wallet. Supports Solana (ed25519), EVM (EIP-191 personal sign), and Bitcoin (secp256k1 ECDSA).\",\n input: z.object({\n wallet: z.string().describe(\"Wallet address or name to sign with\"),\n chain: chainSchema.describe(\n \"Chain: solana, ethereum, base, arbitrum, or bitcoin\",\n ),\n message: z.string().describe(\"Message text to sign\"),\n }),\n output: z.object({\n signature: z\n .string()\n .describe(\n \"Signature: base58 for Solana, hex (0x-prefixed) for EVM/Bitcoin\",\n ),\n }),\n});\n","import https from \"node:https\";\nimport { createTool } from \"../../shared\";\nimport { bitcoinBalanceRetrieveSchema } from \"./schema\";\n\nconst SATS_PER_BTC = 100_000_000;\n\nfunction satsToBtc(sats: number): string {\n return (sats / SATS_PER_BTC).toFixed(8);\n}\n\nfunction fetchJson<T>(url: string): Promise<T> {\n return new Promise((resolve, reject) => {\n https.get(url, { headers: { \"User-Agent\": \"moonpay-cli\" } }, (res) => {\n if (res.statusCode !== 200) {\n reject(new Error(`HTTP ${res.statusCode} from ${url}`));\n res.resume();\n return;\n }\n let data = \"\";\n res.on(\"data\", (chunk) => (data += chunk));\n res.on(\"end\", () => {\n try {\n resolve(JSON.parse(data));\n } catch {\n reject(new Error(\"Invalid JSON response\"));\n }\n });\n }).on(\"error\", reject);\n });\n}\n\ninterface MempoolAddress {\n chain_stats: { funded_txo_sum: number; spent_txo_sum: number };\n mempool_stats: { funded_txo_sum: number; spent_txo_sum: number };\n}\n\nexport const bitcoinBalanceRetrieve = createTool(\n bitcoinBalanceRetrieveSchema,\n async (params) => {\n let address = params.wallet;\n\n // If it doesn't look like a Bitcoin address, try resolving as wallet name\n if (!address.startsWith(\"bc1\") && !address.startsWith(\"1\") && !address.startsWith(\"3\")) {\n const { findWalletOrThrow } = await import(\"../../wallet/store\");\n const wallet = findWalletOrThrow(address);\n const btcAddress = wallet.addresses.bitcoin;\n if (!btcAddress) {\n throw new Error(\n `Wallet \"${address}\" has no Bitcoin address. It may be an imported single-chain wallet.`,\n );\n }\n address = btcAddress;\n }\n\n const data = await fetchJson<MempoolAddress>(\n `https://mempool.space/api/address/${encodeURIComponent(address)}`,\n );\n\n const confirmedSats =\n data.chain_stats.funded_txo_sum - data.chain_stats.spent_txo_sum;\n const unconfirmedSats =\n data.mempool_stats.funded_txo_sum - data.mempool_stats.spent_txo_sum;\n const totalSats = confirmedSats + unconfirmedSats;\n\n return {\n address,\n confirmed: { btc: satsToBtc(confirmedSats), sats: confirmedSats },\n unconfirmed: { btc: satsToBtc(unconfirmedSats), sats: unconfirmedSats },\n total: { btc: satsToBtc(totalSats), sats: totalSats },\n };\n },\n);\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\n\nexport const bitcoinBalanceRetrieveSchema = defineToolSchema({\n name: \"bitcoin_balance_retrieve\",\n description:\n \"Get the BTC balance of a Bitcoin address. Returns confirmed and unconfirmed balances in BTC and satoshis.\",\n input: z.object({\n wallet: z.string().describe(\"Bitcoin address (bc1...) or wallet name\"),\n }),\n output: z.object({\n address: z.string().describe(\"Bitcoin address\"),\n confirmed: z.object({\n btc: z.string().describe(\"Confirmed balance in BTC\"),\n sats: z.number().describe(\"Confirmed balance in satoshis\"),\n }),\n unconfirmed: z.object({\n btc: z.string().describe(\"Unconfirmed (pending) balance in BTC\"),\n sats: z.number().describe(\"Unconfirmed (pending) balance in satoshis\"),\n }),\n total: z.object({\n btc: z.string().describe(\"Total balance in BTC\"),\n sats: z.number().describe(\"Total balance in satoshis\"),\n }),\n }),\n});\n","import { encodeFunctionData, maxUint256 } from \"viem\";\nimport { createTool } from \"../../shared\";\nimport { callRemoteTool } from \"../../../client\";\nimport { resolveBaseUrl } from \"../../../auth\";\nimport { walletRetrieve } from \"../../wallet/retrieve/tool\";\nimport { KEY_CHAIN_MAP } from \"../../wallet/models\";\nimport { transactionSign } from \"../../transaction/sign/tool\";\nimport { tokenSwapSchema, tokenBridgeSchema } from \"./schema\";\n\nconst ERC20_APPROVE_ABI = [\n {\n name: \"approve\",\n type: \"function\",\n inputs: [\n { name: \"spender\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\" }],\n },\n] as const;\n\nexport const tokenBridge = createTool(tokenBridgeSchema, async (params) => {\n if (!params.from.amount && !params.to.amount) {\n throw new Error(\"Provide either from.amount or to.amount.\");\n }\n\n const baseUrl = resolveBaseUrl();\n\n const wallet = await walletRetrieve.handler({ wallet: params.from.wallet });\n const fromAddress = wallet.addresses[KEY_CHAIN_MAP[params.from.chain]];\n if (!fromAddress) {\n throw new Error(`Wallet \"${wallet.name}\" has no address on ${params.from.chain}.`);\n }\n\n let toAddress = fromAddress;\n if (params.to.wallet) {\n try {\n const toWallet = await walletRetrieve.handler({ wallet: params.to.wallet });\n toAddress = toWallet.addresses[KEY_CHAIN_MAP[params.to.chain]] ?? params.to.wallet;\n } catch {\n toAddress = params.to.wallet;\n }\n } else if (params.from.chain !== params.to.chain) {\n toAddress = wallet.addresses[KEY_CHAIN_MAP[params.to.chain]] ?? fromAddress;\n }\n\n const buildParams = {\n from: { wallet: fromAddress, chain: params.from.chain, token: params.from.token, amount: params.from.amount },\n to: { wallet: toAddress, chain: params.to.chain, token: params.to.token, amount: params.to.amount },\n };\n\n let buildResult = await callRemoteTool(baseUrl, \"swaps_transaction_build\", buildParams);\n\n // Token approval (ERC20 swaps on EVM)\n const tx = buildResult.transaction;\n if (buildResult.requiresApproval && \"to\" in tx) {\n const { to: spender, chainId } = tx;\n\n const approveTx = {\n type: \"evm\" as const,\n to: params.from.token,\n data: encodeFunctionData({\n abi: ERC20_APPROVE_ABI,\n functionName: \"approve\",\n args: [spender as `0x${string}`, maxUint256],\n }),\n value: \"0\",\n chainId,\n };\n\n const { transaction: signedApproval } = await transactionSign.handler({\n wallet: wallet.name,\n chain: params.from.chain,\n transaction: JSON.stringify(approveTx),\n });\n\n const approvalResult = await callRemoteTool(baseUrl, \"transaction_send\", {\n transaction: signedApproval,\n message: `Approve ${buildResult.amountIn.symbol}`,\n chain: params.from.chain,\n });\n\n if (!approvalResult.signature) {\n throw new Error(`Approval failed: ${approvalResult.message}`);\n }\n\n buildResult = await callRemoteTool(baseUrl, \"swaps_transaction_build\", buildParams);\n }\n\n // Sign\n const txPayload = \"base64\" in buildResult.transaction\n ? buildResult.transaction.base64\n : JSON.stringify(buildResult.transaction);\n\n const { transaction: signedTransaction } = await transactionSign.handler({\n wallet: wallet.name,\n chain: params.from.chain,\n transaction: txPayload,\n });\n\n // Send\n const sendResult = await callRemoteTool(baseUrl, \"transaction_send\", {\n transaction: signedTransaction,\n message: buildResult.message,\n chain: params.from.chain,\n });\n\n if (!sendResult.signature) {\n throw new Error(`Transaction send failed: ${sendResult.message}`);\n }\n\n const signature = sendResult.signature;\n\n // Register (best-effort)\n try {\n await callRemoteTool(baseUrl, \"transaction_register\", {\n transactionId: buildResult.transactionId,\n transactionHash: signature,\n chain: params.from.chain,\n });\n } catch {}\n\n return { signature, message: buildResult.message };\n});\n\nexport const tokenSwap = createTool(tokenSwapSchema, async (params) => {\n return tokenBridge.handler({\n from: { wallet: params.wallet, chain: params.chain, token: params.from.token, amount: params.from.amount },\n to: { wallet: null, chain: params.chain, token: params.to.token, amount: params.to.amount },\n });\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\nimport { chainSchema } from \"../../wallet/models\";\n\nconst swapOutputSchema = z.object({\n signature: z.string().describe(\"Transaction hash/signature\"),\n message: z.string().describe(\"Human-readable swap description\"),\n});\n\nexport const tokenSwapSchema = defineToolSchema({\n name: \"token_swap\",\n description:\n \"Swap tokens on the same chain. Builds, signs locally, broadcasts, and registers.\",\n input: z.object({\n wallet: z.string().describe(\"Local wallet name to sign with\"),\n chain: chainSchema.describe(\"Chain to swap on\"),\n from: z.object({\n token: z.string().describe(\"Input token address (selling)\"),\n amount: z.coerce.number().nullable().describe(\"Amount to sell (exact-in). Null for exact-out.\"),\n }),\n to: z.object({\n token: z.string().describe(\"Output token address (buying)\"),\n amount: z.coerce.number().nullable().describe(\"Amount to receive (exact-out). Null for exact-in.\"),\n }),\n }),\n output: swapOutputSchema,\n});\n\nexport const tokenBridgeSchema = defineToolSchema({\n name: \"token_bridge\",\n description:\n \"Bridge tokens across chains. Builds, signs locally, broadcasts, and registers.\",\n input: z.object({\n from: z.object({\n wallet: z.string().describe(\"Local wallet name to sign with\"),\n chain: chainSchema.describe(\"Source chain\"),\n token: z.string().describe(\"Source token address\"),\n amount: z.coerce.number().nullable().describe(\"Amount to send (exact-in). Null for exact-out.\"),\n }),\n to: z.object({\n wallet: z.string().nullable().describe(\"Destination wallet name or address (defaults to from wallet)\"),\n chain: chainSchema.describe(\"Destination chain\"),\n token: z.string().describe(\"Destination token address\"),\n amount: z.coerce.number().nullable().describe(\"Amount to receive (exact-out). Null for exact-in.\"),\n }),\n }),\n output: swapOutputSchema,\n});\n","import { Keypair, VersionedTransaction, VersionedMessage } from \"@solana/web3.js\";\nimport axios from \"axios\";\nimport { wrapAxiosWithPayment } from \"@x402/axios\";\nimport { x402Client } from \"@x402/core/client\";\nimport { ExactSvmScheme } from \"@x402/svm\";\nimport type { Address } from \"@solana/addresses\";\nimport type { SignatureDictionary } from \"@solana/signers\";\nimport type { Transaction } from \"@solana/transactions\";\nimport { createTool } from \"../../shared\";\nimport { findWalletOrThrow, resolveSigningKey } from \"../../wallet/store\";\nimport { x402RequestSchema } from \"./schema\";\n\nconst SOLANA_NETWORK = \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\" as const;\n\nfunction createLocalX402Client(walletAddress: string, secretKey: Uint8Array) {\n const keypair = Keypair.fromSecretKey(secretKey);\n\n const signer = {\n address: walletAddress as Address,\n signTransactions: async (\n transactions: readonly Transaction[],\n ): Promise<readonly SignatureDictionary[]> => {\n return transactions.map((transaction) => {\n const messageBytes = new Uint8Array(transaction.messageBytes);\n const message = VersionedMessage.deserialize(messageBytes);\n const numSigs = Object.keys(transaction.signatures).length;\n const tx = new VersionedTransaction(\n message,\n new Array(numSigs).fill(new Uint8Array(64)),\n );\n\n tx.sign([keypair]);\n\n const signerIndex = message.staticAccountKeys.findIndex(\n (key) => key.toBase58() === walletAddress,\n );\n if (signerIndex === -1) {\n throw new Error(\n `Wallet ${walletAddress} is not a signer for this transaction`,\n );\n }\n\n return {\n [walletAddress]: tx.signatures[signerIndex],\n } as SignatureDictionary;\n });\n },\n };\n\n const client = new x402Client();\n const svmScheme = new ExactSvmScheme(signer);\n client.register(SOLANA_NETWORK, svmScheme);\n client.registerV1(\"solana\", svmScheme);\n\n return wrapAxiosWithPayment(axios.create(), client);\n}\n\nexport const x402Request = createTool(\n x402RequestSchema,\n async ({ method, url, body, params, wallet: walletNameOrAddress }) => {\n const walletMetadata = findWalletOrThrow(walletNameOrAddress);\n const { privateKey, address } = resolveSigningKey(walletMetadata, \"solana\");\n const client = createLocalX402Client(address, privateKey);\n\n let response;\n switch (method) {\n case \"GET\":\n response = await client.get(url, { params });\n break;\n case \"POST\":\n response = await client.post(url, body || {}, { params });\n break;\n case \"PUT\":\n response = await client.put(url, body || {}, { params });\n break;\n case \"PATCH\":\n response = await client.patch(url, body || {}, { params });\n break;\n case \"DELETE\":\n response = await client.delete(url, { params });\n break;\n default:\n throw new Error(`Unsupported HTTP method: ${method}`);\n }\n\n return {\n status: response.status,\n data: response.data,\n headers: response.headers as Record<string, string>,\n };\n },\n);\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../shared\";\n\nexport const x402RequestSchema = defineToolSchema({\n name: \"x402_request\",\n description:\n \"Make an HTTP request to an x402-protected endpoint. Automatically handles payment when a 402 Payment Required response is received, signing the payment transaction with the local wallet.\",\n input: z.object({\n method: z\n .enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"])\n .describe(\"HTTP method\"),\n url: z\n .string()\n .url()\n .refine((u) => u.startsWith(\"https://\"), { message: \"URL must use HTTPS\" })\n .refine(\n (u) => {\n try {\n const host = new URL(u).hostname;\n return !host.match(/^(localhost|127\\.|10\\.|172\\.(1[6-9]|2\\d|3[01])\\.|192\\.168\\.|169\\.254\\.|0\\.0\\.0\\.0|\\[::1\\])/);\n } catch { return false; }\n },\n { message: \"URL must not target private/internal addresses\" },\n )\n .describe(\n \"Full HTTPS URL of the x402-protected endpoint (e.g., 'https://agents.moonpay.com/api/x402/tools/market_digest_retrieve')\",\n ),\n body: z\n .record(z.any())\n .nullable()\n .describe(\"Request body (for POST, PUT, PATCH)\"),\n params: z.record(z.any()).nullable().describe(\"Query parameters\"),\n wallet: z.string().describe(\"Wallet name or address to pay with\"),\n }),\n output: z.object({\n status: z.number().describe(\"HTTP status code\"),\n data: z.any().describe(\"Response data\"),\n headers: z.record(z.string()).describe(\"Response headers\"),\n }),\n});\n","import { z } from \"zod\";\nimport { defineToolSchema } from \"../../../shared\";\nimport { chainSchema } from \"../../../wallet/models\";\n\nexport const virtualAccountWalletRegisterSchema = defineToolSchema({\n name: \"virtual-account_wallet_register\",\n description:\n \"Register a local wallet with your virtual account. Creates the verification message, signs it locally, and registers in one step.\",\n input: z.object({\n wallet: z.string().describe(\"Local wallet name\"),\n chain: chainSchema.describe(\"Chain to register (solana, ethereum, etc.)\"),\n }),\n output: z.object({\n success: z.literal(true),\n address: z.string().describe(\"Registered wallet address\"),\n chain: z.string().describe(\"Chain registered on\"),\n }),\n});\n","import { createTool } from \"../../../shared\";\nimport { callTool, callRemoteTool } from \"../../../../client\";\nimport { resolveBaseUrl } from \"../../../../auth\";\nimport { walletRetrieve } from \"../../../wallet/retrieve/tool\";\nimport { messageSign } from \"../../../message/sign/tool\";\nimport { KEY_CHAIN_MAP } from \"../../../wallet/models\";\nimport { virtualAccountWalletRegisterSchema } from \"./schema\";\n\nexport const virtualAccountWalletRegister = createTool(\n virtualAccountWalletRegisterSchema,\n async (params) => {\n const baseUrl = resolveBaseUrl();\n const chain = params.chain;\n\n // 1. Resolve wallet name → address\n const wallet = await walletRetrieve.handler({ wallet: params.wallet });\n const keyChain = KEY_CHAIN_MAP[chain];\n const address = wallet.addresses[keyChain];\n if (!address) {\n throw new Error(`Wallet \"${wallet.name}\" has no ${keyChain} address.`);\n }\n\n // 2. Create verification message\n const { message } = (await callTool(\n baseUrl,\n \"virtual-account_wallet_registration-message_create\",\n { wallet: address },\n )) as { message: string };\n\n // 3. Sign locally\n const { signature } = await messageSign.handler({\n wallet: wallet.name,\n chain,\n message,\n });\n\n // 4. Register with backend\n await callRemoteTool(baseUrl, \"virtual-account_wallet_register\", {\n wallet: address,\n message,\n signature,\n chain,\n });\n\n return { success: true as const, address, chain };\n },\n);\n"],"mappings":"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","names":["platform","os","english","z","z","english","z","z","z","z","z","z","Keypair","privateKeyToAccount","z","z","Keypair","privateKeyToAccount","signed","ecc","createHash","Keypair","bs58","privateKeyToAccount","z","z","signSolana","signEvm","signBitcoin","Keypair","bs58","privateKeyToAccount","createHash","z","z","findWalletOrThrow","z","z","Keypair","VersionedTransaction","z","z","Keypair","VersionedTransaction","z","z"]}
|