Liquid Agent

x402 money tools for agents: one-signature USDC bridge (Base-Arc), tokenized stocks, USDC gas.

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
85%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'stocks_basket' description lacks action verbin stocks_basket
  • LOWTool 'liquid_guide' description lacks action verbin liquid_guide

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~8,645Tokens (tool definitions)
~3.1 KBTypical response size
Significant attention impact (6.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "liquid-agent": {
      "url": "https://api.liquidagent.ai/mcp"
    }
  }
}

Remote endpoints

https://api.liquidagent.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (24)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢bridge_quote(from, to, amount, ref)

Free. Exact price to move USDC between Base and Arc with the Liquid Bridge: what you pay, what you receive (exactly `amount`), the fee breakdown and the ETA. No payment, no wallet needed.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Chain you pay on. Omit to pick the live route to `to` (base -> arc, arc -> base).",
      "type": "string",
      "enum": [
        "base",
        "arc"
      ]
    },
    "to": {
      "type": "string",
      "enum": [
        "arc",
        "base"
      ],
      "description": "Chain you receive on."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+(\\.\\d{1,6})?$",
      "description": "USDC to RECEIVE on the destination, e.g. \"1\" or \"25.5\". Minimum 1."
    },
    "ref": {
      "description": "Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.",
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "to",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Chain you pay on"
    },
    "to": {
      "type": "string",
      "description": "Chain you receive on"
    },
    "receive": {
      "type": "string",
      "description": "USDC you receive, exactly the requested amount"
    },
    "pay": {
      "type": "string",
      "description": "USDC you pay, all fees included"
    },
    "recipient": {
      "type": "string",
      "description": "Who receives: the payer's own address"
    },
    "breakdown": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Fee breakdown: Circle network fee, Liquid fee, gas"
    },
    "allInCost": {
      "type": "string",
      "description": "Total cost in USDC"
    },
    "allInPct": {
      "type": "string",
      "description": "Total cost as a percentage"
    },
    "etaSeconds": {
      "type": "number",
      "description": "Typical delivery time"
    },
    "payTo": {
      "type": "string",
      "description": "Bridge contract that receives the x402 payment"
    },
    "network": {
      "type": "string",
      "description": "x402 network of the payment (CAIP-2)"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢bridge_prepare_payment(from, to, amount, ref)

Returns the exact x402 payment request for a bridge (network, asset, payTo contract, amount, EIP-712 domain) and the URL to call. Pay it with your own x402 client: sign one EIP-3009 authorization and repeat the GET with the PAYMENT-SIGNATURE header. You receive exactly `amount` at your own address on the destination. This tool does not pay or sign anything.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Chain you pay on. Omit to pick the live route to `to` (base -> arc, arc -> base).",
      "type": "string",
      "enum": [
        "base",
        "arc"
      ]
    },
    "to": {
      "type": "string",
      "enum": [
        "arc",
        "base"
      ],
      "description": "Chain you receive on."
    },
    "amount": {
      "type": "string",
      "pattern": "^\\d+(\\.\\d{1,6})?$",
      "description": "USDC to RECEIVE on the destination, e.g. \"1\" or \"25.5\". Minimum 1."
    },
    "ref": {
      "description": "Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.",
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "to",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to call with the PAYMENT-SIGNATURE header"
    },
    "method": {
      "type": "string",
      "description": "HTTP method"
    },
    "x402": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The x402 payment request (accepts: scheme, network, asset, payTo, amount, EIP-712 domain)"
    },
    "quote": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The quote behind the price"
    },
    "howToPay": {
      "type": "array",
      "items": {},
      "description": "Step-by-step signing instructions"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢bridge_routes

Free. Every Liquid Bridge route with its live price for 1 USDC and whether it is open.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "routes": {
      "type": "array",
      "items": {},
      "description": "Each route: from, to, live price for 1 USDC, open or not"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢bridge_status(burnTx, from)

Free. Circle attestation and mint state for a bridge, by its burn transaction hash (returned by the bridge call).

Input Schema

{
  "type": "object",
  "properties": {
    "burnTx": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$",
      "description": "Burn transaction hash from the bridge response."
    },
    "from": {
      "description": "Source chain, if known.",
      "type": "string",
      "enum": [
        "base",
        "arc"
      ]
    }
  },
  "required": [
    "burnTx"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "burnTx": {
      "type": "string",
      "description": "Burn transaction hash"
    },
    "from": {
      "type": "string",
      "description": "Source chain"
    },
    "state": {
      "type": "string",
      "description": "waiting | attested | minted | delayed"
    },
    "circleStatus": {
      "type": "string",
      "description": "Circle attestation status"
    },
    "forwardState": {
      "type": "string",
      "description": "Circle Forwarding state"
    },
    "mintTx": {
      "type": "string",
      "description": "Mint transaction on the destination, once minted"
    },
    "feeExecuted": {
      "type": "string",
      "description": "Circle fee actually charged"
    },
    "delayReason": {
      "description": "Why it is delayed, if it is",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢bridge_referral_earnings(address)

Free. Unclaimed Liquid Bridge referral earnings for an address on each chain, and how they are paid out. Earn by adding ref=<your address> to bridge calls: 20% of Liquid's fee.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Referrer address."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "referrer": {
      "type": "string",
      "description": "Referrer address"
    },
    "earnings": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Unclaimed earnings per chain"
    },
    "payout": {
      "type": "string",
      "description": "How and when earnings are paid"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_basket

Free. The on-chain tokenized US stock index on Base (NVDA, META, AAPL, GOOGL): live prices, fees, how to buy from $1.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "protocol": {
      "type": "string",
      "description": "Protocol name"
    },
    "tagline": {
      "type": "string",
      "description": "One-line summary"
    },
    "chain": {
      "type": "string",
      "description": "Chain"
    },
    "chainId": {
      "type": "number",
      "description": "Chain id"
    },
    "usdc": {
      "type": "string",
      "description": "USDC address"
    },
    "factory": {
      "type": "string",
      "description": "Vault factory address"
    },
    "fees": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Fees"
    },
    "minDepositUsdc": {
      "type": "string",
      "description": "Minimum deposit (USDC, 6 decimals)"
    },
    "constituents": {
      "type": "array",
      "items": {},
      "description": "Stocks in the basket with live prices"
    },
    "totalVaults": {
      "type": "number",
      "description": "Vaults created"
    },
    "flow": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "How to buy and exit"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_buy_quote(usdc)

Free. Preview buying the tokenized stock basket: shares you would get and the fee for a USDC amount (USDC 6 decimals: "2000000" = $2).

Input Schema

{
  "type": "object",
  "properties": {
    "usdc": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Amount in USDC-6, e.g. \"2000000\" for $2."
    }
  },
  "required": [
    "usdc"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "usdcIn": {
      "type": "string",
      "description": "USDC in (6 decimals)"
    },
    "mintFeeUsdc": {
      "type": "string",
      "description": "Mint fee (6 decimals)"
    },
    "netUsdc": {
      "type": "string",
      "description": "USDC invested after the fee"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_vault(address)

Free. A basket vault's value (NAV), holdings, current vs target weights and whether it needs rebalancing.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Vault address."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "description": "Vault address"
    },
    "owner": {
      "type": "string",
      "description": "Owner"
    },
    "strategist": {
      "type": "string",
      "description": "Strategist"
    },
    "navUsdc": {
      "type": "string",
      "description": "Net asset value (USDC, 6 decimals)"
    },
    "nav": {
      "type": "number",
      "description": "NAV in dollars"
    },
    "totalSupply": {
      "type": "string",
      "description": "Shares outstanding"
    },
    "weightsBps": {
      "type": "array",
      "items": {},
      "description": "Target weights in basis points"
    },
    "constituents": {
      "type": "array",
      "items": {},
      "description": "Holdings with current weights"
    },
    "rebalanceNeeded": {
      "type": "boolean",
      "description": "True when weights drifted past the band"
    },
    "rebalanceBandBps": {
      "type": "number",
      "description": "Rebalance band"
    },
    "mintFeeBps": {
      "type": "number",
      "description": "Mint fee"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_portfolio(address)

Free. Everything an address owns in the tokenized stock basket: each vault, its shares and current USD value.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Wallet address to look up."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "type": "string",
      "description": "Address"
    },
    "vaultCount": {
      "type": "number",
      "description": "Vaults held"
    },
    "vaults": {
      "type": "array",
      "items": {},
      "description": "Each vault: address, shares, value in USDC"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_create_vault

Free. Opens your own vault for the tokenized US stock basket (NVDA, META, AAPL, GOOGL), controlled only by you. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds. After it confirms, find the vault with stocks_portfolio.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_set_weights(vault, weightsBps)

Free. Sets your vault's target allocation across the 4 stocks in basis points (sum 10000), e.g. [4000, 3000, 2000, 1000]. Default is equal weight. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Your vault address."
    },
    "weightsBps": {
      "minItems": 4,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      },
      "description": "4 weights in basis points summing to 10000, in the basket's constituent order (see stocks_basket)."
    }
  },
  "required": [
    "vault",
    "weightsBps"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_buy(vault, usdc, owner, minShares, usePermit, ...)

Free. Invest USDC into your vault from $1 (USDC 6 decimals: "1000000" = $1). Easiest: set usePermit=true with owner, sign the returned typedData off-chain (free), then call again with permitDeadline + permitSignature to get ONE deposit transaction. Without a permit you get two transactions (approve, then deposit). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Your vault address."
    },
    "usdc": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "USDC to invest, 6 decimals, minimum \"1000000\" ($1)."
    },
    "owner": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Your wallet address (required with usePermit)."
    },
    "minShares": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Optional slippage floor: minimum shares to receive."
    },
    "usePermit": {
      "description": "true = return an EIP-2612 permit to sign first (no approve transaction).",
      "type": "boolean"
    },
    "permitDeadline": {
      "description": "Deadline from the permit you signed (second call).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "permitSignature": {
      "description": "Your signature of the permit typedData (second call).",
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]+$"
    }
  },
  "required": [
    "vault",
    "usdc"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_sell(vault, shares, minUsdcOut, inKind)

Free. Cash out: redeem basket shares to USDC, or take the raw stock tokens in-kind (works any block, no vault needed, anyone holding shares can sell). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Vault whose shares you hold."
    },
    "shares": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Shares to redeem (18 decimals; see stocks_portfolio)."
    },
    "minUsdcOut": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Optional slippage floor in USDC-6."
    },
    "inKind": {
      "description": "true = receive the 4 stock tokens instead of USDC.",
      "type": "boolean"
    }
  },
  "required": [
    "vault",
    "shares"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_rebalance(vault)

Free. Brings your vault back to its target weights (check stocks_vault: rebalanceNeeded). Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Your vault address."
    }
  },
  "required": [
    "vault"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_send(vault, to, shares)

Free. Transfer your tokenized stock basket shares to any wallet or another agent; they can hold, sell or forward them, no vault needed. Returns an UNSIGNED transaction {to, data, value, chainId} on Base; nothing happens until you sign it with your own wallet and broadcast it. Liquid never holds keys or funds.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Vault whose shares you hold."
    },
    "to": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Recipient address."
    },
    "shares": {
      "type": "string",
      "pattern": "^\\d+$",
      "description": "Shares to send (18 decimals)."
    }
  },
  "required": [
    "vault",
    "to",
    "shares"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "number",
      "description": "Chain id (8453 = Base)"
    },
    "to": {
      "type": "string",
      "description": "Contract to call"
    },
    "data": {
      "type": "string",
      "description": "Calldata, sign and broadcast as-is"
    },
    "value": {
      "type": "string",
      "description": "Native value, always 0"
    },
    "steps": {
      "type": "array",
      "items": {},
      "description": "When two transactions are needed (approve, then deposit), sign and send them in order"
    },
    "mode": {
      "type": "string",
      "description": "permit: sign typedData first"
    },
    "typedData": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "EIP-712 permit to sign off-chain (free, no gas)"
    },
    "next": {
      "type": "string",
      "description": "What to do next"
    },
    "after": {
      "type": "string",
      "description": "What to do after it confirms"
    },
    "attribution": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "ERC-8021 builder attribution suffix info"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_signals_prepare(vault)

Returns the x402 payment request for basket signals ($0.005 USDC on Base or Polygon): rebalancing signal, momentum and suggested weights for NVDA/META/AAPL/GOOGL in one call. Pay it with your own x402 client. This tool does not pay.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Optional vault to tailor the signal to."
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to call with the PAYMENT-SIGNATURE header"
    },
    "method": {
      "type": "string",
      "description": "HTTP method"
    },
    "body": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "JSON body to send, for POST"
    },
    "x402": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)"
    },
    "alternatives": {
      "type": "array",
      "items": {},
      "description": "Other accepted networks"
    },
    "howToPay": {
      "type": "array",
      "items": {},
      "description": "Step-by-step signing instructions"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢polymarket_prepare(market, start)

Returns the x402 payment request for Polymarket crypto Up/Down data (BTC, ETH, SOL, XRP; 5m and 15m; $0.002 USDC on Base or Polygon): the OFFICIAL price to beat for the live 5m or 15m window (matched to the cent against Polymarket's results), the live Chainlink price and its distance from the price to beat, seconds left, token ids and market prices. Pass start (unix) for a past window's official outcome. Pay it with your own x402 client. This tool does not pay.

Input Schema

{
  "type": "object",
  "properties": {
    "market": {
      "type": "string",
      "enum": [
        "btc-5m",
        "btc-15m",
        "eth-5m",
        "eth-15m",
        "sol-5m",
        "sol-15m",
        "xrp-5m",
        "xrp-15m"
      ],
      "description": "Which market: <asset>-<timeframe>."
    },
    "start": {
      "description": "Optional unix start of a past window.",
      "type": "string",
      "pattern": "^\\d+$"
    }
  },
  "required": [
    "market"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to call with the PAYMENT-SIGNATURE header"
    },
    "method": {
      "type": "string",
      "description": "HTTP method"
    },
    "body": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "JSON body to send, for POST"
    },
    "x402": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)"
    },
    "alternatives": {
      "type": "array",
      "items": {},
      "description": "Other accepted networks"
    },
    "howToPay": {
      "type": "array",
      "items": {},
      "description": "Step-by-step signing instructions"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢stocks_publish_prepare(vault, label)

Returns the x402 payment request to publish a live, shareable portfolio page for a vault for 24 hours ($0.01 USDC on Base or Polygon). Pay it with your own x402 client. This tool does not pay.

Input Schema

{
  "type": "object",
  "properties": {
    "vault": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Vault to publish."
    },
    "label": {
      "description": "Optional page title.",
      "type": "string",
      "maxLength": 60
    }
  },
  "required": [
    "vault"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to call with the PAYMENT-SIGNATURE header"
    },
    "method": {
      "type": "string",
      "description": "HTTP method"
    },
    "body": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "JSON body to send, for POST"
    },
    "x402": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)"
    },
    "alternatives": {
      "type": "array",
      "items": {},
      "description": "Other accepted networks"
    },
    "howToPay": {
      "type": "array",
      "items": {},
      "description": "Step-by-step signing instructions"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢usdc_balances(address)

Free. USDC balance (and native gas balance) of an address on every CCTP chain at once: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, Polygon PoS, Unichain, Linea, Sonic, World Chain, Arc. Use it before paying or bridging to see where your money is.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "EVM address."
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Address"
    },
    "totalUsdc": {
      "type": "string",
      "description": "USDC across all chains"
    },
    "chains": {
      "type": "array",
      "items": {},
      "description": "Per chain: USDC and native gas balance"
    },
    "hints": {
      "type": "array",
      "items": {},
      "description": "What to do next"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢cctp_status(txHash, from)

Free. Status of ANY Circle CCTP v2 USDC transfer (not only Liquid's) by its burn transaction hash: attestation, whether it was minted on the destination, and exactly how to finish a stuck one (receiveMessage with the message and attestation). Chains: Ethereum, Avalanche, OP Mainnet, Arbitrum, Base, Polygon PoS, Unichain, Linea, Sonic, World Chain, Arc.

Input Schema

{
  "type": "object",
  "properties": {
    "txHash": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$",
      "description": "Burn transaction hash on the source chain."
    },
    "from": {
      "description": "Source chain, if known (faster).",
      "type": "string",
      "enum": [
        "ethereum",
        "avalanche",
        "optimism",
        "arbitrum",
        "base",
        "polygon",
        "unichain",
        "linea",
        "sonic",
        "worldchain",
        "arc"
      ]
    }
  },
  "required": [
    "txHash"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "txHash": {
      "type": "string",
      "description": "Burn transaction"
    },
    "found": {
      "type": "boolean",
      "description": "Circle has a message for it"
    },
    "state": {
      "type": "string",
      "description": "not_found | pending_attestation | attested | minted"
    },
    "sourceChain": {
      "type": "string",
      "description": "Source chain"
    },
    "destinationChain": {
      "type": "string",
      "description": "Destination chain"
    },
    "amountUsdc": {
      "type": "string",
      "description": "Amount burned"
    },
    "feeExecutedUsdc": {
      "type": "string",
      "description": "Circle fee charged"
    },
    "mintRecipient": {
      "type": "string",
      "description": "Who receives"
    },
    "mintTx": {
      "type": "string",
      "description": "Mint transaction when forwarded"
    },
    "forwarding": {
      "type": "boolean",
      "description": "Uses Circle Forwarding"
    },
    "nextStep": {
      "type": "string",
      "description": "What to do now"
    },
    "receiveMessage": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "When attested but not minted: contract, message and attestation to finish it yourself"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢x402_check(url, method, body, requirement, payment)

Free. Decode any x402 payment request (from a URL, a PAYMENT-REQUIRED header or a 402 body) into plain English with warnings, and optionally verify a signed payment (PAYMENT-SIGNATURE / X-PAYMENT header) the way a facilitator would: recipient, amount, time window, EIP-712 signature against the token's real domain, nonce reuse and balance. Every failed check comes with the fix.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "description": "The paid endpoint URL (https). It is called once, without payment, to read its 402.",
      "type": "string",
      "format": "uri"
    },
    "method": {
      "description": "HTTP method for url (default GET).",
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ]
    },
    "body": {
      "description": "JSON body for a POST url.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "requirement": {
      "description": "Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.",
      "type": "string",
      "maxLength": 20000
    },
    "payment": {
      "description": "Optional signed payment header value to verify.",
      "type": "string",
      "maxLength": 20000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "requirement": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Decoded payment request: options in plain English, warnings"
    },
    "verification": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "If a payment was given: each facilitator check, pass/fail, and the fix"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢payment_readiness(address, url, method, body, requirement)

Free. One call to know if a wallet can pay an x402 endpoint right now: reads the endpoint's 402, checks the wallet's balance on each accepted network, and if it cannot pay, returns the cheapest fix (e.g. move USDC from the chain where it sits, with the exact bridge_quote arguments).

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "The paying wallet."
    },
    "url": {
      "description": "The paid endpoint URL (https). It is called once, without payment, to read its 402.",
      "type": "string",
      "format": "uri"
    },
    "method": {
      "description": "HTTP method for url (default GET).",
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ]
    },
    "body": {
      "description": "JSON body for a POST url.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "requirement": {
      "description": "Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.",
      "type": "string",
      "maxLength": 20000
    }
  },
  "required": [
    "address"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Payer"
    },
    "ready": {
      "type": "boolean",
      "description": "Can pay right now"
    },
    "options": {
      "type": "array",
      "items": {},
      "description": "Each payment option with balance and whether it is enough"
    },
    "fix": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Cheapest step to become able to pay"
    },
    "note": {
      "type": "string",
      "description": "Notes"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢gas_sponsor_info

Free. How to send a transaction on Base, Polygon or Solana with a wallet that holds USDC but no ETH/POL/SOL: the x402-paid gas sponsor, its price rule (from $0.03) and lanes.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "description": "Service name"
    },
    "what": {
      "type": "string",
      "description": "What it does"
    },
    "price": {
      "type": "string",
      "description": "Price rule"
    },
    "enabled": {
      "type": "boolean",
      "description": "Live or not"
    },
    "endpoint": {
      "type": "string",
      "description": "Paid endpoint"
    },
    "chains": {
      "type": "array",
      "items": {},
      "description": "Supported chains"
    },
    "flow": {
      "type": "array",
      "items": {},
      "description": "Steps"
    },
    "docs": {
      "type": "string",
      "description": "Docs URL"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}
🟢liquid_guide

Free. Overview of every Liquid Agent service for agents (bridge, stocks, signals, gas sponsor), prices and where the full docs are.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "services": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Every service with price, tools and docs"
    },
    "referral": {
      "type": "string",
      "description": "How referrals earn"
    },
    "discovery": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "Machine-readable discovery URLs"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded24 tools