@OPEN402/SDK
Una línea de código y tu agente puede pagar APIs vía x402, servicios mexicanos (CFE, Telmex, Telcel, Izzi) e invertir en CETES. Sin wallets. Sin llaves privadas. Sin fricción.
PAQUETES
@open402/agentsSDK principal. Cliente para crear agentes, gestionar pagos x402, pagar servicios MX y administrar créditos.
pnpm add @open402/agents
@open402/agentkitPuente con Coinbase AgentKit. Provee AgentXActionProvider con 8 acciones (pay_bill, pay_x402, get_balance, get_history, add/remove_rule, invest_cetes, check_investment).
pnpm add @open402/agentkit
@open402/agentRuntime para ejecutar agentes con CDP wallet + AgentKit + LangChain. Ideal para desplegar agentes autónomos.
pnpm add @open402/agent
@open402/dbModelos Prisma y cliente de base de datos. Esquemas User, Agent, Wallet, Transaction, SpendingRule, CreditBalance.
pnpm add @open402/db
@open402/apiTipos compartidos y utilidades de respuesta API. Interfaces AgenteXConfig, NetworkId, ApiResponse.
pnpm add @open402/api
QUICK START
Obtén tu API key en el dashboard y empieza en menos de 5 minutos.
pnpm add @open402/agents
import { AgentX } from '@open402/agents'; const agentx = await AgentX.create({apiKey: process.env.OPEN402_KEY,});const agent = await agentx.createAgent('Mi Agente', {policy: {daily_cap_mxn: 2000, confirm_above_mxn: 800, services: ['cfe', 'telmex'],},});EJEMPLOS
import { AgentX } from '@open402/agents';
const agentx = await AgentX.create({
apiKey: 'sk_...',
});
const agent = await agentx.createAgent('Mi Agente');
// Paga una API vía x402 (Arbitrum)
const result = await agent.payX402({
url: 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd',
method: 'GET',
});
console.log('Pagado:', result.cost, 'créditos');import { AgentX } from '@open402/agents';
const agentx = await AgentX.create({
apiKey: 'sk_...',
});
const agent = await agentx.createAgent('Paga Luz');
// Paga CFE vía Prontipagos
const result = await agent.payService({
provider: 'cfe',
reference: '123456789',
amount: 312.50,
});
console.log('Confirmación:', result.confirmationCode);import { AgentX } from '@open402/agents';
const agentx = await AgentX.create({ apiKey: 'sk_...' });
const agent = await agentx.createAgent('Mi Agente');
// El agente nunca gastará más de 800 MXN por transacción
// ni pasará los 2000 MXN diarios sin confirmación
agent.addRule({
service: 'cfe',
maxAmount: 800,
requiresConfirmation: true,
confirmationThreshold: 600,
});import { AgentX } from '@open402/agents';
import { AgentXActionProvider } from '@open402/agentkit';
import { AgentKit } from '@coinbase/agentkit';
const agentx = await AgentX.create({ apiKey: 'sk_...' });
const agent = await agentx.createAgent('AI Agent');
const agentKit = await AgentKit.from({
actionProviders: [
new AgentXActionProvider(agentx, agent),
],
});
// Ahora el LLM puede llamar herramientas como
// agentx_pay_bill, agentx_pay_x402, etc.import { AgentX } from '@open402/agents';
const agentx = await AgentX.create({ apiKey: 'sk_...' });
const agent = await agentx.createAgent('Inversor');
// Crea una orden de inversión en CETES
const result = await agent.investInCETES({ amountMXN: 500 });
console.log('CLABE:', result.depositClabe);
console.log('Order ID:', result.orderId);
// Consultar estado de la inversión
const status = await agent.checkInvestment(result.orderId);
console.log('Status:', status.status);API
Todas las clases son importables desde @open402/agents.
AgentXPunto de entrada del SDK. Configura la conexión con la API, maneja autenticación y crea agentes.
create(config)createAgent(name, config?)getAgent(id)listAgents()getBalance()purchaseCredits(request)payBill(request)payX402(request)AgentRepresenta un agente autónomo. Cada agente tiene su propia wallet (Agentic Wallet) y su policy engine.
payX402(request)payService(request)getBalance()getHistory(limit?)addRule(rule)removeRule(ruleId)listRules()investInCETES(request)checkInvestment(orderId)AgentWalletWallet MPC del agente en Arbitrum o Base. Las claves viven en TEE (AWS Nitro Enclave). Nunca expuestas.
create(config, client?)import(config, address, client?)getBalance()sendMXM(to, amount)PolicyEngineMotor de reglas de gasto. Cada agente tiene su propia instancia. Las reglas son bloqueantes.
evaluate(action)addRule(rule)removeRule(ruleId)listRules()setDailyCap(amount)setPerTxLimit(amount)ApiClientCliente HTTP interno para comunicarse con la API de open402. Usado por AgentX automáticamente.
createAgent(name)getBalance()purchaseCredits(input)payBill(agentId, request)payX402(agentId, request)investInCETES(input)checkInvestment(orderId)createWallet(networkId)getWalletBalance(address)transferMXM(from, to, amount)X402PaymentHandlerManejador del protocolo x402. Intercepta respuestas HTTP 402, extrae instrucciones de pago, ejecuta el pago via wallet.sendMXM() y reintenta la request original.
pay(request)parsePaymentRequired(header)executePayment(payload)BillPaymentHandlerManejador de pagos de servicios mexicanos via Prontipagos API. Soporta CFE, Telmex, Telcel, Izzi y 400+ servicios.
pay(provider, reference, amount)getProviders()checkStatus(transactionId)POLICY ENGINE
Define qué puede gastar tu agente, cuánto y cuándo. Las reglas son bloqueantes — el agente nunca las viola.
interface SpendingRule {
id: string;
service: string; // 'cfe' | 'telmex' | 'telcel' | 'izzi' | '*'
maxAmount: number; // Monto máximo MXN por transacción
requiresConfirmation: boolean;
confirmationThreshold?: number; // Pide confirmación sobre este monto
schedule?: {
type: 'monthly' | 'weekly' | 'one-time';
day?: number; // Día del mes (monthly)
time?: string; // '09:00'
};
notification?: {
channels: ('telegram' | 'email')[];
notifyBeforeDays?: number;
};
}