June 4, 2023

BRC-20. Подробный разбор механики


В этой статье я попробую объяснить что это за токены на Биткоине, как они работают и стоит ли вообще туда залезать.

  1. Стандарт BRC-20
    1.1 Основы
    1.2 Плюсы и минусы
  2. Ordinal Inscriptions
    2.1 Что это и куда идут деньги
    2.2 Создаем Inscription с помощью Unisat API
    2.3 Считаем газ с помощью Mempool.space API
  3. Bitcoin Core
  4. Минт на Unisat & Luminex
  5. Выводы

Стандарт BRC-20

1.1 Основы

Короткая инфа, которую все знают:

BRC-20 - это самый обычный стандарт токенов в сети Биткоина. Дефолтная сеть Биткоина не поддерживает смартконтракты как EVM или другие блокчейны, поэтому стандарт имеет ограниченные функции: deploy, mint, transfer. Все транзакции связанные с BRC-20 токенами происходят с помощью так называемой Inscription - "вписывание" какой-либо информации в транзакцию.


Taproot address example

Taproot address: Биткоин имеет несколько типов адресов, но только taproot адрес может взаимодействовать с функциями BRC-20 токена. Тапрут адрес, как правило, начинается с "bc1...". На него можно принимать как нативный Bitcoin с бирж, так и любые BRC-20 токены.


Gas fees

Газ: высчитывается в Sats (Satoshi - маленькая часть от Биткоина). Пример: Gwei - маленькая часть от Ether.


Примерный Inscription для BRC-20 токена с тикером doge

Ordinal Inscription: вписывание нужной информации в транзакцию. Вписывать мы можем джипеги, аудиофайлы и другие различные форматы, но для токенов нам нужно записать файл формата JSON. Этому я выделил отдельный раздел, который разберем позже.

https://ordinals.com/ - сканер для Inscriptions

Mint площадки: в основном токены минтятся на двух площадках - Unisat и Luminex, которые мы так же разберем позже, так как у них немного разная механика.

https://www.luminex.io/
https://unisat.io/

Mempool.space : Etherscan на максималках, реально лучший сканер для Биткоина. На первый взгляд может показаться сложным, но через некоторое время становится понятно. Так же имеет API, которое мы будем юзать в следющих разделах.

https://mempool.space/
https://mempool.space/docs/api/rest - Документация по API

1.2 Плюсы и минусы BRC-20

Плюсы:

  • Лучшая возможная децентрализация
  • Из-за медленных блоков у медленных работяг есть все шансы на профит
  • Легко использовать людям с небольшим понятием о блокчейне
  • Скриптов практически не нужно

Минусы

  • Из-за медленных блоков жопа точно подгорит. Для каждой транзакции нужно ждать непривычное количество времени
  • 3 функции = супер сырая технология. Пока что не стоит ожидать каких-то даппок кроме пустых токенов и нфт

Ordinal Inscriptions

2.1 Что это и куда идут деньги

Рассмотрим создание Inscription на https://unisat.io/inscribe

Каждый инскрипшн принадлежит определенному адресу, так что при создании подписи, мы должны указать нужный нам тапрут адрес.

Чем больше вес файла - тем больше сатоши мы должны вписать в транзакцию

Так же за создание инскрипшн ордеров мы должны заплатить комиссию сервиса.

А как действуют ордера?

После создания ордера, мы получаем взамен Адрес и сумму в Sats которую мы должны на него отправить.
После завершения твоей транзакции, адрес с ордера автоматически отправит еще одну транзакцию, которая как раз и будет этим инскрипшном.

1) Создание ордера:

Шаг 1

2) Отправка Inscription, получение токенов на кошелек:

Шаг 2

2.2 Создаем Inscription ордер с помощью Unisat API

Создать ордер с помощью апи очень просто:
1) Отправляем POST реквест на https://unisat.io/api/query/inscribe/order и включаем следующую Data:

{'files': [
    {   'dataURL': 'data:text/plain;charset=utf-8;base64,ENCODED',
        'filename': '{"p":"brc-20","op":"deploy","tick":"ETH","max":"120000000","lim":"24000"}',
    }]

На месте ENCODED должна быть base64 закодированная строка.
К примеру, строка

eyJwIjogImJyYy0yMCIsICJvcCI6ICJkZXBsb3kiLCAidGljayI6ICJFVEgiLCAibWF4IjogIjEyMDAwMDAwMCIsICJsaW0iOiAiMjQwMDAifQ== Представляет следующий JSON файл:
{ "p": "brc-20", "op": "deploy", "tick": "ETH", "max": "120000000", "lim": "24000" }

p: Имя протокола
op: Операция
tick: Тикер
max: Максимальная циркуляция токена
lim: сколько токенов разрешено минтить на 1 адрес


После реквеста мы сразу получим адрес, на который нужно отправить правильную сумму в BTC (указывают в Sats, так что нужно конвертировать).

Подписи можно и самому напрямую делать, но об этом как-то в другой раз.


2.3 Считаем газ с помощью Mempool.space API


Тут ничего подробного, у каждого свои предпочтения по регулированию газа.
Но мы можем смотреть текущий газ в реальном времени с помощью колла апишки, и ставить повыше:
https://mempool.space/api/v1/fees/recommended

Так же можно мониторить мемпул определенного адреса, но пока я этому не нашел применения (разве что ты знаешь адреса потных чуваков которые наверняка уверены в выставленном газе):
https://mempool.space/api/address/1wiz18xYmhRX6xStj2b9t1rwWX4GKUgpv/txs/mempool

https://mempool.space/docs/api/rest - полная документация

Bitcoin Core это и кошелек и просто крутая тема. Штука мегаудобная - его можно применять как и в скриптах, так и просто для общего пользования. Одна лишь проблема в том, что для его запуска нужна установленная синхронизированная нода, что может занять 1-3 дня (синк зависит от интернета). При первом запуске программы, Bitcoin Core начнет синхронизацию автоматически. Так же вы можете установить Ordinals поверх ядра Bitcoin Core, чтобы создавать Inscriptions самому.

https://bitcoincore.org/
https://docs.ordinals.com/guides/inscriptions.html - узнать больше об Inscriptions на Bitcoin Core

Минты на Unisat & Luminex

Unisat

Минты на Unisat являются самыми простыми, так как там обычным инскрипшн ордером можно себе минтить токены исходя с макс. циркуляции. Больше газ = больше % успеха в минте токенов.

Luminex

На Luminex дела уже посложнее. Обычно на нем делают сейлы с вайтлистом, а как мы знаем у BRC-20 токенов нет функции whitelist или прочей херни.

Luminex придумали норм решение.

Рассмотрим ситуацию с недавним минтом $PSAT, который как раз тут и запускался:

Токен $PSAT имеет максимальный супплай в 10,000,000 токенов. Админ, который задеплоил токен, в соляного заминтил все токены, и после этого перекинул их на другой адрес (скорее всего адрес Luminex). Это значит что заминтить обычным инскрайбом не получится, так как макс. суплай исчерпан.

Используя свою базу данных, они собирали и записывали адреса пользователей для вайтлиста. Когда начался минт, пользователь должен был ввести адрес на который он минтит токены + их к-во. После этого создавался тот самый дефолтный ордер, куда он скидывает деньги. Invoice адрес закидывал деньги (service fee) основному коллектору. В это время срабатывал алгоритм, и Luminex кошель, холдер всех $PSAT токенов, отправлял нужное количество $PSAT на кошелек покупателя.

А чтобы задушить фронтраннеров, они решили отправлять транзакцию с адреса владельца супплая строго с фиксированным газом.

Ну и пиздец они придумали)


Выводы

Технология однозначно сырая и малофункциональная, но в то же время выглядит прикольно. Так же есть NFT минты, но там уже немного другие приколы. В целом атмосфера BTC минтов для меня чувствуется как смесь эфира с соланой но slowed&reverb.

Залетать сюда однозначно нужно, так как время от времени появляются крутые BRC-20 и NFT минты.

С этими материалами можно придумывать различные интересные стратегии, так что всем удачи!


Если тебе помогла статья, то поделись с другом который еще не знает как действует BRC-20.

By @roccrypto