Integration hub

Connect your AI agent — step by step

Three things, once: 1) get an agent key, 2) pick the method your agent supports, 3) drop in the snippet. Everything is non-custodial.

Verify we're live: /health · machine-readable capability card.

What you can — and can't — do

✅ Can

  • Swap on Base (gasless micro) and real cross-chain to native BTC, USDT (TRC20/ERC20), XMR.
  • Pay any Base address (USDC/ETH/…) — you sign & broadcast.
  • Accept payments (commerce): products, checkouts, hosted page + QR.
  • Run subscriptions, meter usage, raise invoices.
  • Charge/pay per call (x402 USDC, L402 Lightning).
  • Refund orders; emergency EXCHANGE/REFUND on stuck cross-chain swaps.
  • Get signed webhooks + an events feed; read caps + activity.
  • Be funded via a fiat on-ramp link (or a direct crypto transfer).

🚫 Can't (by design)

  • We never hold your funds — money moves wallet-to-wallet.
  • Nothing moves without your signature — we only build/verify.
  • Can't exceed the per-tx / daily / per-minute limits you set (a cap of 0 = no limit).
  • Can't pay with a card by itself — a human completes the fiat on-ramp payment.
  • No true hold-and-release escrow yet (needs an audited on-chain contract — deferred).
  • Closed consumer agents with no tool API can only receive (via a checkout link).

What you need before you start

  1. An agent key (from the operator) — it carries your per-tx, daily and per-minute caps.
  2. Your own wallet — register its public address (/wallet/register). Private keys stay in your SDK, never with us.
  3. est_usd on value calls — pass the USD value on swap / pay / cross-chain so caps apply (required, > 0).
  4. Funds in the wallet — send crypto to it, or use a funding link (step 4 below).
  5. Optional: a webhook URL (public HTTPS) for push events; a merchant wallet if you'll receive payments.

1 · Find your agent

2 · What you can call

Once connected, your agent has the full surface — every part non-custodial:

🔄 Swap

Base micro-swaps (/swap/*) + real cross-chain BTC/USDT/XMR (/ff/*), incl. emergency/refund.

📤 Pay anyone

Build a payment to any Base address (/pay) — within your limits; you sign & broadcast.

🧾 Commerce

Merchants, products, checkouts, confirm, refund, deliver (/commerce/*).

🔁 Billing

Subscriptions + usage metering + invoices (/billing/*).

⚡ Pay-per-call

x402 (USDC) + L402 (Lightning) metered access.

🔔 Events

Signed webhooks + events feed (/events, /webhooks/*).

👛 Wallet

Session keys, caps, allow-lists, kill switch (/wallet/*).

🏦 Funding

Fiat→crypto on-ramp link to the agent wallet (/fund/link).

📊 Visibility

Caps (/limits), activity (/activity) + a read-only human dashboard.

3 · Connection methods

MCP

Model Context Protocol (MCP)

Agents/clients that speak MCP.
  1. Get an agent key from the operator (admin → AI Agent API).
  2. Add our MCP server to your client. Tool discovery (tools/list) is public; authenticated tool calls are signed with your key.
  3. For clients that can't sign each call themselves, run the open-source SDK signer in front (it adds the HMAC).
{
  "mcpServers": {
    "acechange": {
      "url": "https://www.acechange.io/wp-json/acechange-agent/v1/mcp"
    }
  }
}
Functions

Function / tool calling

OpenAI-style tools (function calling).
  1. Import our ready tool schemas: agent-wallet/examples/openai-functions.json.
  2. Expose them as tools to your model.
  3. Your backend signs each call (METHOD\nROUTE\nTS\nBODY, HMAC) — or use the SDK which signs for you.
// tools = JSON.parse(read('openai-functions.json'))
// on tool call → POST to the AceChange REST endpoint, signed with your key
SDK

Open-source SDK (Python / TypeScript)

Frameworks & custom agents (LangChain, CrewAI, AutoGPT, …).
  1. Install the SDK and load your agent key (the SDK holds the wallet keys, never us).
  2. Register the AceChange tools with your framework (a LangChain example ships in the repo).
  3. Call swap / pay / cross-chain / commerce — the SDK signs every request.
pip install acechange-agent-wallet     # Python
npm i @acechange/agent-wallet          # TypeScript
REST

Direct REST API

Any backend / enterprise platform (OpenAPI actions).
  1. Sign each request: HMAC-SHA256 of "METHOD\nROUTE\nTS\nBODY" keyed by hex(sha256(secret)).
  2. Send X-Ace-Agent-Key / -Timestamp / -Sign headers.
  3. Call the endpoint (e.g. POST /ff/create for a real BTC/USDT swap).
curl -X POST .../wp-json/acechange-agent/v1/ff/create \
  -H 'X-Ace-Agent-Key: ag_…' -H 'X-Ace-Agent-Timestamp: …' -H 'X-Ace-Agent-Sign: …' \
  -d '{"from":"USDC","to":"BTC","amount":100,"toAddress":"bc1q…","est_usd":100}'
No-code

No-code automation (Zapier / n8n / Lindy)

Automation platforms with an HTTP step.
  1. Add an "HTTP Request" action pointing at the AceChange REST endpoint.
  2. Put the signed auth headers in the request (compute the HMAC in a small code step).
  3. To only RECEIVE money, skip the API entirely — just share your hosted checkout link.
HTTP Request → POST /wp-json/acechange-agent/v1/pay
Headers: X-Ace-Agent-Key, X-Ace-Agent-Timestamp, X-Ace-Agent-Sign

4 · Fund your agent

The agent spends from its OWN wallet, so give it crypto first — two ways:

① Send crypto directly

Send to the agent's registered wallet address (right coin + network). Instant, nothing extra needed — works for BTC / USDC / ETH / etc.

② Fiat on-ramp link

GET /fund/link?wallet=&amount=&crypto=&network= (or MCP ace_fund) → a card/bank → crypto link pre-filled to the agent wallet. A human completes the payment; the crypto lands in the wallet. Needs the operator's on-ramp key.

Non-custodial: funds go straight to the agent wallet — never through AceChange.

5 · Get a key & go live

Ask the operator for an agent key (it carries your spend limits). Then your bot can swap, pay, accept payments and pay-per-call. A human can watch it live via a read-only activity link.

Full reference: the human-readable API documentation (every endpoint, MCP tool, event and error code), the machine-readable capability card, and the open-source SDK on GitHub (Python & TypeScript — read exactly how it signs & that keys stay local).

A worked example: a $25/day API-paying agent

Here is the whole flow, end to end, for a common case — a LangChain or CrewAI agent that needs to call a paid data API and must stay inside a budget you set.

  1. Get a key. The operator issues you an agent key carrying hard caps — for example $25 per transaction and $100 per day.
  2. Create the wallet. Install the SDK and run AgentWallet.create(). The private key is generated and AES-256-GCM-encrypted on your machine — it never reaches AceChange.
  3. Register the policy. Send the wallet’s public address plus a session policy (per-tx, daily, allowed tokens). We store only that — never a key.
  4. Let it pay. When the API replies 402 Payment Required, your agent runs the x402 flow, signs the USDC authorization locally, and retries. The request goes through and the API gets paid — in real USDC, for a fraction of a cent.
  5. Watch it live. Every payment, fee and status appears on the read-only activity dashboard you can share with a human.

The agent paid a real API, in real money, inside a budget you controlled — and at no point did AceChange hold, route or freeze the funds.

What each capability is for

A plain-language note on when to reach for each one.

Pay anyone

One-off transfers: settle an invoice, pay a supplier or another agent. Use when you know the recipient address and amount.

Micro-swap (Base)

Convert between tokens on Base with no minimum — e.g. turn ETH into USDC before paying. Gasless; the agent signs the 0x payload.

Cross-chain swap

When you must pay in native BTC, USDT (TRC20/ERC20) or XMR. Has a per-pair minimum; you deposit from your own wallet.

x402 / L402

Charge or pay per request — metered access to an API or content. x402 = USDC on Base; L402 = Bitcoin Lightning.

Commerce

Sell something: register your receive wallet, list a product, take a checkout that pays your wallet directly.

Subscriptions & invoicing

Recurring or usage-based billing. We raise an invoice each cycle; the payer settles — never an auto-debit.

Marcus Richardson — Founder & Privacy Research Lead · www.linkedin.com · Last updated June 19, 2026