Кит eSIM-оператора
Содержание
Продавайте eSIM для поездок под своим именем: людям на сайте и ИИ-агентам по x402. Нужны оптовый аккаунт, сервер и домен. Кит — это весь магазин: витрина на пяти языках с оплатой криптой в десяти сетях, узел продавца, у которого покупают ИИ-агенты, и узел федерации, через который ваши предложения находят на хабах AIMarket. Продавец — вы, и покупатели платят прямо на ваши кошельки.
Сначала попробуйте: на esim.modelmarket.dev этот кит работает в демо-режиме. Там живые оптовые цены, все страницы и все шаги оплаты, но платежи не принимаются.
Язык: English · Русский · Español · Français · 中文
Что внутри
| Часть | Что делает |
|---|---|
Витрина (store/) | Страница на каждую страну: именно так путешественники ищут eSIM. Фильтр тарифов, оплата, QR-код и ссылка установки, а потом расход трафика. На английском, русском, испанском, французском и китайском. |
| Платежи | USDC и USDT в Base, Ethereum, Arbitrum, OP, Polygon, BNB Chain и Avalanche. USDT в Tron, USDC в Solana, USDT и TON в TON. Карты через Stripe, если подключите. Каждый способ включается, как только вы укажете для него адрес. |
Узел продавца для агентов (rails/) | esim.quote и esim.status бесплатные и подписанные. esim.order оплачивается по x402 в USDC в сети Base. |
Узел федерации (node/) | aimarket node публикует ваши возможности на хабах AIMarket, и агенты, которые ищут на хабе, находят ваши предложения. |
| HTTPS | Caddy на портах 80 и 443, сертификаты от Let's Encrypt. |
Как проходит продажа
- Покупатель выбирает тариф. Цена — ваша оптовая цена плюс наценка (
MARGIN_PCT, но не меньшеMIN_MARGIN_USDсверху). Она держится 20 минут. - Покупатель платит на ваш кошелёк. Витрина сама читает сеть и подтверждает платёж. Платёжного процессора между вами нет.
- Витрина покупает профиль с вашего баланса в eSIM Access по оптовой цене. Покупатель получает QR-код, код активации и ссылку установки. Страница заказа продолжает работать и потом: на ней видны расход трафика и срок действия.
- Разница остаётся у вас. Пополняйте оптовый баланс по мере продаж.
Агент делает то же по HTTP: POST /agents/quote, затем POST /agents/order с платежом x402, и код активации приходит в ответе. Платёж списывается только после того, как профиль создан.
Что понадобится
- Оптовый аккаунт в eSIM Access с деньгами на балансе. Первое пополнение — от $50 (карта, PayPal или Alipay). С баланса оплачиваются проданные eSIM по оптовой цене.
- Сервер с Docker и публичным IPv4-адресом, с открытыми портами 80 и 443. Хватит 1 vCPU и 1 ГБ памяти.
- Домен или поддомен, у которого A-запись указывает на этот сервер.
- Адреса кошельков в сетях, которые хотите принимать. Один EVM-адрес обслуживает все семь EVM-сетей. Кит просит только адреса: никогда не приватный ключ и никогда не сид-фразу.
- Необязательно: API-ключ Coinbase Developer Platform. Он включает USDC в Base без газа для людей и платежи x402 от агентов. Тоже необязательно: аккаунт Stripe для карт.
Быстрый старт
git clone https://github.com/alexar76/esim-operator-kit.git && cd esim-operator-kit
cp .env.example .env # домен, название, наценка, адреса кошельков
# положите два ключа eSIM Access в secrets/ (список файлов в secrets/README.md)
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
Откройте https://<ваш домен>/. Витрина работает в демо-режиме, пока вы не поставите DEMO_MODE=0. Гайд оператора проводит через каждый шаг, тестовый заказ и запуск продаж.
Документы
- Гайд оператора: от пустого сервера до первой продажи, затем ежедневная работа, возвраты, налоги и решение проблем.
- Гайд для агентов: для разработчиков ИИ-агентов. Найти eSIM, купить по x402, проверить расход.
- secrets/README.md: какой ключ в какой файл.
Устройство
docker-compose.yml четыре сервиса
Caddyfile HTTPS и маршруты: /agents/* в rails, /.well-known/ai-market.json и /ai-market/* в node, остальное в store
.env.example все настройки с комментариями
secrets/ ваши ключи, по одному в файле (вне git, монтируется только для чтения)
data/ заказы, ключи токенов, идентичность узла, сертификаты (вне git; делайте бэкап)
store/ витрина (Node.js, Express)
rails/ узел продавца и оптовый клиент, которым пользуется и витрина
node/ образ узла федерации (aimarket-hub из PyPI)
docs/ эти гайды на пяти языках
Деньги и ключи
- Покупатели платят прямо на ваши адреса, а витрина только читает сети. Нет горячего кошелька и нет ключа, которым можно что-то потратить.
- Код активации отдаётся покупателю и нигде не хранится. Витрина берёт его у оптовика каждый раз, когда его запрашивает страница заказа. В ссылке покупателя есть токен, а витрина хранит только его хеш.
- Один платёж покупает одну eSIM. Номер оптового заказа выводится из платежа, поэтому повтор не купит вторую.
- Прежде чем просить оплату, витрина проверяет, что оптового баланса хватит на заказ.
Тесты
cd rails && npm ci && npm test
cd ../store && npm ci && npm test
Тестам не нужны ни сеть, ни ключи.