insumer_wallet_trust
Produce a cryptographically signed wallet trust profile by checking stablecoins, governance tokens, NFTs, and staking positions across 24 chains. Returns per-dimension pass/fail counts for AI agent trust decisions.
Instructions
Generate a structured, ECDSA-signed wallet trust fact profile. Send a wallet address, get 36 base checks across stablecoins (USDC + USDT across 21 chains), governance tokens (UNI, AAVE, ARB, OP), NFTs (BAYC, Pudgy Penguins, Wrapped CryptoPunks), and staking positions (stETH, rETH, cbETH). Up to 40 checks across 24 chains with optional Solana, XRPL, and Bitcoin wallets. Returns per-dimension pass/fail counts and overall summary. No score, no opinion — just cryptographically verifiable evidence organized by dimension. Designed for AI agent-to-agent trust decisions. Costs 3 credits (standard) or 6 credits (proof: 'merkle').
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | EVM wallet address (0x...) to profile | |
| solanaWallet | No | Solana wallet address (base58). If provided, adds USDC on Solana check. | |
| xrplWallet | No | XRPL wallet address (r-address). If provided, adds RLUSD and USDC on XRPL checks. | |
| bitcoinWallet | No | Bitcoin address. If provided, adds Bitcoin Holdings dimension (native BTC balance check). | |
| proof | No | Set to 'merkle' for EIP-1186 Merkle storage proofs on stablecoin/governance checks (6 credits). |
Implementation Reference
- src/index.ts:278-292 (registration)Registration of the 'insumer_wallet_trust' tool via server.tool() with its input schema (wallet, solanaWallet, xrplWallet, bitcoinWallet, proof) and handler that calls the API POST /trust endpoint.
server.tool( "insumer_wallet_trust", "Generate a structured, ECDSA-signed wallet trust fact profile. Send a wallet address, get 36 base checks across stablecoins (USDC + USDT across 21 chains), governance tokens (UNI, AAVE, ARB, OP), NFTs (BAYC, Pudgy Penguins, Wrapped CryptoPunks), and staking positions (stETH, rETH, cbETH). Up to 40 checks across 24 chains with optional Solana, XRPL, and Bitcoin wallets. Returns per-dimension pass/fail counts and overall summary. No score, no opinion — just cryptographically verifiable evidence organized by dimension. Designed for AI agent-to-agent trust decisions. Costs 3 credits (standard) or 6 credits (proof: 'merkle').", { wallet: z.string().describe("EVM wallet address (0x...) to profile"), solanaWallet: z.string().optional().describe("Solana wallet address (base58). If provided, adds USDC on Solana check."), xrplWallet: z.string().optional().describe("XRPL wallet address (r-address). If provided, adds RLUSD and USDC on XRPL checks."), bitcoinWallet: z.string().optional().describe("Bitcoin address. If provided, adds Bitcoin Holdings dimension (native BTC balance check)."), proof: z.enum(["merkle"]).optional().describe("Set to 'merkle' for EIP-1186 Merkle storage proofs on stablecoin/governance checks (6 credits)."), }, async (args) => { const result = await apiCall("POST", "/trust", args); return formatResult(result); } ); - src/index.ts:288-291 (handler)Handler for insumer_wallet_trust. Delegates to apiCall('POST', '/trust', args) then formats the result via formatResult().
async (args) => { const result = await apiCall("POST", "/trust", args); return formatResult(result); } - src/index.ts:281-287 (schema)Input schema for insumer_wallet_trust using Zod: wallet (required), solanaWallet, xrplWallet, bitcoinWallet (optional), and proof ('merkle' optional).
{ wallet: z.string().describe("EVM wallet address (0x...) to profile"), solanaWallet: z.string().optional().describe("Solana wallet address (base58). If provided, adds USDC on Solana check."), xrplWallet: z.string().optional().describe("XRPL wallet address (r-address). If provided, adds RLUSD and USDC on XRPL checks."), bitcoinWallet: z.string().optional().describe("Bitcoin address. If provided, adds Bitcoin Holdings dimension (native BTC balance check)."), proof: z.enum(["merkle"]).optional().describe("Set to 'merkle' for EIP-1186 Merkle storage proofs on stablecoin/governance checks (6 credits)."), }, - src/index.ts:17-40 (helper)Shared helper function apiCall() used by the handler to make authenticated POST requests to the Insumer API. Sends X-API-Key header and returns JSON response.
async function apiCall( method: string, path: string, body?: Record<string, unknown> ): Promise<{ ok: boolean; data?: unknown; error?: unknown; meta?: unknown }> { if (!apiKey) { return { ok: false, error: "INSUMER_API_KEY is not set. Call the insumer_setup tool to generate a free API key instantly, then add it to your MCP config as INSUMER_API_KEY and restart." }; } const url = `${API_BASE}${path}`; const res = await fetch(url, { method, headers: { "Content-Type": "application/json", "X-API-Key": apiKey, }, body: body ? JSON.stringify(body) : undefined, }); return res.json() as Promise<{ ok: boolean; data?: unknown; error?: unknown; meta?: unknown; }>; } - src/index.ts:61-76 (helper)Shared helper function formatResult() that wraps API responses into MCP content blocks, setting isError for failed responses.
function formatResult(result: { ok: boolean; data?: unknown; error?: unknown; meta?: unknown; }) { if (result.ok) { return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], }; } return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], isError: true, }; }