IDPHANTOM IDPHANTOM
Demo $0.01 ← Volver a la web
Máquina a máquina · x402 · Base mainnet

Paga esta API con 4 llamadas HTTP. Sin humanos.

Esta página es para agentes (y para los humanos que los programan). El servicio de verificación de receipts IDPHANTOM cobra $0.01 USDC por llamada con el estándar abierto x402. Tu agente firma una autorización EIP-3009 y el facilitator (Coinbase CDP) liquida on-chain: tu agente solo necesita USDC, ni siquiera ETH para el gas.

Si tu agente usa un framework con soporte x402 (el SDK de Coinbase, agentes con wallet viem/ethers), la negociación 402→pago es automática. Esta receta es el protocolo crudo, para cualquier stack.

1 Descubre el reto (llama sin pagar)

El servicio responde 402 con el manifiesto de pago exacto: monto, moneda, red y destinatario.

curl -s -X POST https://api.idphantom.com/verify \
  -H "content-type: application/json" -d '{}'
# → 402 { "accepts": [{ "scheme": "exact", "network": "eip155:8453",
#      "amount": "10000", "asset": "0x833589…A02913"  /* USDC Base */,
#      "payTo": "0xdBACb0…5C9f1", "extra": { "name": "USD Coin", "version": "2" } }] }

2 Firma la autorización de pago (EIP-3009)

Tu agente firma TransferWithAuthorization con la clave de su wallet: monto exacto del reto, destinatario exacto, validez corta. Es una firma, no una transacción: no gasta gas ni mueve nada todavía.

const auth = { from: agent.address, to: req.payTo, value: req.amount,
  validAfter: now - 60, validBefore: now + 900, nonce: randomBytes32() };
const signature = await agent.signTypedData(
  { name: "USD Coin", version: "2", chainId: 8453, verifyingContract: req.asset },
  { TransferWithAuthorization: [
    { name: "from", type: "address" }, { name: "to", type: "address" },
    { name: "value", type: "uint256" }, { name: "validAfter", type: "uint256" },
    { name: "validBefore", type: "uint256" }, { name: "nonce", type: "bytes32" } ]},
  auth);

3 Envía el pago en el header X-Payment

El header es el JSON del pago en base64. Incluye el receipt a verificar en el cuerpo.

const xPayment = btoa(JSON.stringify({
  x402Version: 2, scheme: "exact", network: "eip155:8453",
  payload: { signature, authorization: auth },
}));
const res = await fetch("https://api.idphantom.com/verify", {
  method: "POST",
  headers: { "content-type": "application/json", "X-Payment": xPayment },
  body: JSON.stringify(receipt),  // PaymentAuthorization EIP-712 (dominio PhantomPay v1)
});

4 Recibe veredicto + comprobante de liquidación

El servicio valida la firma, consulta al facilitator (Coinbase CDP) y liquida on-chain automáticamente. La respuesta incluye el hash de la transacción real.

// 200
{ "payment": { "payer": "0xTuAgente…", "settled": true,
               "transaction": "0x1840…5dce" },   // ← liquidación real en Base
  "receipt": { "valid": true, "checks": { "signatureValid": true, … },
               "onChainState": "free", "authHash": "0x…" } }

Conector MCP — una línea de config

Paquete oficial en npm: @phantomid/mcp-server. Expone las tools de cobro/pago a cualquier agente MCP (Claude Code, Codex, Cursor…). Sin claves: la API de registro cobra su propia tarifa por adelantado.

Claude Code · .mcp.json
{
  "mcpServers": {
    "idphantom": {
      "command": "npx",
      "args": ["-y", "@phantomid/mcp-server"]
    }
  }
}
Codex · ~/.codex/config.toml
[mcp_servers.idphantom]
command = "npx"
args = ["-y", "@phantomid/mcp-server"]
Smithery · cualquier cliente
npx -y @smithery/cli@latest install arbromagency/idphantom-mcp-server --client claude

Listado verificado: smithery.ai/servers/arbromagency/idphantom-mcp-server · Skill reutilizable para agentes: idphantom-pay.

Puntos de entrada para tu agente

Manifiesto x402 (descubrimiento)

/.well-known/x402 — formato estándar para agentes x402.

OpenAPI

/openapi.json — esquema completo del endpoint /verify.

MCP / Smithery

idphantom-mcp-server — para Claude, Codex, Cursor y agentes MCP.

Red y moneda

Base mainnet (eip155:8453), USDC nativo 0x833589…A02913. Tu agente solo necesita saldo USDC: el gas del settlement lo paga el facilitator.