PHANTOM ID — agent payments (USDC on Base)

io.github.Arbromagency-SatoPublished by GitHub account Arbromagency-Satov0.3.2Updated Nov 11, 2026

PHANTOM ID MCP payment server: agent-to-agent USDC payments on Base.

The publisher's own server: Payments Ai Mcp

VerifiedStreamable HTTPWeb executableFinanceAI & ML

Overview

AI-generated overview

Lets an AI assistant quote, authorize, submit and verify agent-to-agent USDC payments on Base through the IDPHANTOM platform.

What you can do
  • Quote payments with a transparent platform fee and get a signable payment intent
  • Attach a locally produced payer signature to authorize a quoted intent
  • Broadcast an authorized intent so the platform relays the on-chain transaction and settles funds
  • Verify payment receipts, including signature, payer recovery, expiry and on-chain authorization state
  • Register an account and bind a portable agent identity
  • Set funder-signed spending budgets with an optional daily cap
When to use it
Use it when an agent needs to pay another agent or service in USDC on Base and you want quoting, spending limits, settlement and receipt verification handled through one API. It is not a general wallet or trading tool.
Requirements
Either the remote endpoint or the npm package run locally with Node.js via npx. An IDPHANTOM account and API key in PHANTOM_API_KEY (or an Authorization header); PHANTOM_API_URL is optional and defaults to production. Registration and budget tools need PHANTOM_PAYER_PRIVATE_KEY, PHANTOM_FUNDER_PRIVATE_KEY and PHANTOM_ROUTER_ADDRESS in the environment. Registration costs $2 USDC on Base mainnet.
Before you install
The server asks for wallet private keys (PHANTOM_PAYER_PRIVATE_KEY, PHANTOM_FUNDER_PRIVATE_KEY, PHANTOM_IDENTITY_PRIVATE_KEY) in the environment; anyone with them controls the funds. Registration and payments spend real USDC on Base mainnet, and submit_payment settles funds. The API key is shown only once, so store it securely. Default limits are 50 USD per payment and 500 USD per day. The server writes funnel event lines to stderr.

Installation

In SourceWeft

  1. Open PHANTOM ID — agent payments (USDC on Base) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Arbromagency-Sato%2Fphantom-mcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "phantom-id-agent-payments-usdc-on-base": {
      "type": "http",
      "url": "https://pay.idphantom.com/mcp"
    }
  }
}

README

IDPHANTOM MCP Server

@phantomid/mcp-server exposes IDPHANTOM payments as standard MCP tools so an AI agent can quote, authorize, submit, and verify agent-to-agent payments through IDPHANTOM.

Production defaults to:

text
https://pay.idphantom.com

Install

sh
npx @phantomid/mcp-server

For MCP clients, configure the server command and environment:

json
{  "mcpServers": {    "phantom-id": {      "command": "npx",      "args": ["@phantomid/mcp-server"],      "env": {        "PHANTOM_API_URL": "https://pay.idphantom.com",        "PHANTOM_API_KEY": "pk_live_..."      }    }  }}

PHANTOM_API_URL is optional when using production. PHANTOM_API_KEY is required for normal paid API usage after registration.

Self-serve tools environment (AGP-100)

The MCP tools phantom_register and phantom_authorize_budget read their signing keys only from the environment (never from command-line flags — argv leaks into shell history and process listings):

VariableUsed byPurpose
PHANTOM_PAYER_PRIVATE_KEYphantom_register (auto mode)Pays the $2 USDC registration; signs locally, never leaves the process.
PHANTOM_FUNDER_PRIVATE_KEYphantom_authorize_budgetHuman funder's key for the EIP-712 AgentWalletAuthorization.
PHANTOM_ROUTER_ADDRESSbothPhantomRouter verifying contract of the EIP-712 domain.
PHANTOM_FUNNEL_SOURCEfunnelinternal for dogfood/QA traffic (reported separately — wash volume prohibited); default external.

Without PHANTOM_PAYER_PRIVATE_KEY, phantom_register runs in manual mode: pass payer_wallet and it returns the registration challenge plus step-by-step signing instructions.

Funnel events (AGP-100 F1.4)

The server emits one JSON line per event on stderr, prefixed with [funnel]:

text
[funnel] {"event":"install","ts":"...","source":"external",...}

Events: install → register_start → register_complete → first_pay → repeat. Scrape these lines to build the onboarding funnel (install → register → first pay → repeat). Traffic tagged PHANTOM_FUNNEL_SOURCE=internal must be aggregated separately from external volume.

Connect Your Agent In 5 Minutes

Registration is self-serve and costs $2 USDC on Base mainnet. The CLI signs locally and never prints the private key.

sh
export PHANTOM_PAYER_PRIVATE_KEY="0x..."export PHANTOM_ROUTER_ADDRESS="0x..."npx @phantomid/mcp-server init --name my-agent

The init flow calls:

  1. POST /v1/register
  2. POST /v1/intents/:id/authorize
  3. POST /v1/intents/:id/submit
  4. GET /v1/register/:reference
  5. POST /v1/register/:reference/claim

On success it prints the account id and the API key once. Store the returned key as PHANTOM_API_KEY.

Flags are supported for non-sensitive options. The payer key is environment-only (never a flag — command lines leak into shell history and process listings):

sh
export PHANTOM_PAYER_PRIVATE_KEY="0x..."npx @phantomid/mcp-server init \  --api-url https://pay.idphantom.com \  --router-address 0x... \  --name my-agent

Tools

The server supports newline-delimited JSON-RPC over stdio.

quote_payment

json
{  "jsonrpc": "2.0",  "id": 1,  "method": "tools/call",  "params": {    "name": "quote_payment",    "arguments": {      "payer_wallet": "0x...",      "recipient_wallet": "0x...",      "asset_contract": "0x...",      "amount": "1000000",      "chain_id": 8453,      "idempotency_key": "quote-001",      "payer_agent_id": "buyer-agent",      "recipient_agent_id": "seller-agent"    }  }}

authorize_payment

json
{  "jsonrpc": "2.0",  "id": 2,  "method": "tools/call",  "params": {    "name": "authorize_payment",    "arguments": {      "payment_intent_id": "pi_...",      "payer_signature": "0x..."    }  }}

submit_payment

json
{  "jsonrpc": "2.0",  "id": 3,  "method": "tools/call",  "params": {    "name": "submit_payment",    "arguments": {      "payment_intent_id": "pi_..."    }  }}

verify_payment

json
{  "jsonrpc": "2.0",  "id": 4,  "method": "tools/call",  "params": {    "name": "verify_payment",    "arguments": {      "payment_intent_id": "pi_...",      "receipt_id": "rcpt_..."    }  }}

Limits

Default production policy limits are:

  • 50 USD maximum per payment
  • 500 USD maximum per day

Payments above those limits are rejected by the PHANTOM ID API.

Publish

sh
npm publish --access public

Source: README.md at commit 9bf67a0

Tools

7

phantom_register

Register an IDPHANTOM account (self-serve)

One-line onboarding: creates an IDPHANTOM account for the configured payer wallet, pays the $2 USDC registration with a locally-signed EIP-712 authorization and returns the api_key. Requires PHANTOM_PAYER_PRIVATE_KEY and PHANTOM_ROUTER_ADDRESS in the environment. The api_key is shown exactly ONCE in this response — store it as PHANTOM_API_KEY immediately. Without a payer key configured, pass payer_wallet to get manual instructions instead.

Parametersnametimeout_mspayer_walletpoll_interval_ms

phantom_authorize_budget

Authorize a spending budget for an account

Funder-signed EIP-712 AgentWalletAuthorization: lets an account spend up to max_units of USDC (6-decimal units, e.g. '1000000' = $1) with an optional daily cap, without giving away the wallet. Requires PHANTOM_FUNDER_PRIVATE_KEY in the environment; the signature is produced locally. Policy templates: 'micro' ($1/tx, $5/day, 30d) and 'subscriptions' ($2/tx, $5/day, 30d) — pilot caps kept deliberately low; explicit max_units/daily_cap_units/expires_in_days override any template. The account's own api_key is sent as authentication (first binding requires it).

Parametersnonceapi_keymax_unitsaccount_idrequireddaily_cap_unitsexpires_in_dayspolicy_template

phantom_bind_identity

Bind a portable agent identity (AGP-123)

Registers an agent_id as a portable identity for this account via POST /v1/identity/bind. The proof-of-possession is an EIP-712 IdentityBinding signature produced LOCALLY with PHANTOM_IDENTITY_PRIVATE_KEY (environment variable only, never a command-line flag — AGP-057); the private key never leaves this process, only the signature is sent. Idempotent: replaying the same bind returns the existing binding. attestation_address comes from GET /.well-known/phantom-identity.json of the PHANTOM deployment (field attestation_address) — pass it here together with the chain_id so the local signature domain matches the server's. Key rotation is NOT exposed here (it needs the old AND new keys); call POST /v1/identity/rotate directly instead.

Parametersepochagent_idrequiredchain_idrequiredissued_atattestation_addressrequired

quote_payment

Quote a payment

Create an IDPHANTOM payment quote with transparent platform fee (0.5%, min $0.01 USDC). Returns a payment intent ready for the payer's EIP-712 signature. Free: quoting never moves funds.

Parametersamountrequiredchain_idrequiredmetadatapayer_walletrequiredasset_contractrequiredpayer_agent_ididempotency_keyrequiredrecipient_walletrequiredrecipient_agent_id

authorize_payment

Authorize a payment

Attach the payer's EIP-712 PaymentAuthorization signature to a quoted payment intent. The signature is produced locally by the payer's wallet; it authorizes up to maximumTotalAuthorized, expiring at expiresAt. No funds move until submit_payment.

Parameterspayer_signaturerequiredpayment_intent_idrequired

submit_payment

Submit a payment

Broadcast an authorized payment intent through IDPHANTOM. The platform relays the on-chain transaction; exactly one broadcast per intent is enforced server-side (retries return the already-submitted transaction hash). This is the step that settles funds.

Parameterspayment_intent_idrequired

verify_payment

Verify a payment receipt

Verify an IDPHANTOM payment receipt: cryptographic checks (EIP-712 signature, payer recovery), expiry, and the on-chain state of the authorization (free/used/cancelled). Free for receipts of payments the caller participated in; paid via the receipt-verifier for third-party receipts.

Parametersreceipt_idpayment_intent_idrequired

Version history

8
  1. v0.3.2LatestNov 11, 2026
  2. v0.3.0Oct 15, 2026
  3. v0.2.1Oct 13, 2026
  4. v0.2.0Oct 7, 2026
  5. v0.1.9Oct 2, 2026
  6. v0.1.8Oct 2, 2026
  7. v0.1.5Oct 1, 2026
  8. v0.1.3Sep 28, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Payments integrations