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.
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" } }] }
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);
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)
});
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…" } }
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.
{
"mcpServers": {
"idphantom": {
"command": "npx",
"args": ["-y", "@phantomid/mcp-server"]
}
}
}
[mcp_servers.idphantom] command = "npx" args = ["-y", "@phantomid/mcp-server"]
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.
/.well-known/x402 — formato estándar para agentes x402.
/openapi.json — esquema completo del endpoint /verify.
idphantom-mcp-server — para Claude, Codex, Cursor y agentes MCP.
Base mainnet (eip155:8453), USDC nativo 0x833589…A02913. Tu agente solo necesita saldo USDC: el gas del settlement lo paga el facilitator.