Skip to content
Back to Suwappu

Card snapshot

api.suwappu.bot · 2026-07-05 00:07:20 UTC · 704ad20857f133a4e41d92f4648ddcbc86e65b53be32476e01153b4386968189

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "$schema": "https://specs.a2aprotocol.ai/agent-card.json",
  "id": "suwappu-dex",
  "name": "Suwappu",
  "description": "Cross-chain DEX for AI agents. Swap tokens across 14 chains via natural language.",
  "version": "0.5.0",
  "url": "https://api.suwappu.bot",
  "logo": "https://suwappu.bot/logo.png",
  "openApiUrl": "https://api.suwappu.bot/v1/agent/openapi",
  "protocolVersions": [
    "0.3"
  ],
  "interfaces": [
    {
      "type": "JSON-RPC",
      "baseUrl": "https://api.suwappu.bot/a2a",
      "version": "1.0"
    }
  ],
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "description": "Register at POST /v1/agent/register to get an API key (suwappu_sk_...)"
    }
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": true,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/a2a-x402",
        "description": "x402 pay-per-call support: paid tools/endpoints may return an HTTP 402 payment challenge (x402 protocol, USDC on Base) instead of failing on insufficient prepaid credit balance.",
        "required": false
      }
    ]
  },
  "authentication": {
    "schemes": [
      "bearer"
    ],
    "credentials": null
  },
  "defaultInputModes": [
    "text"
  ],
  "defaultOutputModes": [
    "text"
  ],
  "skills": [
    {
      "id": "swap",
      "name": "Token Swap",
      "description": "Swap tokens across 14 chains (12 EVM + Solana + TRON)",
      "tags": [
        "defi",
        "swap",
        "trading",
        "cross-chain"
      ],
      "examples": [
        "swap 0.5 ETH to USDC on Base",
        "swap 100 USDC to SOL on Solana",
        "bridge 500 USDC from Ethereum to Arbitrum"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "quote",
      "name": "Get Quote",
      "description": "Get a swap quote without executing",
      "tags": [
        "defi",
        "quote",
        "price"
      ],
      "examples": [
        "quote 1 ETH to USDC",
        "price of 100 USDC in ETH"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "portfolio",
      "name": "Portfolio Check",
      "description": "Check token balances across all chains",
      "tags": [
        "balance",
        "portfolio",
        "wallet"
      ],
      "examples": [
        "check balance",
        "show portfolio"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "prices",
      "name": "Token Prices",
      "description": "Get real-time token prices with 24h change",
      "tags": [
        "defi",
        "price",
        "market-data"
      ],
      "examples": [
        "get ETH price",
        "check SOL and USDC prices"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "tokens",
      "name": "Token Discovery",
      "description": "List available tokens per chain for quoting and swapping",
      "tags": [
        "defi",
        "tokens",
        "discovery"
      ],
      "examples": [
        "list tokens on Base",
        "search for USD tokens"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "key-management",
      "name": "API Key Management",
      "description": "Rotate API keys for security",
      "tags": [
        "security",
        "keys"
      ],
      "examples": [
        "rotate my API key"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    },
    {
      "id": "webhook-management",
      "name": "Webhook Management",
      "description": "List webhook delivery events and test webhook endpoints",
      "tags": [
        "webhooks",
        "notifications"
      ],
      "examples": [
        "list webhook events",
        "test my webhook"
      ],
      "inputModes": [
        "text"
      ],
      "outputModes": [
        "text"
      ]
    }
  ],
  "provider": {
    "organization": "Suwappu",
    "url": "https://suwappu.bot"
  },
  "supportedChains": [
    {
      "id": 1,
      "name": "Ethereum",
      "native": "ETH"
    },
    {
      "id": 56,
      "name": "BSC",
      "native": "BNB"
    },
    {
      "id": 137,
      "name": "Polygon",
      "native": "MATIC"
    },
    {
      "id": 42161,
      "name": "Arbitrum",
      "native": "ETH"
    },
    {
      "id": 10,
      "name": "Optimism",
      "native": "ETH"
    },
    {
      "id": 8453,
      "name": "Base",
      "native": "ETH"
    },
    {
      "id": 43114,
      "name": "Avalanche",
      "native": "AVAX"
    },
    {
      "id": 250,
      "name": "Fantom",
      "native": "FTM"
    },
    {
      "id": 59144,
      "name": "Linea",
      "native": "ETH"
    },
    {
      "id": 5000,
      "name": "Mantle",
      "native": "MNT"
    },
    {
      "id": 100,
      "name": "Gnosis",
      "native": "xDAI"
    },
    {
      "id": 534352,
      "name": "Scroll",
      "native": "ETH"
    },
    {
      "id": "solana",
      "name": "Solana",
      "native": "SOL"
    },
    {
      "id": "tron",
      "name": "TRON",
      "native": "TRX"
    },
    {
      "id": 4217,
      "name": "Tempo",
      "native": "USD"
    }
  ]
}