x402 · Agent buy
Los agentes compran RWAs, sin claves.
Un agente autónomo adquiere un activo del mundo real tokenizado de punta a punta con solo su propia clave EVM. Se autentica con una firma, se fondea en USDC vía x402, y Realmint hace el bridge y rutea la compra.
Integra el mismo flujo en OpenAI, Gemini, LangChain, CrewAI o el Vercel AI SDK con los tool schemas publicados.
Por qué x402
Lo que obtienes de entrada
Fondeo y ejecución que un agente puede manejar solo, sin custodia y sin entregar claves.
Autenticación sin claves
El agente firma un challenge EIP-191 con su propia clave EVM. Sin API key que aprovisionar, rotar o filtrar.
Autofinanciamiento sin gas
El USDC se mueve con una autorización EIP-3009 vía x402. El agente necesita USDC en Base — pero nada de ETH para gas.
Bridge + routing automáticos
Realmint hace el bridge del USDC vía CCTP y rutea la compra al mejor venue. Sin pasos cross-chain manuales.
No custodial por diseño
La firma siempre es local; Realmint nunca guarda claves. Gastar los fondos sigue requiriendo la firma del propio agente.
Quickstart
Tres llamadas con el SDK
El SDK guarda la clave EVM del agente y firma localmente. Usa HTTP crudo solo cuando no haya un runtime JS disponible.
import { agentLogin, fundWithX402, signerFromViemAccount } from "@realmint/sdk";
import { privateKeyToAccount } from "viem/accounts";
// 1. Keyless auth — sign a challenge with the agent's EVM key (stays local)
const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY!);
const { client } = await agentLogin({
ownerEoa: account.address,
signMessage: (m) => account.signMessage({ message: m }),
});
// 2. Self-fund in USDC over x402 (gasless EIP-3009 transfer on Base)
// payX402: your x402 payment signer (e.g. the Coinbase x402 SDK on Base)
const payX402: X402PaymentSigner = /* ... */;
await fundWithX402(client, { owner_eoa: account.address, amount_usdc: 5, asset_id: "tslax" }, payX402);
// 3. Buy — Realmint bridges + routes; the UserOp is signed locally
const intent = await client.buy(
{ asset_id: "tslax", source_token: "USDC", amount_in: 5, agent_wallet: account.address },
signerFromViemAccount(account),
);Bajo el capó
El flujo de punta a punta
Lo que el SDK hace por ti — cada tramo es un endpoint público y documentado.
Autenticar (sin claves)
Pide un challenge, fírmalo con la clave EVM (EIP-191) e intercambia la firma por un bearer token de corta duración. No hace falta API key.
POST /v1/agent/auth/challenge → /v1/agent/auth/tokenAutofinanciarse con x402
La primera llamada devuelve 402 con los requisitos de pago. Firma un transferWithAuthorization EIP-3009 de USDC y reintenta con el header X-PAYMENT; Realmint lo liquida vía el facilitator de Coinbase.
POST /v1/route/x402-buy → 402 Payment RequiredEl bridge se liquida automáticamente
Realmint transfiere el USDC a la smart account del agente vía CCTP (unos minutos). Consulta el portfolio hasta que el balance llegue.
GET /v1/portfolio/<smart_account>Rutear la compra
Crea un intent, prepáralo, firma localmente el hash del UserOp devuelto y luego envíalo y ejecútalo. Realmint elige el mejor venue para el activo.
POST /v1/route/intent → /prepare → /executeConsulta hasta completar
Consulta el intent hasta que reporte completed. El activo se liquida en la smart account del agente.
GET /v1/route/intent/<id> → status: completedShip it
No reinventes el ciclo de vida
Empieza por el agente de referencia o el SDK — ambos implementan el flujo completo, incluida la firma local.