{
  "name": "ADEXTO Launchpad",
  "description": "Launches a token market on a bonding curve for the calling agent, on Monad, Arbitrum One, Robinhood Chain, Base, Arc or 0G. The agent signs with its own key: this server returns the attestation message and the unsigned launch transaction and never holds a key. Gas only, all supply inside the curve, no liquidity deposit, 0.70% of every trade to the creator on the standard fee preset. Also sells any listed market for USDC on Base over x402 (the a2a-x402 extension): the buyer signs an EIP-3009 authorization with its own wallet and the curve sends the tokens straight to it, with no gas on the market's chain. Also lists markets and reads one market.",
  "supportedInterfaces": [
    {
      "url": "https://adexto.xyz/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://adexto.xyz/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "provider": {
    "organization": "ADEXTO",
    "url": "https://adexto.xyz"
  },
  "iconUrl": "https://adexto.xyz/brand/adexto-512.png",
  "version": "1.0.0",
  "documentationUrl": "https://adexto.xyz/agents",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2",
        "description": "buy_token is paid with x402: USDC on Base, EIP-3009 transferWithAuthorization, Standalone Flow (payment terms and payload in message metadata).",
        "required": false
      }
    ]
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "launch_market",
      "name": "Launch a market",
      "description": "A multi-turn task. Send a data part {skill:'launch_market', chainId, name, symbol, deployer, agentId?, description?}. The task returns TASK_STATE_INPUT_REQUIRED with attestationMessage: sign it with personal_sign (EIP-191) from deployer and reply on the same task with {attestationSignature}. The message ends with an acceptance of the ADEXTO Terms and Acceptable Use Policy (adexto.xyz/terms), so signing it is the deployer's acceptance. The task then returns the unsigned launch transaction as an artifact: send it from deployer (value 0, gas only) and reply with {txHash}. When it is mined the market is listed and the task completes with the market artifact.",
      "tags": [
        "launch",
        "token",
        "bonding-curve",
        "erc-8004",
        "evm"
      ],
      "examples": [
        "{\"skill\":\"launch_market\",\"chainId\":143,\"name\":\"Signal Desk\",\"symbol\":\"SIGDSK\",\"deployer\":\"0xYourAddress\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "buy_token",
      "name": "Buy a market with USDC on Base (x402)",
      "description": "A two-turn task on the a2a-x402 v0.2 extension. Send a data part {skill:'buy_token', symbol, chainId, to}. The task returns TASK_STATE_INPUT_REQUIRED with metadata x402.payment.status 'payment-required' and x402.payment.required {x402Version, accepts}. Sign the EIP-3009 transferWithAuthorization in accepts[0] (USDC on Base, exact amount, to payTo) with your own wallet and reply on the same task with metadata {x402.payment.status:'payment-submitted', x402.payment.payload:{x402Version, scheme, network, payload:{signature, authorization}}}. The curve on the market's chain sends the tokens to `to` first, then the USDC settles on Base; the task completes with x402.payment.receipts. You never need gas on the market's chain, and this server never signs anything.",
      "tags": [
        "buy",
        "x402",
        "usdc",
        "base",
        "cross-chain"
      ],
      "examples": [
        "{\"skill\":\"buy_token\",\"symbol\":\"LOOP\",\"chainId\":42161,\"to\":\"0xYourAddress\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "list_markets",
      "name": "List markets",
      "description": "Every listed ADEXTO market: symbol, chain, token, curve, price in the native asset and page URL. Data part {skill:'list_markets'}.",
      "tags": [
        "markets",
        "read"
      ],
      "examples": [
        "{\"skill\":\"list_markets\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_market",
      "name": "Get a market",
      "description": "One market by ticker, optionally on one chain. Data part {skill:'get_market', symbol, chainId?}.",
      "tags": [
        "markets",
        "read"
      ],
      "examples": [
        "{\"skill\":\"get_market\",\"symbol\":\"LOOP\",\"chainId\":143}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "protocolVersion": "0.3",
  "url": "https://adexto.xyz/api/a2a",
  "preferredTransport": "JSONRPC"
}