Server definition
- Hash
- sha256:00590325f1759e18bc25b029461fe72296432b72fa686a28d63e85a36cba9f96
- What it is
- What a remote MCP server returned when asked what it offers: 28 tools
The blob, as servednamed by its sha256
{
"instructions": "Liquid Agent: money tools for AI agents, paid over x402 in USDC. No account, no API key, no custody.\n- Liquid Bridge: move USDC from Base to 16 chains (Arc, Arbitrum, OP Mainnet, Polygon, Avalanche, Unichain, Linea, World Chain, Sonic, Monad, Sei, Ink, HyperEVM, XDC, Plume and Codex), or from Arc to Base, with one x402 signature; exact delivery to your own address in ~10-20 s; 1% fee plus Circle's network fee, all in the quote. Use bridge_quote, then bridge_prepare_payment and pay the returned x402 request with your wallet. Refer other agents with ref=<address> and earn 20% of the fee on-chain.\n- Tokenized US stocks on Base (NVDA, META, AAPL, GOOGL) from $1: open a vault, set weights, buy, sell, rebalance and send with the stocks_* tools (each returns an unsigned transaction you sign yourself), and a gas sponsor that lets a USDC-only wallet transact with no ETH.\n- Free utilities: usdc_balances (every CCTP chain), cctp_status (any Circle transfer), x402_check (decode a 402, verify a signed payment) and payment_readiness (can this wallet pay this endpoint).\nReads are free. The server never signs or pays for you. Docs: https://api.liquidagent.ai/v1/bridge/guide and https://api.liquidagent.ai/v1/guide",
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"amount": {
"description": "USDC to RECEIVE on the destination, e.g. \"1\" or \"25.5\". Minimum 1.",
"pattern": "^\\d+(\\.\\d{1,6})?$",
"type": "string"
},
"from": {
"description": "Chain you pay on. Omit to pick the live route to `to` (Base to any listed chain; Arc to Base).",
"enum": [
"base",
"arc"
],
"type": "string"
},
"ref": {
"description": "Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"to": {
"description": "Chain you receive on: arc, arbitrum, optimism, polygon, avalanche, unichain, linea, world, sonic, monad, sei, ink, hyperevm, xdc, plume, codex (from Base) or base (from Arc).",
"enum": [
"base",
"arc",
"optimism",
"unichain",
"sonic",
"world",
"monad",
"sei",
"xdc",
"ink",
"plume",
"polygon",
"avalanche",
"arbitrum",
"codex",
"hyperevm",
"linea"
],
"type": "string"
}
},
"required": [
"to",
"amount"
],
"type": "object"
},
"name": "bridge_prepare_payment",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"howToPay": {
"description": "Step-by-step signing instructions",
"items": {},
"type": "array"
},
"method": {
"description": "HTTP method",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"quote": {
"additionalProperties": {},
"description": "The quote behind the price",
"properties": {},
"type": "object"
},
"url": {
"description": "URL to call with the PAYMENT-SIGNATURE header",
"type": "string"
},
"x402": {
"additionalProperties": {},
"description": "The x402 payment request (accepts: scheme, network, asset, payTo, amount, EIP-712 domain)",
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Free. Exact price to move USDC with the Liquid Bridge (Base to Arc, Arbitrum, OP, Polygon, Avalanche, Unichain, Linea, World Chain, Sonic, Monad, Sei, Ink, HyperEVM, XDC, Plume, Codex; or Arc to Base): what you pay, what you receive (exactly `amount`), the fee breakdown and the ETA. No payment, no wallet needed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"amount": {
"description": "USDC to RECEIVE on the destination, e.g. \"1\" or \"25.5\". Minimum 1.",
"pattern": "^\\d+(\\.\\d{1,6})?$",
"type": "string"
},
"from": {
"description": "Chain you pay on. Omit to pick the live route to `to` (Base to any listed chain; Arc to Base).",
"enum": [
"base",
"arc"
],
"type": "string"
},
"ref": {
"description": "Optional referrer address: earns 20% of Liquid's fee. Omit if you have none.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"to": {
"description": "Chain you receive on: arc, arbitrum, optimism, polygon, avalanche, unichain, linea, world, sonic, monad, sei, ink, hyperevm, xdc, plume, codex (from Base) or base (from Arc).",
"enum": [
"base",
"arc",
"optimism",
"unichain",
"sonic",
"world",
"monad",
"sei",
"xdc",
"ink",
"plume",
"polygon",
"avalanche",
"arbitrum",
"codex",
"hyperevm",
"linea"
],
"type": "string"
}
},
"required": [
"to",
"amount"
],
"type": "object"
},
"name": "bridge_quote",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"allInCost": {
"description": "Total cost in USDC",
"type": "string"
},
"allInPct": {
"description": "Total cost as a percentage",
"type": "string"
},
"breakdown": {
"additionalProperties": {},
"description": "Fee breakdown: Circle network fee, Liquid fee, gas",
"properties": {},
"type": "object"
},
"etaSeconds": {
"description": "Typical delivery time",
"type": "number"
},
"from": {
"description": "Chain you pay on",
"type": "string"
},
"network": {
"description": "x402 network of the payment (CAIP-2)",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"pay": {
"description": "USDC you pay, all fees included",
"type": "string"
},
"payTo": {
"description": "Bridge contract that receives the x402 payment",
"type": "string"
},
"receive": {
"description": "USDC you receive, exactly the requested amount",
"type": "string"
},
"recipient": {
"description": "Who receives: the payer's own address",
"type": "string"
},
"to": {
"description": "Chain you receive on",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"description": "Referrer address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "bridge_referral_earnings",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"earnings": {
"additionalProperties": {},
"description": "Unclaimed earnings per chain",
"properties": {},
"type": "object"
},
"note": {
"description": "Notes",
"type": "string"
},
"payout": {
"description": "How and when earnings are paid",
"type": "string"
},
"referrer": {
"description": "Referrer address",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Free. Every Liquid Bridge route with its live price for 1 USDC and whether it is open.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "bridge_routes",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"routes": {
"description": "Each route: from, to, live price for 1 USDC, open or not",
"items": {},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Free. Circle attestation and mint state for a bridge, by its burn transaction hash (returned by the bridge call).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"burnTx": {
"description": "Burn transaction hash from the bridge response.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
},
"from": {
"description": "Source chain, if known.",
"enum": [
"base",
"arc"
],
"type": "string"
}
},
"required": [
"burnTx"
],
"type": "object"
},
"name": "bridge_status",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"burnTx": {
"description": "Burn transaction hash",
"type": "string"
},
"circleStatus": {
"description": "Circle attestation status",
"type": "string"
},
"delayReason": {
"description": "Why it is delayed, if it is",
"type": [
"string",
"null"
]
},
"feeExecuted": {
"description": "Circle fee actually charged",
"type": "string"
},
"forwardState": {
"description": "Circle Forwarding state",
"type": "string"
},
"from": {
"description": "Source chain",
"type": "string"
},
"mintTx": {
"description": "Mint transaction on the destination, once minted",
"type": "string"
},
"state": {
"description": "waiting | attested | minted | delayed",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"from": {
"description": "Source chain, if known (faster).",
"enum": [
"ethereum",
"avalanche",
"optimism",
"arbitrum",
"base",
"polygon",
"unichain",
"linea",
"sonic",
"worldchain",
"arc"
],
"type": "string"
},
"txHash": {
"description": "Burn transaction hash on the source chain.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"txHash"
],
"type": "object"
},
"name": "cctp_status",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"amountUsdc": {
"description": "Amount burned",
"type": "string"
},
"destinationChain": {
"description": "Destination chain",
"type": "string"
},
"feeExecutedUsdc": {
"description": "Circle fee charged",
"type": "string"
},
"forwarding": {
"description": "Uses Circle Forwarding",
"type": "boolean"
},
"found": {
"description": "Circle has a message for it",
"type": "boolean"
},
"mintRecipient": {
"description": "Who receives",
"type": "string"
},
"mintTx": {
"description": "Mint transaction when forwarded",
"type": "string"
},
"nextStep": {
"description": "What to do now",
"type": "string"
},
"receiveMessage": {
"additionalProperties": {},
"description": "When attested but not minted: contract, message and attestation to finish it yourself",
"properties": {},
"type": "object"
},
"sourceChain": {
"description": "Source chain",
"type": "string"
},
"state": {
"description": "not_found | pending_attestation | attested | minted",
"type": "string"
},
"txHash": {
"description": "Burn transaction",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "gas_sponsor_info",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"chains": {
"description": "Supported chains",
"items": {},
"type": "array"
},
"docs": {
"description": "Docs URL",
"type": "string"
},
"enabled": {
"description": "Live or not",
"type": "boolean"
},
"endpoint": {
"description": "Paid endpoint",
"type": "string"
},
"flow": {
"description": "Steps",
"items": {},
"type": "array"
},
"price": {
"description": "Price rule",
"type": "string"
},
"service": {
"description": "Service name",
"type": "string"
},
"what": {
"description": "What it does",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Free. Overview of every Liquid Agent service for agents (bridge, stocks, signals, gas sponsor), prices and where the full docs are.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "liquid_guide",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"discovery": {
"additionalProperties": {},
"description": "Machine-readable discovery URLs",
"properties": {},
"type": "object"
},
"referral": {
"description": "How referrals earn",
"type": "string"
},
"services": {
"additionalProperties": {},
"description": "Every service with price, tools and docs",
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "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).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"description": "The paying wallet.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"body": {
"additionalProperties": {},
"description": "JSON body for a POST url.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"method": {
"description": "HTTP method for url (default GET).",
"enum": [
"GET",
"POST"
],
"type": "string"
},
"requirement": {
"description": "Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.",
"maxLength": 20000,
"type": "string"
},
"url": {
"description": "The paid endpoint URL (https). It is called once, without payment, to read its 402.",
"format": "uri",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "payment_readiness",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"address": {
"description": "Payer",
"type": "string"
},
"fix": {
"additionalProperties": {},
"description": "Cheapest step to become able to pay",
"properties": {},
"type": "object"
},
"note": {
"description": "Notes",
"type": "string"
},
"options": {
"description": "Each payment option with balance and whether it is enough",
"items": {},
"type": "array"
},
"ready": {
"description": "Can pay right now",
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Returns the x402 payment request for Polymarket crypto Up/Down data (BTC, ETH, SOL, XRP; 5m and 15m; $0.004 USDC on Base, Polygon or Arc): 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. First call free: add ?free=1 to the URL for one live answer at no charge (one per agent). Pay it with your own x402 client. This tool does not pay.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"market": {
"description": "Which market: <asset>-<timeframe>.",
"enum": [
"btc-5m",
"btc-15m",
"eth-5m",
"eth-15m",
"sol-5m",
"sol-15m",
"xrp-5m",
"xrp-15m"
],
"type": "string"
},
"start": {
"description": "Optional unix start of a past window.",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"market"
],
"type": "object"
},
"name": "polymarket_prepare",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"alternatives": {
"description": "Other accepted networks",
"items": {},
"type": "array"
},
"body": {
"additionalProperties": {},
"description": "JSON body to send, for POST",
"properties": {},
"type": "object"
},
"howToPay": {
"description": "Step-by-step signing instructions",
"items": {},
"type": "array"
},
"method": {
"description": "HTTP method",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"url": {
"description": "URL to call with the PAYMENT-SIGNATURE header",
"type": "string"
},
"x402": {
"additionalProperties": {},
"description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)",
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "PAID over x402 inside this tool call ($0.004 USDC on Base, Polygon or Arc): the OFFICIAL Polymarket price to beat for the live BTC, ETH, SOL or XRP 5m/15m Up/Down window (matched to every decimal against Polymarket), the live Chainlink price and its distance, seconds left, token ids and market prices. Call it once without payment to get the x402 PaymentRequired; your x402 wallet signs it and you call again with the payment in _meta[\"x402/payment\"]. Set free=true for one free answer per agent.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"free": {
"description": "Use your one free call (per agent) instead of paying.",
"type": "boolean"
},
"market": {
"description": "Which market: <asset>-<timeframe>.",
"enum": [
"btc-5m",
"btc-15m",
"eth-5m",
"eth-15m",
"sol-5m",
"sol-15m",
"xrp-5m",
"xrp-15m"
],
"type": "string"
},
"start": {
"description": "Optional unix start of a past window (official outcome).",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"market"
],
"type": "object"
},
"name": "polymarket_price_to_beat",
"outputSchema": null
},
{
"description": "Free. What the Mint & Marquee partner shop sells (custom 3D printed figurines, statues, keychains, bag tags; soccer, anime, crypto collections), its product count and price range, and how to search it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"shop": {
"default": "mintandmarquee",
"description": "Which partner shop.",
"enum": [
"mintandmarquee"
],
"type": "string"
}
},
"type": "object"
},
"name": "shop_info",
"outputSchema": null
},
{
"description": "PAID over x402 inside this tool call ($0.001 USDC on Arc, Base or Polygon): search the Mint & Marquee partner shop for gifts and collectibles. Returns products with price, photo, a short description and a link to buy. Show the person each product with its link, then the foundWith line once. Call once without payment to get the x402 PaymentRequired, then call again with the signed payment in _meta[\"x402/payment\"].",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "How many products, 1 to 10 (default 5).",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"max": {
"description": "Optional price ceiling in USD.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "number"
},
"q": {
"description": "What to find, in words (e.g. soccer gift).",
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"name": "shop_search",
"outputSchema": null
},
{
"description": "Free. The on-chain tokenized US stock index on Base (NVDA, META, AAPL, GOOGL): live prices, fees, how to buy from $1.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "stocks_basket",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"chain": {
"description": "Chain",
"type": "string"
},
"chainId": {
"description": "Chain id",
"type": "number"
},
"constituents": {
"description": "Stocks in the basket with live prices",
"items": {},
"type": "array"
},
"factory": {
"description": "Vault factory address",
"type": "string"
},
"fees": {
"additionalProperties": {},
"description": "Fees",
"properties": {},
"type": "object"
},
"flow": {
"additionalProperties": {},
"description": "How to buy and exit",
"properties": {},
"type": "object"
},
"minDepositUsdc": {
"description": "Minimum deposit (USDC, 6 decimals)",
"type": "string"
},
"protocol": {
"description": "Protocol name",
"type": "string"
},
"tagline": {
"description": "One-line summary",
"type": "string"
},
"totalVaults": {
"description": "Vaults created",
"type": "number"
},
"usdc": {
"description": "USDC address",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"minShares": {
"description": "Optional slippage floor: minimum shares to receive.",
"pattern": "^\\d+$",
"type": "string"
},
"owner": {
"description": "Your wallet address (required with usePermit).",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"permitDeadline": {
"description": "Deadline from the permit you signed (second call).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"permitSignature": {
"description": "Your signature of the permit typedData (second call).",
"pattern": "^0x[0-9a-fA-F]+$",
"type": "string"
},
"usdc": {
"description": "USDC to invest, 6 decimals, minimum \"1000000\" ($1).",
"pattern": "^\\d+$",
"type": "string"
},
"usePermit": {
"description": "true = return an EIP-2612 permit to sign first (no approve transaction).",
"type": "boolean"
},
"vault": {
"description": "Your vault address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"vault",
"usdc"
],
"type": "object"
},
"name": "stocks_buy",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Free. Preview buying the tokenized stock basket: shares you would get and the fee for a USDC amount (USDC 6 decimals: \"2000000\" = $2).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"usdc": {
"description": "Amount in USDC-6, e.g. \"2000000\" for $2.",
"pattern": "^\\d+$",
"type": "string"
}
},
"required": [
"usdc"
],
"type": "object"
},
"name": "stocks_buy_quote",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"mintFeeUsdc": {
"description": "Mint fee (6 decimals)",
"type": "string"
},
"netUsdc": {
"description": "USDC invested after the fee",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"usdcIn": {
"description": "USDC in (6 decimals)",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "stocks_create_vault",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Free. Everything an address owns in the tokenized stock basket: each vault, its shares and current USD value.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"description": "Wallet address to look up.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "stocks_portfolio",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"agent": {
"description": "Address",
"type": "string"
},
"vaultCount": {
"description": "Vaults held",
"type": "number"
},
"vaults": {
"description": "Each vault: address, shares, value in USDC",
"items": {},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"label": {
"description": "Optional page title.",
"maxLength": 60,
"type": "string"
},
"vault": {
"description": "Vault to publish.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"vault"
],
"type": "object"
},
"name": "stocks_publish_prepare",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"alternatives": {
"description": "Other accepted networks",
"items": {},
"type": "array"
},
"body": {
"additionalProperties": {},
"description": "JSON body to send, for POST",
"properties": {},
"type": "object"
},
"howToPay": {
"description": "Step-by-step signing instructions",
"items": {},
"type": "array"
},
"method": {
"description": "HTTP method",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"url": {
"description": "URL to call with the PAYMENT-SIGNATURE header",
"type": "string"
},
"x402": {
"additionalProperties": {},
"description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)",
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"vault": {
"description": "Your vault address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"vault"
],
"type": "object"
},
"name": "stocks_rebalance",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"inKind": {
"description": "true = receive the 4 stock tokens instead of USDC.",
"type": "boolean"
},
"minUsdcOut": {
"description": "Optional slippage floor in USDC-6.",
"pattern": "^\\d+$",
"type": "string"
},
"shares": {
"description": "Shares to redeem (18 decimals; see stocks_portfolio).",
"pattern": "^\\d+$",
"type": "string"
},
"vault": {
"description": "Vault whose shares you hold.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"vault",
"shares"
],
"type": "object"
},
"name": "stocks_sell",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"shares": {
"description": "Shares to send (18 decimals).",
"pattern": "^\\d+$",
"type": "string"
},
"to": {
"description": "Recipient address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"vault": {
"description": "Vault whose shares you hold.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"vault",
"to",
"shares"
],
"type": "object"
},
"name": "stocks_send",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"vault": {
"description": "Your vault address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"weightsBps": {
"description": "4 weights in basis points summing to 10000, in the basket's constituent order (see stocks_basket).",
"items": {
"maximum": 10000,
"minimum": 0,
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
}
},
"required": [
"vault",
"weightsBps"
],
"type": "object"
},
"name": "stocks_set_weights",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"after": {
"description": "What to do after it confirms",
"type": "string"
},
"attribution": {
"additionalProperties": {},
"description": "ERC-8021 builder attribution suffix info",
"properties": {},
"type": "object"
},
"chainId": {
"description": "Chain id (8453 = Base)",
"type": "number"
},
"data": {
"description": "Calldata, sign and broadcast as-is",
"type": "string"
},
"mode": {
"description": "permit: sign typedData first",
"type": "string"
},
"next": {
"description": "What to do next",
"type": "string"
},
"steps": {
"description": "When two transactions are needed (approve, then deposit), sign and send them in order",
"items": {},
"type": "array"
},
"to": {
"description": "Contract to call",
"type": "string"
},
"typedData": {
"additionalProperties": {},
"description": "EIP-712 permit to sign off-chain (free, no gas)",
"properties": {},
"type": "object"
},
"value": {
"description": "Native value, always 0",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "PAID over x402 inside this tool call ($0.007 USDC on Base, Polygon or Arc): the whole stock basket's rebalancing signal in one call (returns, volatility, RSI, trend, relative strength and inverse-volatility target weights for NVDA, META, AAPL, GOOGL). Call once without payment to get the x402 PaymentRequired, then call again with the signed payment in _meta[\"x402/payment\"].",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"vault": {
"description": "Optional vault to tailor the signal to.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"type": "object"
},
"name": "stocks_signals",
"outputSchema": null
},
{
"description": "Returns the x402 payment request for basket signals ($0.007 USDC on Base, Polygon or Arc): 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"vault": {
"description": "Optional vault to tailor the signal to.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"type": "object"
},
"name": "stocks_signals_prepare",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"alternatives": {
"description": "Other accepted networks",
"items": {},
"type": "array"
},
"body": {
"additionalProperties": {},
"description": "JSON body to send, for POST",
"properties": {},
"type": "object"
},
"howToPay": {
"description": "Step-by-step signing instructions",
"items": {},
"type": "array"
},
"method": {
"description": "HTTP method",
"type": "string"
},
"note": {
"description": "Notes",
"type": "string"
},
"url": {
"description": "URL to call with the PAYMENT-SIGNATURE header",
"type": "string"
},
"x402": {
"additionalProperties": {},
"description": "The x402 payment request (scheme, network, asset, payTo, amount, EIP-712 domain)",
"properties": {},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Free. A basket vault's value (NAV), holdings, current vs target weights and whether it needs rebalancing.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"description": "Vault address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "stocks_vault",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"constituents": {
"description": "Holdings with current weights",
"items": {},
"type": "array"
},
"mintFeeBps": {
"description": "Mint fee",
"type": "number"
},
"nav": {
"description": "NAV in dollars",
"type": "number"
},
"navUsdc": {
"description": "Net asset value (USDC, 6 decimals)",
"type": "string"
},
"owner": {
"description": "Owner",
"type": "string"
},
"rebalanceBandBps": {
"description": "Rebalance band",
"type": "number"
},
"rebalanceNeeded": {
"description": "True when weights drifted past the band",
"type": "boolean"
},
"strategist": {
"description": "Strategist",
"type": "string"
},
"totalSupply": {
"description": "Shares outstanding",
"type": "string"
},
"vault": {
"description": "Vault address",
"type": "string"
},
"weightsBps": {
"description": "Target weights in basis points",
"items": {},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"address": {
"description": "EVM address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "usdc_balances",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"address": {
"description": "Address",
"type": "string"
},
"chains": {
"description": "Per chain: USDC and native gas balance",
"items": {},
"type": "array"
},
"hints": {
"description": "What to do next",
"items": {},
"type": "array"
},
"totalUsdc": {
"description": "USDC across all chains",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"body": {
"additionalProperties": {},
"description": "JSON body for a POST url.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"method": {
"description": "HTTP method for url (default GET).",
"enum": [
"GET",
"POST"
],
"type": "string"
},
"payment": {
"description": "Optional signed payment header value to verify.",
"maxLength": 20000,
"type": "string"
},
"requirement": {
"description": "Instead of url: the PAYMENT-REQUIRED header value (base64) or the 402 JSON body.",
"maxLength": 20000,
"type": "string"
},
"url": {
"description": "The paid endpoint URL (https). It is called once, without payment, to read its 402.",
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"name": "x402_check",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {},
"properties": {
"requirement": {
"additionalProperties": {},
"description": "Decoded payment request: options in plain English, warnings",
"properties": {},
"type": "object"
},
"verification": {
"additionalProperties": {},
"description": "If a payment was given: each facilitator check, pass/fail, and the fix",
"properties": {},
"type": "object"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:00590325f1759e18bc25b029461fe72296432b72fa686a28d63e85a36cba9f96 | sha256sum