Skip to main content

Getting Started

Three access paths share the same REST API. Pick the one that matches your application:

API Key

Sign up at app.onesource.io/signup, subscribe to the Developer plan, and authenticate with a Bearer API key. Predictable per-month pricing billed through Stripe. Your plan sets an account-wide request quota, shared across every key you create.

curl https://api.onesource.io/api/chain/network-info \
-H "Authorization: Bearer sk_your_api_key_here"

API key setup guide

MCP Server

If your workflow is in Claude Code, Claude Desktop, Cursor, or Windsurf, install the @one-source/mcp MCP server. It exposes the OneSource REST API as 30 MCP tools, all prefixed 1s_ (live-chain tools end in _live).

claude mcp add onesource -e ONESOURCE_API_KEY=sk_… -- npx -y @one-source/mcp@latest

Works with either an API key (Bearer) or an x402 wallet (X402_PRIVATE_KEY).

MCP setup guide

x402 / MPP

Pay per call from an agent wallet, no signup. Two protocols:

  • x402 on Base mainnet, paid in USDC. Use the @x402/fetch client or AgentCash.
  • MPP on Tempo, paid in USDC.e (or pathUSD). Tempo CLI or MPP-aware fetch clients work.

Per-endpoint pricing is published in meta.cost_usdc on every response and in the x-payment-info extension on each OpenAPI operation.

x402 / MPP setup guide

Verify Access

Whichever path you pick, the same one-call sanity check works for all of them:

curl https://api.onesource.io/api/chain/network-info \
-H "Authorization: Bearer $ONESOURCE_API_KEY"

Expected response:

{
"data": { "chain_id": "0x1", "block_number": "0x14abcde", "gas_price": "0x3b9aca00" },
"error": null,
"meta": { "endpoint": "/api/chain/network-info", "request_id": "..." }
}

Calls run against Ethereum mainnet by default. Add ?network=sepolia to any /api/chain/* request to target the Sepolia testnet instead. See Choosing a network.