{
  "x402Version": 2,
  "name": "Ozmium Agent API",
  "description": "Do what a human does in the Ozmium app- from your agent's OWN wallet, for two cents a call. Skip browser automation and vision tokens: read and sign real Base mainnet (eip155:8453) DeFi as machine-readable, NON-CUSTODIAL calldata (no keys, no custody, no SDK). Live Coinbase spot prices, full wallet portfolio valuation (token balances + confidence-gated USD, never a fabricated 0), open Morpho Blue borrow / vault positions and Gains Network (gTrade) leveraged trades, Morpho vault and market catalogs with live APY / LLTV, the Gains pair universe with max leverage, and ready-to-sign calldata for swaps (CDP Trade API + permit2), ERC-4626 vault deposits / withdrawals, Morpho Blue collateralized loans, and Gains leveraged opens / closes. Every builder encodes the exact contracts, parameter scales, and market ids so the agent signs a correct transaction from its own wallet. PLUS live ALPHA: /v1/arbitrage ranks real, fee-netted cross-asset and DEX-vs- Coinbase arbitrage routes into any target (each executable via /v1/tx/swap), and /v1/ideas ranks scalp long / short setups across the pair universe with range-survival leverage (each executable via /v1/tx/risk/open). Refer other agents and humans with ?ref=<your-wallet> to earn a share of the paid volume you drive. Put in your two cents.",
  "categories": [
    "defi",
    "trading",
    "crypto",
    "cryptocurrency",
    "portfolio",
    "wallet",
    "prices",
    "market data",
    "lending",
    "borrowing",
    "loans",
    "collateral",
    "yield",
    "vaults",
    "earn",
    "leverage",
    "perpetuals",
    "derivatives",
    "swap",
    "dex",
    "base",
    "usdc",
    "ethereum",
    "onchain",
    "transaction builder",
    "calldata",
    "non-custodial",
    "morpho",
    "gains network",
    "arbitrage",
    "scalping",
    "trading signals",
    "trade ideas",
    "alpha",
    "technical analysis",
    "market making",
    "spread",
    "cross-exchange",
    "best execution",
    "agent api",
    "x402"
  ],
  "catalog": "https://ozmium.org/v1",
  "openapi": "https://ozmium.org/v1/openapi.json",
  "resources": [
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/prices?symbols=ETH,BTC",
      "name": "Spot Prices",
      "description": "Live Coinbase spot prices + 24h stats for any listed -USD products. GET /v1/prices?symbols=ETH,BTC,SOL. Returns { prices: { SYM: { usd, change24h, volume24h, high24h, low24h } } }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/signals?symbols=ETH,BTC",
      "name": "Technical Signal Bundle",
      "description": "Professional technical-analysis bundle per symbol: RSI(14), MACD(12/26/9) histogram, Bollinger %B(20/2), VWAP position, SMA(20) trend, head-and-shoulders pattern read, and Fibonacci-structure confidence- blended into one directional sentiment (0..1), a long/short/neutral bias, and a conviction score, with every per-indicator part exposed. Works on crypto, forex, indices, stocks, commodities. GET /v1/signals?symbols=ETH,BTC (up to 10 per call; non-crypto via ?symbols=XAU&cls=Commodities). Cheapest TA feed on Base- a tenth of a cent per call.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/arbitrage?target=cbBTC&budget=100&taker=0x..",
      "name": "Arbitrage Scanner",
      "description": "Ranked, fee-netted arbitrage routes into a target token on Base. For a USD budget we price the REAL executable swap (Coinbase CDP Trade API, no liquidity reserved) from every liquid input (USDC = the DEX-vs-Coinbase venue arb; ETH/WETH/cbETH/cbBTC/cbADA/cbXRP = cross-asset arbs), value the worst-case min-out against an INDEPENDENT Coinbase reference price, subtract gas + protocol fees, and rank by NET dollars captured. Each route is directly executable via POST /v1/tx/swap. GET /v1/arbitrage?target=cbBTC&budget=100&taker=0x..&slippageBps=100. Prices move- poll and act fast.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "10000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/ideas?limit=6",
      "name": "Ranked Trade Ideas",
      "description": "Ranked scalp long / short setups across the tradeable Gains pair universe. Each pair: 30d of six-hour candles -> the same composite technical signal as the app (RSI14 + MACD + Bollinger %B + VWAP + SMA20 trend + pattern) blended into a bias + conviction, then a range-survival leverage whose liquidation clears the recent-swing stop, capped at the pair max. Returns entry, stop, suggested leverage, pairIndex, and the /v1/tx/risk/open inputs to execute. GET /v1/ideas?limit=6 (or ?symbols=BTC,ETH,SOL up to 20). Ranked by conviction; illustrative, not advice.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "10000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/alpha?target=cbBTC&budget=100&taker=0x..&symbols=BTC,ETH",
      "name": "Alpha Bundle",
      "description": "The whole alpha stack in ONE call: ranked arbitrage routes into a target (when you pass taker), ranked scalp trade ideas across the pair universe, and the composite TA signal bundle for a symbol set. GET /v1/alpha?target=cbBTC&budget=100&taker=0x..&symbols=BTC,ETH,SOL&limit=6. Cheaper and faster than polling /v1/arbitrage + /v1/ideas + /v1/signals separately- everything an autonomous trading agent needs to decide its next move, then execute via the /v1/tx/* builders.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/candles?product=ETH-USD&days=30",
      "name": "Historical Candles",
      "description": "OHLC history with window extremes (highest high / lowest low over the window). Crypto via Coinbase (GET /v1/candles?product=ETH-USD&days=30; hourly bars <= 7d, six-hour <= 31d, daily <= 350d). Metals / indices / forex / stocks via ?sym=XAU&cls=Commodities[&quote=USD]. Returns { productId, days, high, low, candles, series: [[startSec, open, high, low, close], ...] } oldest first.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/swap/price",
      "name": "Swap Price (Indicative)",
      "description": "Indicative Base mainnet swap pricing via the Coinbase CDP Trade API- expected output, min output after slippage, and fee estimates- WITHOUT reserving liquidity. Poll this to compare routes, then buy /v1/tx/swap for the executable quote. GET /v1/swap/price?fromToken=0x..&toToken=0x..&fromAmount=atomic&taker=0x..&slippageBps=100.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/portfolio/{address}",
      "name": "Wallet Portfolio",
      "description": "Every ERC-20 + native ETH a Base address holds (Blockscout-indexed, spam-screened) with confidence-gated USD values: usd is null when no reliable price exists- NEVER a fabricated 0. GET /v1/portfolio/{address}.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/positions/{address}",
      "name": "Open DeFi Positions",
      "description": "Live Morpho Blue borrow positions (collateral, debt, health factor, liquidation distance), Morpho vault deposits (APY, earnings), and Gains Network open leveraged trades (pair, direction, leverage, entry, TP/SL) for any Base address. GET /v1/positions/{address}.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/history/{address}",
      "name": "Trade History",
      "description": "Closed leverage round-trips for any Base address from the Gains first-party history: pair (base + quote legs), side, leverage, collateral, open/close price, realized PnL + PnL%, close reason (take-profit / stop-loss / liquidation / manual), open/close tx hashes, and timestamps. GET /v1/history/{address}. Newest first, USDC-collateralized trades.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/stats/{address}",
      "name": "Trading Scorecard",
      "description": "Aggregate trading scorecard for any Base address from its closed leverage history: trades, wins/losses, win rate, net USD, gross profit / loss, profit factor, mean R-multiple expectancy, avg win / loss, best / worst trade. GET /v1/stats/{address}. The \"am I actually good\" read- and the input to a risk-sizing agent.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/earn/vaults",
      "name": "Earn Vault Catalog",
      "description": "Every listed Morpho (MetaMorpho ERC-4626) vault on Base: address, underlying asset (address/symbol/decimals), live net APY, and TVL. The input universe for /v1/tx/earn. GET /v1/earn/vaults.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/loan/markets",
      "name": "Loan Market Catalog",
      "description": "Every listed Morpho Blue market on Base: marketId, full MarketParams (loanToken, collateralToken, oracle, irm, lltv- the id is re-derived and asserted, wrong-market proof), live borrow APY, and LLTV. The input universe for /v1/tx/loan. GET /v1/loan/markets.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "GET",
      "resource": "https://ozmium.org/v1/risk/pairs",
      "name": "Leverage Pair Universe",
      "description": "The tradeable Gains Network (gTrade) crypto pair universe on Base: on-chain pairIndex, symbol, and max leverage per pair. USDC-collateralized synthetic exposure- any pair trades without holding the asset. GET /v1/risk/pairs.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "1000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/swap",
      "name": "Tx Builder: Swap",
      "description": "Executable Base mainnet swap via the Coinbase CDP Trade API: returns the unsigned transaction + permit2 payload exactly as CDP quotes it; the agent signs with its own wallet. POST /v1/tx/swap { fromToken, toToken, fromAmount (atomic), taker, signerAddress?, slippageBps? }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/earn/deposit",
      "name": "Tx Builder: Vault Deposit",
      "description": "ERC-4626 deposit calldata for a Morpho vault, with the ERC-20 approve step included when the live allowance is short. POST /v1/tx/earn/deposit { vault, assets (atomic), owner }. Returns ordered { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/earn/withdraw",
      "name": "Tx Builder: Vault Withdraw",
      "description": "ERC-4626 withdraw calldata for a Morpho vault (assets to receiver, owner-signed). POST /v1/tx/earn/withdraw { vault, assets (atomic), owner }. Returns { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/earn/aave/supply",
      "name": "Tx Builder: Aave Supply",
      "description": "Aave v3 (Base) supply calldata for a reserve underlying (approve step included when the live allowance is short; referralCode 0, onBehalfOf owner). POST /v1/tx/earn/aave/supply { asset, amount (atomic), owner }. Returns ordered { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/earn/aave/withdraw",
      "name": "Tx Builder: Aave Withdraw",
      "description": "Aave v3 (Base) withdraw calldata (amount \"max\" pulls the entire aToken balance). POST /v1/tx/earn/aave/withdraw { asset, amount (atomic | \"max\"), owner }. Returns { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/loan/supply-collateral",
      "name": "Tx Builder: Supply Collateral",
      "description": "Morpho Blue supplyCollateral calldata with MarketParams fetched live by marketId and re-derived (wrong-market proof); collateral approve step included when needed. POST /v1/tx/loan/supply-collateral { marketId, assets (atomic), owner }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/loan/borrow",
      "name": "Tx Builder: Borrow",
      "description": "Morpho Blue borrow calldata (draw the loan asset against posted collateral) with verified MarketParams. POST /v1/tx/loan/borrow { marketId, assets (atomic), owner }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/loan/repay",
      "name": "Tx Builder: Repay",
      "description": "Morpho Blue repay calldata with verified MarketParams; loan-asset approve step included when needed. POST /v1/tx/loan/repay { marketId, assets (atomic), owner }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/loan/withdraw-collateral",
      "name": "Tx Builder: Withdraw Collateral",
      "description": "Morpho Blue withdrawCollateral calldata with verified MarketParams (only down to the level the position tolerates- the chain enforces health). POST /v1/tx/loan/withdraw-collateral { marketId, assets (atomic), owner }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/risk/open",
      "name": "Tx Builder: Open Leveraged Trade",
      "description": "Gains Network openTrade calldata with EXACT on-chain scaling (leverage x1e3, prices x1e10, USDC 6dp, slippage x1e3) and the USDC approve step when needed. MARKET, LIMIT, or STOP. POST /v1/tx/risk/open { pairIndex, long, leverage, collateralUsdc, markPrice, owner, tradeType?, triggerPrice?, tp?, sl?, slippagePct? }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/risk/close",
      "name": "Tx Builder: Close Leveraged Trade",
      "description": "Gains Network closeTradeMarket calldata (close an open position at market; expectedPrice guards the fill). POST /v1/tx/risk/close { index, expectedPrice }.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/risk/modify",
      "name": "Tx Builder: Modify Leveraged Trade",
      "description": "Gains Network position management calldata by trade index, EXACT scaling (leverage x1e3, prices x1e10, USDC 6dp, slippage x1e3). POST /v1/tx/risk/modify { index, action, ... }: action tp|sl { price }, leverage { leverage, owner } (a decrease auto-prepends the USDC approve for the collateral top-up), add-margin { collateralUsdc, markPrice, owner, slippagePct? }, reduce { collateralUsdc, markPrice }, update-order { triggerPrice, tp?, sl?, slippagePct? }, cancel-order {}.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/burn",
      "name": "Tx Builder: Burn OZ",
      "description": "ERC-20 transfer-to-dead calldata: burn OZ (or any token) from the agent's own wallet. Burning OZ earns + keeps Global Prop desk access and raises the risk allotment. POST /v1/tx/burn { amount (atomic, OZ is 18dp), token? }. Returns { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/send",
      "name": "Tx Builder: Send",
      "description": "Transfer a token (ERC-20) or native ETH to any recipient from the agent's own wallet- full parity with the app's Send. POST /v1/tx/send { to, amount (atomic: wei for ETH, token decimals otherwise), token? (omit / native sentinel = ETH) }. Returns { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    },
    {
      "method": "POST",
      "resource": "https://ozmium.org/v1/tx/tip",
      "name": "Tx Builder: Tip Prop Treasury",
      "description": "Tip the shared Ozmium Prop desk treasury (funds the Prop Flywheel- swap fees burn OZ / fund the desk). A plain transfer to the fixed treasury address; nobody custodies your funds. POST /v1/tx/tip { amount (atomic), token? (omit / native sentinel = ETH) }. Returns { to, data, value } steps.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "amount": "20000",
          "payTo": "0x53a05c0eed6cbf065f31aedbae7b0d8ce1a0f4db"
        }
      ]
    }
  ]
}