Zimppy.xyz
Кратко
- Zimppy — ориентированная на приватность платёжная инфраструктура для ИИ-агентов, использующая Machine Payment Protocol (MPP) от Zcash
- Внесите депозит один раз в блокчейн (~75 секунд), затем выполняйте неограниченное количество мгновенных запросов без взаимодействия с блокчейном для каждого запроса
- Поддерживаются полностью экранированные платежи Zcash (Orchard) — отправитель, получатель, сумма и мемо полностью зашифрованы
- Работает с SDK для TypeScript и Rust для простой интеграции в ИИ-пайплайны и API-серверы
- Идеально подходит для LLM API, маркетплейсов данных, серверов инструментов MCP и любых сценариев M2M-платежей
Zimppy — это метод оплаты Machine Payment Protocol (MPP) для Zcash, поддерживающий как экранированные, так и прозрачные платежи. Внесите депозит один раз в блокчейн, затем выполняйте неограниченное количество мгновенных запросов на предъявителя без взаимодействия с цепочкой для каждого запроса.
Содержание
- Что такое Zimppy.xyz?
- Почему экранированные платежи для ИИ-агентов?
- Machine Payment Protocol (MPP)
- Как работает Zimppy
- Сценарии использования и примеры
- Установка
- Настройка кошелька Zimppy
- Интеграция Zimppy
- Интеграция Zimppy — Rust SDK
- Справочник CLI
- Ключевые возможности
- Архитектура
- Примеры и демо
Что такое Zimppy.xyz?
Zimppy.xyz — это ориентированная на приватность платёжная инфраструктура, созданная специально для ИИ-агентов и автоматизированных межмашинных (M2M) рабочих процессов. Она реализует Machine Payment Protocol (MPP), используя Zcash как базовую валюту, и позволяет применять как экранированные (полностью приватные), так и прозрачные способы оплаты.
В отличие от традиционных блокчейн-платёжных систем, где каждая транзакция публично видна в блокчейне, Zimppy построен на архитектуре сессий, которая устраняет задержку для каждого запроса, сохраняя криптографическую приватность. Это делает его особенно подходящим для ИИ-агентов, которым необходимо программно оплачивать API, данные, вычисления или ИИ-инструменты без раскрытия поведенческих метаданных.
Основные свойства
- Внесите депозит один раз в блокчейн (~75 секунд для подтверждения Zcash)
- Неограниченное количество мгновенных запросов после открытия сессии, без взаимодействия с цепочкой для каждого запроса
- Экранированные платежи шифруют отправителя, получателя, сумму и мемо с помощью протокола Orchard от Zcash
- Прозрачные платежи используют T-адреса для каждого challenge для предотвращения повторного воспроизведения без полной приватности
- Соответствие спецификации, challenges HMAC-SHA256, ошибки RFC 9457, обнаружение через
/.well-known/payment
Почему экранированные платежи для ИИ-агентов?
Для ИИ-агентов, работающих с конфиденциальными процессами, юридическими исследованиями, медицинскими запросами, финансовым анализом и конкурентной разведкой каждый публичный платёж — это утечка метаданных. Zimppy — единственный способ оплаты MPP, который является приватным по умолчанию.
Таблица сравнения приватности
| Свойство | Публичные цепочки (USDC, ETH) | Zimppy Shielded | Zimppy Transparent |
|---|
| Отправитель | Видим | Зашифрован | Видим |
| Получатель | Видим | Зашифрован | Для каждого challenge (несвязываемый) |
| Сумма | Видима | Зашифрована | Видима |
| Мемо | Видимо | Зашифровано | Н/Д |
| Защита от повторного воспроизведения | Нет | Привязка мемо | T-адрес для каждого challenge |
| Шаблон использования сервиса | Связываемый | Приватный | Несвязываемый (новый адрес) |
Проблема задержки решена сессиями
«Но время блока Zcash составляет 75 секунд.»
Сессии решают эту проблему. Ожидание в блокчейне происходит ровно один раз — при внесении депозита. Каждый последующий запрос выполняется мгновенно.
Code-highlight
Agent -> deposit 100,000 zat (one on-chain tx, ~75s)
Agent -> open session (bearer token issued)
Agent -> request -> response (0ms - no chain interaction)
Agent -> request -> response (0ms - no chain interaction)
Agent -> request -> response (0ms - no chain interaction)
... hundreds of requests ...
Agent -> close session (refund unused balance)
Заплатите один раз, вызывайте мгновенно, получите сдачу обратно. Задержка для каждого запроса равна нулю.
Machine Payment Protocol (MPP)
Machine Payment Protocol (MPP) — это стандартизированный протокол, позволяющий автономным программным агентам (ИИ-агентам, ботам, скриптам) обнаруживать, согласовывать и выполнять требования по оплате доступа к API без какого-либо вмешательства человека.
Как MPP интегрируется с API
MPP использует поток HTTP 402 Payment Required:
- Агент запрашивает ресурс у платной конечной точки API.
- Сервер отвечает
402 Payment Required + подписанный challenge (сумма, получатель, мемо).
- Агент платит совместимым способом оплаты (например, экранированным Zcash через Zimppy).
- Агент повторяет запрос с
Authorization: Payment {txid}.
- Сервер проверяет платёж криптографически (дешифрование Orchard IVK, проверка суммы и мемо).
- Сервер отвечает
200 OK + заголовок Payment-Receipt.
Соответствие спецификации
- Подписание challenges с помощью HMAC-SHA256
- Структурированные ответы об ошибках RFC 9457
- Конечная точка
/.well-known/payment для автоматического обнаружения способов оплаты
- Orchard IVK (Incoming Viewing Key) для серверной проверки платежей без раскрытия ключей расходования
Как работает Zimppy
Сессии (рекомендуется)
Сессии — основной шаблон взаимодействия. Агент один раз вносит баланс в блокчейн, получает токен на предъявителя и использует его для всех последующих запросов без задержки.
Code-highlight
Agent -> deposit 100,000 zat (on-chain, ~75s one-time)
Agent -> open session (bearer token issued)
Agent -> GET /api/query + bearer (instant, balance deducted)
Agent -> GET /api/query + bearer (instant, balance deducted)
Agent -> close session (refund unused balance on-chain)
Лучше всего для: частых вызовов API, LLM-инференса, повторяющихся запросов данных.
Потоковая передача
Контент с тарификацией за токен, доставляемый через Server-Sent Events (SSE). Сервер списывает средства с баланса сессии за каждое переданное слово или токен.
Code-highlight
Agent -> open session with deposit
Agent -> GET /api/stream (SSE)
Server -> stream word by word, deducting per token
Agent -> close session, refund remaining
Лучше всего для: потоковых ответов LLM, потоков данных в реальном времени, ИИ-инструментов с оплатой за токен.
Платёж
Один экранированный платёж для каждого запроса. Полный поток HTTP 402 выполняется при каждом вызове. Подходит, когда запросы редки или имеют высокую стоимость.
Code-highlight
Agent -> GET /api/resource
Server -> 402 + challenge (amount, recipient, memo)
Agent -> shielded ZEC with memo "zimppy:{challenge_id}"
Agent -> GET /api/resource + Authorization: Payment {txid}
Server -> decrypt with Orchard IVK, verify amount + memo
Server -> 200 OK + Payment-Receipt
Лучше всего для: разовых высокостоимостных запросов, редких вызовов API, премиальных конечных точек данных.
Сценарии использования и примеры
1. ИИ-агент
Юридический ИИ-агент запрашивает платную базу данных судебной практики. При использовании экранированных сессий Zimppy ни личность юридической фирмы, ни конкретные запросы не видны в блокчейне, что защищает адвокатскую тайну на уровне инфраструктуры.
Code-highlight
Agent opens session (100,000 zat deposit)
-> GET /api/cases?q=patent+infringement+2024 (instant)
-> GET /api/cases?q=prior+art+semiconductor (instant)
-> GET /api/document/US11234567B2 (instant)
Session closed, unused balance refunded
2. ИИ-агент для пайплайна медицинских запросов
Агент для медицинской диагностики запрашивает несколько клинических баз данных. Экранированные платежи гарантируют, что шаблоны запросов пациентов нельзя связать между разными поставщиками.
3. Агент финансового анализа
Агент алгоритмической торговли оплачивает API рыночных данных в реальном времени. Прозрачные платежи используют новые T-адреса для каждого challenge, предотвращая корреляцию шаблонов использования между поставщиками данных.
4. Сервер инструментов MCP, платные ИИ-инструменты
Сервер MCP (Model Context Protocol) предоставляет платные ИИ-инструменты. Каждый вызов инструмента инициирует платёж Zimppy, создавая маркетплейс монетизируемых возможностей ИИ.
5. Суммаризатор LLM, оплата за токен
Сервис суммаризации LLM взимает с агентов плату за каждый выходной токен через потоковую передачу SSE с автоматическим списанием баланса и возвратом неиспользованного предоплаченного остатка.
Установка
Node.js / TypeScript
Code-highlight
npm install zimppy # CLI + wallet
npm install zimppy-ts # TypeScript SDK
Rust
Code-highlight
[dependencies]
zimppy-core = "0.5" # Rust verification engine
zimppy-rs = "0.5" # Rust SDK (charge, session, axum)
Настройка кошелька Zimppy
CLI Zimppy предоставляет полнофункциональный интерфейс кошелька. Все команды доступны через npx zimppy.
Шаг 1: Создание кошелька
Code-highlight
npx zimppy wallet create
Генерирует криптографические ключи и отображает вашу seed phrase. Храните её в безопасности: при утере её невозможно восстановить.
Шаг 2: Проверка адреса и баланса
Code-highlight
npx zimppy wallet whoami
Отображает ваш Unified Address (UA), T-адрес, текущий баланс и активную сеть.
Code-highlight
npx zimppy wallet balance --all
Показывает разбивку баланса по учётным записям во всех учётных записях ZIP-32.
Шаг 3: Пополнение кошелька
Отправьте ZEC на свой Unified Address из любого совместимого с Zcash кошелька или биржи. Экранированные депозиты поступают непосредственно на ваш счёт Orchard.
Шаг 4: Отправка и экранирование средств
Code-highlight
# Send ZEC to any address (shielded or transparent)
npx zimppy wallet send <addr> 42000
# Move transparent funds into Orchard (shielded)
npx zimppy wallet shield
# Transfer between your own accounts
npx zimppy wallet transfer 0 1 50000
# Switch active wallet identity
npx zimppy wallet use work
Шаг 5: Выполнение запроса с автоматической оплатой
Code-highlight
npx zimppy request <url>
Автоматически обрабатывает полный поток 402 -> pay -> retry. Сессии открываются и управляются прозрачно.
Интеграция Zimppy — TypeScript SDK
Сервер TypeScript — экранированный
Code-highlight
import { Mppx } from 'mppx/server'
import { zcash } from 'zimppy-ts/server'
const mppx = Mppx.create({
methods: [await zcash({ wallet: 'server' })],
realm: 'my-api',
secretKey: process.env.MPP_SECRET_KEY,
})
const result = await mppx.charge({
amount: '42000',
currency: 'zec',
})(request)
if (result.status === 402) return result.challenge
return result.withReceipt(Response.json({ data }))
Ключевые моменты:
zcash({ wallet: 'server' }) загружает экранированный кошелёк сервера
mppx.charge() обрабатывает полный жизненный цикл challenge/проверки 402
result.withReceipt() прикрепляет криптографическую квитанцию об оплате к ответу
Сервер TypeScript — прозрачный
Code-highlight
import { Mppx } from 'mppx/server'
import { zcashTransparent } from 'zimppy-ts/server'
const mppx = Mppx.create({
methods: [await zcashTransparent({ wallet: 'server' })],
// per-challenge T-address generated automatically (replay-safe)
})
Каждый challenge создаёт новый T-адрес, делая платёжные запросы несвязываемыми между сессиями.
Клиент TypeScript
Code-highlight
import { Mppx } from 'mppx/client'
import { zcash } from 'zimppy-ts/client'
const mppx = Mppx.create({ methods: [zcash({ wallet: 'default' })] })
// Session opened automatically; 402 is handled transparently
const res = await mppx.fetch('https://api.example.com/resource')
Клиент перехватывает ответы 402, автоматически открывает сессию и повторяет запрос — вызывающему коду не требуется логика, специфичная для платежей.
Интеграция Zimppy — Rust SDK
Сервер Rust (Axum)
Code-highlight
use mpp::server::axum::*;
use zimppy_rs::ZcashChallenger;
struct Price;
impl ChargeConfig for Price {
fn amount() -> &'static str { "42000" }
}
async fn handler(charge: MppCharge<Price>) -> WithReceipt<Json<Value>> {
WithReceipt {
receipt: charge.receipt,
body: Json(data),
}
}
Ключевые моменты:
MppCharge<Price> — экстрактор Axum, который проверяет платёж до запуска обработчика
WithReceipt оборачивает ответ криптографической квитанцией об оплате
ChargeConfig определяет логику ценообразования — она может быть динамической в зависимости от параметров запроса
Клиент Rust
Code-highlight
use mpp::client::Fetch;
use zimppy_rs::ZcashPaymentProvider;
let provider = ZcashPaymentProvider::new(wallet_config, &rpc);
let resp = client
.get("https://api.example.com/resource")
.send_with_payment(&provider)
.await?;
send_with_payment расширяет любой HTTP-клиент автоматической обработкой 402, управлением сессиями и выполнением платежей Zcash.
Справочник CLI
| Команда | Описание |
|---|
npx zimppy wallet create | Генерация ключей и отображение seed phrase |
npx zimppy wallet whoami | Показать адрес (UA + T-addr), баланс, сеть |
npx zimppy wallet balance --all | Разбивка баланса по учётным записям |
npx zimppy wallet send <addr> <zat> | Отправить экранированный или прозрачный ZEC |
npx zimppy wallet transfer <from> <to> <zat> | Внутренний перевод между учётными записями |
npx zimppy wallet shield | Переместить прозрачные средства в Orchard (экранированные) |
npx zimppy wallet use <name> | Переключить активную идентичность кошелька |
npx zimppy request <url> | Автоматически выполнить запрос 402 -> pay -> retry |
Ключевые возможности
Кошельки, нативные для агентов
Кошельки Zimppy предназначены для программного использования ИИ-агентами, а не расширениями браузера под управлением человека. Ключами управляют через CLI или SDK, учётные записи можно ротировать посредством деривации учётных записей ZIP-32, а кошелёк поддерживает полностью автоматизированные потоки платежей без подтверждения человеком каждой транзакции.
Поддержка нескольких агентов
Несколько агентов могут работать из одного кошелька, используя ротацию учётных записей ZIP-32 — каждый агент получает собственную учётную запись с изолированным отслеживанием баланса, возможностью межсчётных переводов и отчётностью о балансе для каждой учётной записи. Это позволяет управлять множеством агентов из единой инфраструктуры кошелька.
Полностью экранированные транзакции Zcash (Orchard)
Экранированные платежи используют протокол Orchard от Zcash — экранированный пул, представленный NU5. Сервер проверяет платежи, используя Incoming Viewing Key (IVK), который может расшифровывать полученные ноты без раскрытия ключа расходования. Атаки повторного воспроизведения предотвращаются посредством привязки мемо — каждый проверочный запрос содержит уникальное мемо zimppy:{challenge_id}, которое криптографически проверяется.
Сессии, нулевая задержка для каждого запроса
Архитектура сессий отделяет ожидание подтверждения в блокчейне от задержки для каждого запроса. После единственного депозита (~75 секунд) все последующие запросы с токеном на предъявителя обслуживаются мгновенно, без взаимодействия с блокчейном до закрытия сессии.
Потоковая передача, оплата за токен
Нативная поддержка SSE (Server-Sent Events) позволяет предоставлять контент с тарификацией за токен. Идеально для API инференса LLM, где длина вывода изменяется, а выставление счёта должно отражать фактическое потребление.
Соответствие спецификации
- Подписанные challenges HMAC-SHA256 предотвращают подделку
- Структурированный формат ошибок RFC 9457 для совместимой обработки ошибок
/.well-known/payment для автоматического обнаружения способов оплаты любым MPP-совместимым агентом
Архитектура
Code-highlight
crates/
zimppy-core/ Zcash verification engine (Orchard decryption, replay protection)
zimppy-wallet/ Native Zcash wallet (zingolib)
zimppy-rs/ Rust SDK (ChargeMethod, SessionMethod, PaymentProvider, axum extractors)
zimppy-napi/ Node.js native bindings (NAPI-RS)
packages/
zimppy-ts/ TypeScript SDK (charge, session, SSE)
zimppy-cli/ CLI with auto-pay and session management
Обязанности компонентов
zimppy-core — криптографическое ядро. Обрабатывает дешифрование notes Orchard с помощью IVK сервера, разбор мемо, логику защиты от повторного воспроизведения и проверку challenges. Написано на Rust для производительности и корректности.
zimppy-wallet — нативный кошелёк Zcash на базе zingolib. Управляет ключами, учётными записями, экранированными/прозрачными балансами и отправкой транзакций.
zimppy-rs — Rust SDK. Предоставляет трейты ChargeMethod, SessionMethod и PaymentProvider, а также экстракторы Axum (MppCharge, WithReceipt) для удобной серверной интеграции.
zimppy-napi — привязки NAPI-RS, предоставляющие ядро Rust для Node.js и позволяющие TypeScript SDK использовать тот же криптографический движок без повторной реализации примитивов Zcash на JavaScript.
zimppy-ts — TypeScript SDK. Оборачивает привязки NAPI в идиоматичные API async/await для потоков платежей, сессий и потоковой передачи SSE.
zimppy-cli — кошелёк командной строки и инструмент запросов. Поддерживает автоматическую оплату (402 -> pay -> retry), управление сессиями и все операции кошелька.
Примеры и демо
| Пример | Описание |
|---|
examples/fortune-teller/ | Демо платежей, сессий и потоковой передачи — сервер Rust + клиент |
examples/llm-summarizer/ | Демо потоковой передачи LLM с оплатой за токен |
examples/mcp-server/ | Сервер инструментов MCP с платными ИИ-инструментами |
examples/ts-server/ | Эталонная реализация MPP-сервера на TypeScript |
Что включено — краткое описание возможностей
| Возможность | Описание |
|---|
| Сессии | Внесите депозит один раз, мгновенные запросы на предъявителя, возврат при закрытии |
| Потоковая передача | Контент с тарификацией за токен через SSE |
| Платёж | Экранированный или прозрачный платёж для каждого HTTP-запроса (поток 402) |
| Прозрачные платежи | T-адреса с защитой от повторного воспроизведения для каждого challenge + команда shield |
| Несколько учётных записей | Ротация учётных записей ZIP-32, межсчётные переводы, балансы по учётным записям |
| CLI-кошелёк | Отправка, экранирование, перевод, balance --all, whoami, автоматическая оплата |
| Два SDK | TypeScript и Rust |
| Соответствие спецификации | Challenges HMAC-SHA256, ошибки RFC 9457, обнаружение через /.well-known/payment |
Для получения дополнительной информации посетите zimppy.xyz
Связанные страницы