Экосистема

Строить на Velum может каждый: биржи, кошельки, аппаратные кошельки, кастодианы, стейкинг и обозреватели. Протокол и эталонная реализация открыты. Закрыто только приложение для общения.

Что открыто {#abierto}

Компонент Лицензия Назначение
@velum/core Apache-2.0 Протокол: ключи, транзакции, состояние, консенсус, обмен сообщениями
velum-node Apache-2.0 Полный узел, один бинарный файл на систему
@velum/sdk Apache-2.0 Интеграция: адреса, транзакции, подпись, RPC, депозиты, стейкинг
PROTOCOL.md и spec/vectors Apache-2.0 Реализация Velum на другом языке, байт в байт
Приложение для общения Закрытое Для переписки

Спрашивать у нас разрешения не нужно. Просим лишь не использовать марку Velum так, чтобы это выглядело как наш продукт.

Биржи {#exchanges}

  • Собственный узел. Установи velum-node и дождись синхронизации; не завись от публичного шлюза. Локальный RPC — ws://127.0.0.1:7420/ws?role=client, не открывай его в интернет. Проверь, что chain.block {height: 0} возвращает header.chain == "{{chain}}".
  • Единицы. У VEL 6 знаков после запятой; любая сумма в блокчейне — целое число µVEL.
  • Подтверждения. Мгновенной финальности пока нет: 30 блоков для обычных сумм и одна эпоха для крупных. Сохраняй хеш каждого зачисленного блока и, если он изменился, перечитывай.
  • Депозиты. Один адрес с memo для каждого клиента или отдельный адрес на клиента по пути m/44'/7420'/0'/0'/i'. DepositWatcher из SDK проходит блоки с N подтверждениями; уникальный ключ депозита — его txId.
  • Выводы. buildTransfer из SDK. Ниже порога комиссия 0 с печатью работы; выше — 1 базисный пункт. Подписывай офлайн через signTxBody на холодном устройстве.
  • Горячий и холодный кошелёк. Горячий хранит то, что выводится за день; холодный, офлайн, его пополняет.

Технические подробности — в разделе Кошельки и биржи.

Кошельки {#carteras}

  • Фраза BIP-39 из 24 слов. Кошелёк = SLIP-10 ed25519 по пути m/44'/7420'/аккаунт'/0'/индекс'. Официальное приложение использует 0'/0'/0'.
  • Ключи личности и устройств для переписки выводятся из той же фразы через HKDF и не являются ключами кошелька.
  • Всегда показывай сумму, точную комиссию (обычно 0) и сколько получит получатель.

Аппаратные кошельки: Trezor и Ledger {#hardware}

Параметр Значение
Кривая ed25519
Вывод ключей SLIP-10, все уровни усиленные (hardened)
Путь m/44'/7420'/аккаунт'/0'/индекс'
Монета SLIP-44 7420 (ожидает регистрации)
Что подписывается UTF-8 канонического JSON транзакции без sig, чистым ed25519 (RFC 8032)
Максимальный размер 4 КБ (обычная транзакция занимает 250–600 Б)
  • Печать работы pow входит в подписываемые данные: компьютер вычисляет её до отправки транзакции на устройство.
  • Устройство должно показывать полный адрес назначения, сумму с токеном, комиссию и memo, а также предупреждать, если chain не равно {{chain}}.
  • Проект приложения для Ledger (APDU GET_PUBLIC_KEY и SIGN_TX) описан в спецификации экосистемы.

@velum/sdk {#sdk-abierto}

import { walletFromPhrase, buildTransfer, VelumRpc, DepositWatcher } from "@velum/sdk";
  • walletFromPhrase(фраза, аккаунт, индекс): кошелёк SLIP-10.
  • buildTransfer, buildDelegate, buildUndelegate, signTxBody: сборка и подпись, в том числе офлайн.
  • VelumRpc: клиент RPC узла.
  • DepositWatcher: депозиты с N подтверждениями.

Примеры: deposit-watcher.ts, withdrawal-signer.ts и staking.ts.

Делегированный стейкинг {#staking}

  • stake.delegate { node, amount }: твои VEL блокируются в блокчейне и повышают вес узла в жеребьёвке мостов, с тем же лимитом, что и собственный залог.
  • stake.undelegate { node, amount }: возвращаются на твой счёт через 14 дней.
  • node.commission { bp }: каждый узел устанавливает свою комиссию от 0 до 20 %. Не чаще раза в 7 дней и не больше чем на ±5 пунктов.
  • Каждую эпоху найденное узлом делится: его комиссия, а остальное пропорционально между его залогом и делегаторами. Больше, чем есть, не делится никогда.
  • Гарантированной доходности нет. Если узел не работает, он ничего не находит.

Кастодианы

Хранение ключей третьих лиц — регулируемая услуга (поставщик услуг в сфере криптоактивов в ЕС). Заводи отдельный кошелёк для каждого клиента или веди внутренний реестр с ежедневной сверкой с блокчейном.