Kit de operador eSIM
Contenido
Vende eSIM de datos para viajes con tu propio nombre: a personas en un sitio web y a agentes de IA por x402. Necesitas una cuenta mayorista, un servidor y un dominio. El kit es la tienda completa: un escaparate en cinco idiomas que cobra en cripto en diez redes, un nodo vendedor al que compran los agentes de IA y el nodo de federación que hace que tus ofertas se encuentren en los hubs de AIMarket. El comerciante eres tú, y los compradores pagan directamente a tus monederos.
Pruébalo primero: esim.modelmarket.dev ejecuta este kit en modo demo, con precios mayoristas reales y todas las páginas y pasos del pago. No cobra nada.
Idioma: English · Русский · Español · Français · 中文
Qué incluye
| Parte | Qué hace |
|---|---|
Escaparate (store/) | Una página por país, que es lo que buscan los viajeros. Filtro de planes, pago, el código QR de la eSIM y su enlace de instalación, y después su consumo de datos. En inglés, ruso, español, francés y chino. |
| Pagos | USDC y USDT en Base, Ethereum, Arbitrum, OP, Polygon, BNB Chain y Avalanche. USDT en Tron, USDC en Solana, USDT y TON en TON. Tarjetas con Stripe si lo añades. Cada método se activa en cuanto le das una dirección. |
Nodo vendedor para agentes (rails/) | esim.quote y esim.status son gratuitos y firmados. esim.order se paga por x402 en USDC en Base. |
Nodo de federación (node/) | aimarket node publica tus capacidades en los hubs de AIMarket, para que los agentes que buscan en un hub encuentren tus ofertas. |
| HTTPS | Caddy en los puertos 80 y 443, con certificados de Let's Encrypt. |
Cómo funciona una venta
- El comprador elige un plan. El precio es tu coste mayorista más tu margen (
MARGIN_PCT, y nunca menos deMIN_MARGIN_USDsobre el coste). Se mantiene 20 minutos. - El comprador paga a tu monedero. El escaparate lee la red y confirma el pago por sí mismo. No hay procesador de pagos en medio.
- El escaparate compra el perfil con tu saldo de eSIM Access al precio mayorista. El comprador recibe el código QR, el código de activación y un enlace de instalación. Su página de pedido sigue funcionando después y muestra los datos usados y la fecha de caducidad.
- Tú te quedas con la diferencia. Recarga el saldo mayorista a medida que vendes.
Un agente hace lo mismo por HTTP: POST /agents/quote, luego POST /agents/order con un pago x402, y el código de activación llega en la respuesta. El pago se liquida solo después de que el perfil existe.
Qué necesitas
- Una cuenta mayorista en eSIM Access con saldo. La primera recarga es de al menos $50 (tarjeta, PayPal o Alipay). El saldo paga las eSIM que vendes, al precio mayorista.
- Un servidor con Docker y una dirección IPv4 pública, con los puertos 80 y 443 abiertos. Bastan 1 vCPU y 1 GB de memoria.
- Un dominio o subdominio cuyo registro A apunte a ese servidor.
- Direcciones de monedero de las redes que quieras aceptar. Una dirección EVM sirve para las siete redes EVM. El kit solo pide direcciones: nunca una clave privada, nunca una frase semilla.
- Opcional: una clave API de Coinbase Developer Platform. Activa USDC sin gas en Base para personas y los pagos x402 de los agentes. También opcional: una cuenta de Stripe para tarjetas.
Inicio rápido
git clone https://github.com/alexar76/esim-operator-kit.git && cd esim-operator-kit
cp .env.example .env # dominio, nombre de la tienda, margen, direcciones de monedero
# pon las dos claves de eSIM Access en secrets/ (secrets/README.md lista los archivos)
mkdir -p data/store data/rails data/node data/caddy
sudo chown 1000:1000 secrets/* && sudo chown -R 1000:1000 data/store data/rails data/node
docker compose up -d --build
Abre https://<tu dominio>/. La tienda funciona en modo demo hasta que pongas DEMO_MODE=0. La guía del operador recorre cada paso, el pedido de prueba y la puesta en marcha.
Documentos
- Guía del operador: de un servidor vacío a la primera venta, y luego la operación diaria, los reembolsos, los impuestos y la resolución de problemas.
- Guía para agentes: para desarrolladores de agentes de IA. Encontrar una eSIM, comprarla por x402, consultar su consumo.
- secrets/README.md: qué clave va en qué archivo.
Estructura
docker-compose.yml los cuatro servicios
Caddyfile HTTPS y rutas: /agents/* a rails, /.well-known/ai-market.json y /ai-market/* a node, el resto a store
.env.example todos los ajustes, comentados
secrets/ tus claves, una por archivo (fuera de git, montadas en solo lectura)
data/ pedidos, claves de tokens, identidad del nodo, certificados (fuera de git; haz copia)
store/ el escaparate (Node.js, Express)
rails/ el nodo vendedor, y el cliente mayorista que también usa la tienda
node/ la imagen del nodo de federación (aimarket-hub de PyPI)
docs/ estas guías en cinco idiomas
Dinero y claves
- Los compradores pagan directamente a tus direcciones, y la tienda solo lee las redes. No hay monedero caliente ni clave capaz de gastar.
- El código de activación va al comprador y nunca se guarda. La tienda lo pide al mayorista cada vez que la página de pedido del comprador lo solicita. El enlace del comprador lleva un token, y la tienda guarda solo su hash.
- Un pago compra una eSIM. El identificador del pedido mayorista se deriva del pago, así que un reintento no puede comprar dos veces.
- Antes de pedir un pago, la tienda comprueba que tu saldo mayorista cubre el pedido.
Pruebas
cd rails && npm ci && npm test
cd ../store && npm ci && npm test
Las pruebas no necesitan red ni claves.