Это руководство описывает пять распространённых сценариев интеграции. Каждый паттерн включает цель, используемые API-вызовы и последовательность операций. Полные схемы запросов и ответов см. в справочнике Platform API.
Цель: Отслеживать депозитные адреса клиентов и реагировать на поступление средств в реальном времени.
Когда использовать: Платежные шлюзы, депозитные потоки бирж и любые сервисы, которым нужно зачислять средства на счета пользователей при поступлении криптовалюты.
- Импортируйте публичный ключ вашего HD-кошелька (
POST /public_keys). - Сгенерируйте уникальный депозитный адрес для каждого клиента (
POST /public_keys/{public_key_id}/addresses/next). - Создайте вебхук-канал уведомлений (
POST /notification_channels). - При поступлении средств Vilna доставляет вебхук-событие на ваш сервер.
- Ваш сервер проверяет подпись, сопоставляет адрес с клиентом и зачисляет средства на его счет.
# 1. Импорт xPub
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/public_keys" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"value": "xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKp...",
"label": "Customer Deposits",
"derivation_path": "m/84h/0h/0h"
}'
# 2. Генерация следующего адреса для нового клиента
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/public_keys/{pubkey_id}/addresses/next" \
-H "X-Api-Key: ${VILNA_API_KEY}"
# 3. Создание вебхук-канала
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/notification_channels" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "Deposit Webhooks",
"config": {
"kind": "webhook",
"url": "https://your-app.example.com/deposits/webhook",
"headers": {}
}
}'- Используйте заголовок
X-Webhook-Idempotency-Keyдля предотвращения двойного зачисления при повторных доставках. - Храните связь между сгенерированными адресами и идентификаторами клиентов в вашей базе данных.
- Проверяйте подписи вебхуков перед обработкой (когда будет доступно). См. Аутентификация.
Цель: Показать пользователям агрегированный обзор их активов и недавней активности по нескольким сетям.
Когда использовать: Дашборды кошельков, бухгалтерские инструменты и продукты для аналитики портфеля.
- Импортируйте каждый адрес пользователя с помощью
POST /addresses/external. - Запрашивайте
GET /balancesдля текущих активов. - Запрашивайте
GET /activityдля недавних изменений баланса. - Используйте
references.tokensиreferences.blockchainsиз ответа для отображения названий токенов и информации о сетях без дополнительных запросов.
# Добавление адреса
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/addresses/external" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"value": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
"chainFamily": "evm",
"label": "Main Wallet"
}'
# Получение балансов
curl "https://${VILNA_NAMESPACE}.vilna.app/balances?limit=30&page=1" \
-H "X-Api-Key: ${VILNA_API_KEY}"
# Получение недавней активности
curl "https://${VILNA_NAMESPACE}.vilna.app/activity?limit=50&page=1" \
-H "X-Api-Key: ${VILNA_API_KEY}"- Используйте значение
meta.total_pagesдля реализации пагинации или бесконечной прокрутки. - Объект
referencesв каждом ответе устраняет необходимость в отдельных запросах токенов или сетей. - Для обновлений в реальном времени комбинируйте опрос с вебхук-каналом.
Цель: Управлять иерархическим детерминированным кошельком, в котором новые адреса деривируются по запросу и автоматически отслеживаются.
Когда использовать: Кастодиальные платформы, горячие кошельки бирж и любые системы, генерирующие адреса из мастер-публичного ключа.
- Импортируйте расширенный публичный ключ (
POST /public_keys) с путем деривации. - Когда нужен новый адрес, вызовите
POST /public_keys/{public_key_id}/addresses/next. - Vilna отслеживает индекс деривации и немедленно начинает мониторинг нового адреса.
- Запрашивайте балансы и транзакции по всем производным адресам с помощью
GET /balancesиGET /transactions.
# Импорт расширенного публичного ключа
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/public_keys" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"value": "xpub6BosfCnifzxRT1QKLpFfcUrgWmLqoJcGt...",
"label": "Exchange Hot Wallet",
"derivation_path": "m/44h/60h/0h"
}'
# Генерация адресов по мере необходимости
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/public_keys/{pubkey_id}/addresses/next" \
-H "X-Api-Key: ${VILNA_API_KEY}"- Vilna поддерживает пути деривации BIP-32, BIP-44, BIP-49 и BIP-84.
- Вы можете импортировать ключи xPub, yPub или zPub в зависимости от нужного формата адреса (legacy, SegWit, native SegWit).
- Публичный ключ никогда не передаётся из Vilna в незашифрованном виде — приватные ключи никогда не требуются.
Цель: Отслеживать адреса в нескольких блокчейнах и фильтровать активность по сети.
Когда использовать: Мультичейн-кошельки, кросс-чейн аналитические дашборды и инструменты комплаенс-мониторинга.
- Проверьте доступные блокчейны (
GET /blockchains). - Зарегистрируйте адреса с указанием
chainFamilyдля мониторинга во всех сетях этого семейства. - Запрашивайте
GET /activityилиGET /transactionsи фильтруйте по сети при необходимости. - Используйте
references.blockchainsдля отображения метаданных сети.
# Список поддерживаемых сетей
curl "https://${VILNA_NAMESPACE}.vilna.app/blockchains" \
-H "X-Api-Key: ${VILNA_API_KEY}"
# Мониторинг адреса во всех EVM-сетях (Ethereum, Polygon, Arbitrum и др.)
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/addresses/external" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"value": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
"chainFamily": "evm",
"label": "Multi-chain Wallet"
}'
# Получение активности по всем сетям
curl "https://${VILNA_NAMESPACE}.vilna.app/activity?limit=30&page=1" \
-H "X-Api-Key: ${VILNA_API_KEY}"- EVM-адреса (с префиксом 0x) можно отслеживать во всех EVM-совместимых сетях одним вызовом
POST /addresses/external, указавchainFamily: "evm". - Не-EVM сети (Bitcoin, Solana, Tron) требуют форматов адресов, специфичных для сети.
- Каждая сеть индексируется независимо, поэтому один адрес может иметь разные балансы и историю транзакций в разных сетях.
Цель: Получать уведомления в реальном времени через несколько каналов при блокчейн-активности на отслеживаемых адресах.
Когда использовать: Мониторинг казначейства, комплаенс-оповещения, операционные дашборды и системы дежурства.
- Добавьте адреса для наблюдения (
POST /addresses/external). - Создайте вебхук-канал для бэкенда (
POST /notification_channelsсkind: "webhook"). - Опционально создайте Telegram-канал для операторов (
POST /notification_channelsсkind: "telegram"). - Протестируйте оба канала (
POST /notification_channels/{notification_channel_id}/actions/test). - Все события по отслеживаемым адресам доставляются в каждый активный канал.
# Создание вебхук-канала
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/notification_channels" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "Backend Alerts",
"config": {
"kind": "webhook",
"url": "https://your-app.example.com/alerts/webhook",
"headers": {}
}
}'
# Создание Telegram-канала
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/notification_channels" \
-H "X-Api-Key: ${VILNA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "Ops Team Telegram",
"config": {
"kind": "telegram",
"bot_token": "987654321:ABCdefGHIjklMNOpqrsTUVwxyz123456789",
"chat_id": -1001234567890,
"language": "en",
"thread_id": 0
}
}'
# Тестирование вебхук-канала
curl -X POST "https://${VILNA_NAMESPACE}.vilna.app/notification_channels/{channel_id}/actions/test" \
-H "X-Api-Key: ${VILNA_API_KEY}"- Все активные каналы получают все события. Используйте серверную фильтрацию в обработчике вебхука для маршрутизации или подавления событий.
- Вебхук-каналы включают HMAC-подписи для верификации (запланировано). Telegram-каналы верифицируются через процесс настройки Telegram-бота.
- Для счетов с высокой стоимостью активов используйте оба канала, чтобы операторы получали Telegram-оповещения, а бэкенд обрабатывал события автоматически.