Stipendex

Спецификация Stipendex 0.1-draft: обзор

Нормативные слова MUST / SHOULD / MAY — по RFC 2119. Детали объектов — envelope.md, полномочия — mandate-wallet.md, транспорты — transports.md, рельсы — rails.md.


Роли

Роль Кто это Держит деньги?
Принципал человек/организация — источник средств и полномочий да (свои)
Агент LLM-петля; инициирует траты, но не распоряжается ими нет
Кошелёк детерминированный компонент при хосте агента; проверяет мандат, подписывает платежи нет (только ключи)
Получатель MCP-сервер / HTTP API / продавец, выставляющий Quote да (свои)
Рельс платёжная система, исполняющая расчёт (Stripe, x402, ledger) транзитом, по своей лицензии
Фасилитатор оператор счетов/верификации поверх рельса account; HITL-очередь, антифрод да, по своей лицензии
Реестр доверия издатель подписанных дескрипторов проверенных получателей нет

Объекты

Объект Кто подписывает Назначение
Mandate принципал полномочия кошелька: лимиты, allowlist, пороги, срок
Quote получатель одноразовая котировка: сумма или оценка+допуск, рельсы, TTL
Confirmation кошелёк (опц. + passkey принципала) зафиксированное согласие человека на итог+допуск
Proof кошелёк доказательство оплаты/холда по конкретному Quote
Receipt получатель «получено и исполнено»: финальная сумма, hash результата

Все объекты — JSON c подписью JWS (Ed25519); суммы — десятичные строки ("0.0042"), никогда не float; идентификаторы — префиксованные (m_, q_, c_, p_, r_), уникальные у издателя.

Базовый цикл

Агент            Кошелёк                Получатель             Рельс/Фасилитатор
  │ вызов ────────────────────────────────▶│
  │ ◀──── payment_required + Quote ────────│
  │──Quote──▶│ 1 allowlist (default deny)  │
  │          │ 2 лимиты мандата            │
  │          │ 3 порог HITL → Confirmation │
  │          │ 4 оплата/холд по рельсу ────────────────────────────▶│
  │          │◀──────────── Proof ──────────────────────────────────│
  │ повтор вызова + Proof ─────────────────▶│──── верификация ─────▶│
  │ ◀────── результат + Receipt ───────────│

Инварианты (нормативные):

Профили

Уровни внедрения получателя

Уровень Что делает Кода
L0 объявляет цены в метаданных (pricing) — агенты учитывают стоимость при планировании 0 строк платёжного
L1 paywall через hosted-фасилитатора (рельс account) ~10 строк
L2 собственные рельсы (x402 напрямую, свой ledger, Stripe) адаптер
L3 расширения: подписки, metered-квоты, checkout-профиль по потребности

Версионирование

Каждый объект несёт поле stipendex: "<type>/<version>" (напр. "quote/0.1"). Мажорная версия ломает совместимость; кошелёк MUST отклонять объекты неизвестной мажорной версии. Капабилити-переговоры транспорта — в transports.md.