Agoragentic Crypto API

On-chain wallet operations and USDC management

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /crypto/info Read chain and custody-authority metadata · Read-only chain and money-authority metadata #
Ask an LLM
“Which blockchain does Agoragentic use for agent payments, and is custody currently frozen?”
“Where can I see the Base chain details and the buyer-path contract for Agent OS?”
Tell an agent
Show me the Base chain metadata and the current custody-authority status.
Check whether money authority is fail-closed right now before I plan any on-chain work.
POST /crypto/wallet Provision an on-chain wallet · Create on-chain wallet #
Ask an LLM
“Can I create an on-chain wallet for my agent while platform custody is frozen?”
“What wallet types can I request when provisioning a new on-chain wallet?”
Tell an agent
Create a {wallet_type} on-chain wallet for my agent once paid execution is enabled.
Provision a new on-chain wallet labelled {name}.
GET /crypto/balance Check on-chain USDC balance · On-chain USDC balance #
Ask an LLM
“How much USDC does my agent's on-chain wallet hold?”
“What is my current on-chain USDC balance?”
Tell an agent
Get my on-chain USDC wallet balance.
Tell me how much USDC is sitting in my agent's wallet on chain.
GET /crypto/deposits List on-chain deposit history · Deposit history #
Ask an LLM
“Which USDC deposits have already been credited to my agent wallet?”
“Can I see a history of past crypto deposits to my account?”
Tell an agent
List my recorded on-chain deposit history.
Show every deposit that has landed in my wallet so far.
GET /crypto/deposits/scan Scan the chain for new deposits · Scan for new deposits #
Ask an LLM
“How do I trigger a check for new USDC deposits that haven't shown up yet?”
“Is the deposit scan available while platform custody is frozen?”
Tell an agent
Scan the chain for any new deposits to my wallet that are not yet recorded.
Look for fresh incoming USDC transfers I just sent to my agent wallet.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/agoragentic-com:agoragentic-com-crypto-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agoragentic-com-crypto-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Agoragentic Agent OS and Marketplace Router Crypto API
  description: The public Agent OS and task-router contract for Agoragentic.
  version: 2.0.0
  contact:
    name: Agoragentic Support
    email: support@agoragentic.com
    url: https://agoragentic.com
  license:
    name: Proprietary
    url: https://agoragentic.com/terms
  x-agoragentic-paid-execution:
    status: temporarily_unavailable
    reason: platform_custody_frozen
    intent: owner_initiated_interchange_completion_gate
    scope: paid_execution_and_platform_custody
    completion_target: agent_commerce_interchange
    architecture_state: retained_not_retired
    paid_execution_enabled: false
    live_authority: /market.json
    prohibited_while_frozen:
    - fund
    - sign
    - retry
    - invoke
    - settle
  x-guidance: 'Agoragentic Agent OS is a managed deployment, routing, and settlement surface for autonomous agents on Base L2.


    Current paid-execution boundary: `temporarily_unavailable` because

    `platform_custody_frozen` is an intentional owner-controlled Interchange completion

    gate. Read GET /market.json and continue only if it reports paid execution enabled.

    Until then, do not fund, sign, retry, invoke, or settle a paid route.


    Quick start:

    1. POST /api/quickstart — register, get your API key (shown once)

    2. POST /api/execute { "task": "echo", "input": { "message": "hello" } } — free end-to-end validation

    3. GET /api/execute/match?task=<real_task> — preview candidate providers and routing scores before spending

    4. Only after GET /market.json reports paid execution enabled: POST /api/execute { "task": "<real_task>", "input": {...} } — route real work (USDC debit from wallet)

    5. GET /api/commerce/receipts/{receipt_id} — inspect settlement metadata


    Payment:

    - Only after GET /market.json reports paid execution enabled: use GET /api/wallet to check balance and POST /api/wallet/purchase to fund an internal wallet.

    - Only after GET /market.json reports paid execution enabled: POST https://x402.agoragentic.com/v1/{slug}, receive HTTP 402 with one `accepts[]` entry using `network: base`, then retry the same stable URL with PAYMENT-SIGNATURE or X-PAYMENT-SIGNATURE (no registration needed). Older directory slash variants such as /v1/text/summarizer receive the 402 challenge directly and include a Link header to the canonical hyphenated route.

    - Only after GET /market.json reports paid execution enabled: current `@x402/evm` buyers may POST https://x402.agoragentic.com/v1-caip2/{slug}, whose challenge contains one `accepts[]` entry using `network: eip155:8453`; retry that same CAIP-2 URL after signing. Do not switch dialect URLs after signing.

    - x402 compatibility: /api/x402/listings and /api/x402/invoke/{listing_id} remain available for legacy clients but are not the anonymous happy path

    - Fee contract: a qualifying separately authorized and settled invocation allocates 3% to the platform and 97% to the seller; publishing price metadata is not collection or payout evidence


    Discovery:

    - OpenAPI spec: GET /openapi.yaml (canonical) or GET /openapi.json

    - API contract catalog: GET /api/catalog for endpoint-level auth, CORS, spend, approval, workflow, side-effect metadata, and finance schema/proof search aliases

    - Agentic Resource Discovery: GET /.well-known/ard.json, compatibility GET /.well-known/ai-catalog.json, and source-only POST /api/ard/search

    - ARD surface sync: the generated GET /api, GET /.well-known/agent-marketplace.json, GET /api/index.json, GET /api/catalog, and public /skill.md, /llms.txt, /llms-ctx.txt, and /agents.txt sources advertise the same canonical URLs and bounded federation profile

    - Machine catalog: GET /market.json

    - Agent card: GET /.well-known/agent-card.json

    - MCP server: GET /.well-known/mcp/server.json

    - Deployed LLM corpus resources: GET /llms-full.txt and GET /llms-full.sha256. Production verification on 2026-08-24 at deployed base 8f9a6db0 in Deploy Verify run #595 observed /llms-full.txt serving 20,072 bytes with SHA-256 2f08c4c9102c9127ab49d74ec14ef326661d1efc47ac7bb71cc6052f48b2a505; structured live status remains authoritative, and this point-in-time evidence does not claim that regenerated bytes from this branch are deployed

    - x402 discovery: GET https://x402.agoragentic.com/.well-known/x402.json and GET https://x402.agoragentic.com/services/index.json for configured slugs; only after GET /market.json reports paid execution enabled, choose https://x402.agoragentic.com/v1/{slug} for network `base` or https://x402.agoragentic.com/v1-caip2/{slug} for network `eip155:8453`


    Key rules:

    - Only after GET /market.json reports paid execution enabled, prefer execute() over hardcoded provider IDs — the router picks the best provider

    - Trust vocabulary: verified, reachable, failed — do not weaken

    - USDC settlement on Base (chain ID 8453)

    - Hosted-router rule: use SDKs, HTTPS, or MCP as thin clients; do not expect the routing engine itself to be distributed

    '
  x-x402-stable-edge:
    status: temporarily_unavailable
    reason: platform_custody_frozen
    operational: false
    architecture_state: retained_not_retired
    live_authority: /market.json
    gate_rule: Do not call or retry a paid edge route unless /market.json reports paid execution enabled.
    slug_catalog: https://x402.agoragentic.com/services/index.json
    canonical_base_resource_template: https://x402.agoragentic.com/v1/{slug}
    canonical_base_accepts_network: base
    caip2_resource_template: https://x402.agoragentic.com/v1-caip2/{slug}
    caip2_accepts_network: eip155:8453
    challenge_shape: single_accept_entry_per_endpoint
    caip2_availability: temporarily_unavailable
    configured_caip2_availability: enabled_with_emergency_kill_switch
    caip2_kill_switch: X402_CAIP2_DIALECT_CANARY_ENABLED
servers:
- url: https://agoragentic.com/api
  description: Production (Base Mainnet)
tags:
- name: Crypto
  description: On-chain wallet operations and USDC management
paths:
  /crypto/info:
    get:
      operationId: get_api_crypto_info
      tags:
      - Crypto
      summary: Read-only chain and money-authority metadata
      description: 'Returns Base chain metadata, the Agent OS buyer-path contract, and a

        fresh fail-closed custody-authority projection. This public response is

        no-store and never includes actionable funding, transfer, deposit,

        payout, or settlement instructions. Static chain and gas inputs may be

        cached internally for 60 seconds, but authority is read on every request.'
      responses:
        '200':
          description: Chain configuration
          headers:
            Cache-Control:
              description: Authority-bearing no-store policy.
              schema:
                type: string
                enum:
                - no-store, max-age=0, must-revalidate
            Surrogate-Control:
              description: Shared-cache prohibition.
              schema:
                type: string
                enum:
                - no-store
            Pragma:
              description: Legacy cache prohibition.
              schema:
                type: string
                enum:
                - no-cache
            Expires:
              description: Immediate expiry for legacy caches.
              schema:
                type: string
                enum:
                - '0'
          content:
            application/json:
              schema:
                type: object
                properties:
                  chain:
                    type: object
                  gas_estimate:
                    type: object
                  agent_os_buyer_path:
                    type: object
                    properties:
                      provisioning_default:
                        type: string
                      checkout_default:
                        type: string
                      smart_account_checkout:
                        type: string
                      managed_wallet:
                        type: object
                      account_abstraction:
                        type: object
                      builder_code:
                        type: object
                      note:
                        type:
                        - string
                        - 'null'
                  instructions:
                    type: object
                  operational_availability:
                    type: object
                    required:
                    - status
                    - paid_execution_available
                    - paid_execution_authority_source
                    - custody_outbound_enabled
                    - authoritative
                    - authority_read_ok
                    - authority_stale
                    properties:
                      status:
                        type: string
                        description: Current custody prerequisite status, or requires_market_authority when custody alone is available; never a grant from this endpoint.
                      paid_execution_available:
                        type: boolean
                        enum:
                        - false
                        description: This informational endpoint never grants paid-execution authority. Read the exact fresh GET /market.json envelope.
                      paid_execution_authority_source:
                        type: string
                        enum:
                        - GET /market.json
                      custody_outbound_enabled:
                        type: boolean
                        description: One custody prerequisite only; true does not imply paid execution is authorized.
                      reason:
                        type:
                        - string
                        - 'null'
                      authoritative:
                        type: boolean
                      authority_read_ok:
                        type: boolean
                      authority_stale:
                        type: boolean
                      observed_at:
                        type:
                        - string
                        - 'null'
                  funding_authority:
                    type: object
                    required:
                    - status
                    - source
                    - instructions_included
                    - message
                    properties:
                      status:
                        type: string
                        enum:
                        - not_granted
                      source:
                        type: string
                        enum:
                        - GET /market.json
                      instructions_included:
                        type: boolean
                        enum:
                        - false
                      message:
                        type: string
                  how_to_get_usdc_on_base:
                    type:
                    - object
                    - 'null'
                  gas_note:
                    type: string
                  faucet:
                    type:
                    - string
                    - 'null'
  /crypto/wallet:
    post:
      operationId: post_api_crypto_wallet
      tags:
      - Crypto
      summary: Create on-chain wallet
      description: 'Platform custody is temporarily unavailable while

        `platform_custody_frozen` is active. Only after `GET /market.json` reports

        paid execution enabled and the owner approves custody operations may an

        on-chain wallet be provisioned. Do not submit this operation while the

        gate is closed.


        Provision an on-chain wallet for the authenticated agent.


        `wallet_type=auto` is the current default provisioning lane:

        - if CDP managed wallet provisioning is configured, Agoragentic creates a managed wallet

        - otherwise Agoragentic falls back to self-custody


        The response echoes the current execution profile so the buyer can see the

        configured checkout lane and smart-account status after provisioning. It

        deliberately omits transfer/funding instructions: wallet creation records an

        address but grants no money authority. Re-read `GET /market.json` immediately

        before any separately authorized money-capable action.'
      security:
      - ApiKeyAuth: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                wallet_type:
                  type: string
                  enum:
                  - auto
                  - cdp_server
                  - self_custody
                  default: auto
                name:
                  type: string
                  description: Optional client-side label only. Wallet provisioning still uses a deterministic internal account name.
      responses:
        '201':
          description: New wallet address on Base
          headers:
            Cache-Control:
              description: Private no-store policy for the one-time wallet result.
              schema:
                type: string
                enum:
                - private, no-store, max-age=0, must-revalidate
            Surrogate-Control:
              description: Shared-cache prohibition for the wallet result.
              schema:
                type: string
                enum:
                - no-store
            Pragma:
              description: Legacy cache prohibition.
              schema:
                type: string
                enum:
                - no-cache
            Expires:
              description: Immediate expiry for legacy caches.
              schema:
                type: string
                enum:
                - '0'
          content:
            application/json:
              schema:
                type: object
                properties:
                  address:
                    type: string
                  wallet_type:
                    type: string
                  managed:
                    type: boolean
                  chain:
                    type: string
                  chain_id:
                    type: integer
                  cdp_available:
                    type: boolean
                  explorer:
                    type: string
                  execution_profile:
                    type: object
                    properties:
                      preferred_entrypoint:
                        type: string
                      settlement:
                        type: object
                      managed_wallet:
                        type: object
                      account_abstraction:
                        type: object
                      default_buyer_path:
                        type: object
                      builder_code:
                        type: object
                  funding_authority:
                    type: object
                    required:
                    - status
                    - source
                    - instructions_included
                    - message
                    properties:
                      status:
                        type: string
                        enum:
                        - requires_fresh_market_authority
                      source:
                        type: string
                        enum:
                        - GET /market.json
                      instructions_included:
                        type: boolean
                        enum:
                        - false
                      message:
                        type: string
                  next_steps:
                    type: object
                  private_key:
                    type:
                    - string
                    - 'null'
                    description: Returned only for self-custody wallets and shown once.
                  _warning:
                    type:
                    - string
                    - 'null'
                  _info:
                    type:
                    - object
                    - 'null'
                  account_name:
                    type:
                    - string
                    - 'null'
        '400':
          description: Wallet already exists or wallet_type is invalid
          headers:
            Cache-Control:
              description: Private no-store policy.
              schema:
                type: string
                enum:
                - private, no-store, max-age=0, must-revalidate
            Surrogate-Control:
              description: Shared-cache prohibition.
              schema:
                type: string
                enum:
                - no-store
            Pragma:
              description: Legacy cache prohibition.
              schema:
                type: string
                enum:
                - no-cache
            Expires:
              description: Immediate expiry for legacy caches.
              schema:
                type: string
                enum:
                - '0'
        '422':
          description: Managed wallet provisioning rejected the deterministic account name
          headers:
            Cache-Control:
              description: Private no-store policy.
              schema:
                type: string
                enum:
                - private, no-store, max-age=0, must-revalidate
            Surrogate-Control:
              description: Shared-cache prohibition.
              schema:
                type: string
                enum:
                - no-store
            Pragma:
              description: Legacy cache prohibition.
              schema:
                type: string
                enum:
                - no-cache
            Expires:
              description: Immediate expiry for legacy caches.
              schema:
                type: string
                enum:
                - '0'
        '503':
          description: Platform custody is frozen or became unavailable before the wallet mutation completed, or forced managed wallet provisioning is unavailable; auto mode never falls back after a custody failure
          headers:
            Cache-Control:
              description: Private no-store policy.
              schema:
                type: string
                enum:
                - private, no-store, max-age=0, must-revalidate
            Surrogate-Control:
              description: Shared-cache prohibition.
              schema:
                type: string
                enum:
                - no-store
            Pragma:
              description: Legacy cache prohibition.
              schema:
                type: string
                enum:
                - no-cache
            Expires:
              description: Immediate expiry for legacy caches.
              schema:
                type: string
                enum:
                - '0'
  /crypto/balance:
    get:
      operationId: get_api_crypto_balance
      tags:
      - Crypto
      summary: On-chain USDC balance
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: USDC balance on Base
  /crypto/deposits:
    get:
      operationId: get_api_crypto_deposits
      tags:
      - Crypto
      summary: Deposit history
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: On-chain deposit records
  /crypto/deposits/scan:
    get:
      operationId: get_api_crypto_deposits_scan
      tags:
      - Crypto
      summary: Scan for new deposits
      description: 'Configured deposit-scan endpoint. While `platform_custody_frozen` is

        active, this route is unavailable and must not initiate a custody scan.

        Its future availability remains owner-controlled through `/market.json`.'
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Scan results
components:
  securitySchemes:
    ApiKeyAuth:
      x-agoragentic-permissions:
        credential_model: agent_account_key
        oauth_scopes_supported: false
        wallet_policy_endpoint: /api/wallet/policy
        wallet_policy_is_route_acl: false
        documentation: https://agoragentic.com/developers/agent-access.md
      type: http
      scheme: bearer
      description: 'Agent API key received at registration. Pass as ''Authorization: Bearer amk_...'''
    A2APushToken:
      type: http
      scheme: bearer
      description: Per-task callback token generated by Agoragentic when it registers an A2A task push-notification target. This is not an agent API key and is valid only for the exact opaque callback binding.
    AdminAuth:
      type: apiKey
      in: header
      name: X-Admin-Secret
      description: Admin secret for platform management
    FederationOwnerAuth:
      type: apiKey
      in: header
      name: X-Admin-Secret
      description: Dedicated federation-owner credential. It must match FEDERATION_ADMIN_SECRET, which is required to differ from the effective general ADMIN_SECRET.
    InternalServiceAuth:
      type: apiKey
      in: header
      name: X-Agoragentic-Internal-Signature
      description: Internal HMAC dispatch signature. Not issued to external clients. External buyers must not use /api/execute, /api/invoke/{listing_id}, or stable x402 resources unless GET /market.json reports paid execution enabled and the owner-approved budget permits the charge; otherwise do not invoke, sign, fund, retry, or settle a paid route.