Перейти к содержимому

    Нажмите /, чтобы искать, и [ или ], чтобы перейти к предыдущей или следующей странице.

    $BACK

    Награды и получение

    Стейкать нечего. Каждый токен находится в стейкинге с момента начисления, приносит USDC со следующего распределения и сгорает по расписанию; заработанное остаётся доступным для получения.

    В стейкинге с момента начисления

    Когда убыток даёт вам BACK, контракт Tokenomics передаёт токены прямо контракту Staking, который записывает их на ваше имя. С этого момента ваши токены участвуют в каждом распределении. Нет ни транзакции стейкинга, ни вывода из стейкинга, ни периода ожидания, ни блокировки, ни способа переместить токены: transfer, transferFrom и approve контракта токена всегда отклоняются. Баланс, который показывает кошелёк или обозреватель, — это живой подсчёт ваших токенов контрактом Staking.

    Расписание сжигания

    Токены сгорают ежедневными партиями в 00:00 UTC. Токен, начисленный в t, сгорает в первую полночь UTC, не раньше t + отсчёт, при отсчёте 7 дней; владелец может задать его в пределах 1 день–30 дней через таймлок, и изменение действует для токенов, начисленных после него. Все начисления аккаунта с одним днём сжигания образуют одну партию, и приложение показывает ваши партии с их днями.

    Пример: убыток рассчитан пн, 5 янв., 15:30 UTC. Отсчёт заканчивается пн, 12 янв., 15:30 UTC, поэтому токены сгорают вт, 13 янв., 00:00 UTC, в первую полночь после этого. Убыток, рассчитанный перед самой полуночью, живёт едва дольше отсчёта; рассчитанный сразу после неё — почти на день дольше.

    Жизнь токенаУбыток начисляет токены, которые сразу попадают в стейкинг и получают долю каждого распределения. После отсчёта они сжигаются в ближайшую полночь UTC; заработанное остаётся доступным для получения.время →База начисления / начисленные токены (фиксированная ставка)начислены и сразу в стейкингеполучают USDC с каждого распределенияотсчётконец отсчётаполночь UTC: сожженыпервая после конца отсчётазаработанное можно получить и после
    Жизнь токена. Убыток начисляет токены, которые сразу попадают в стейкинг и получают долю каждого распределения. После отсчёта они сжигаются в ближайшую полночь UTC; заработанное остаётся доступным для получения.

    Из того, что отсчёт не идёт, пока LP не наполнился, следуют два правила:

    • Пока учётный LP впервые не достигнет $500,000, ничего не сгорает: начисленные до этого токены не имеют даты. Расчёт, который впервые доводит учётный LP до лимита, запускает все отсчёты разом: каждый токен без даты получает день сжигания, который отсчёт даёт этому расчёту, а последующие начисления считают от своего расчёта. Если LP потом опустится ниже лимита, ничего не начинается заново.
    • Ничто не работает само. Сжигание — это арифметика дат, которую контракт применяет в следующий раз, когда касается аккаунта или распределяет: ваш баланс и предложение считаются на текущий момент, без партий, чей день прошёл, — независимо от того, записала ли какая-то транзакция это сжигание.

    Получение наград

    Награды накапливаются на ваших токенах через глобальный аккумулятор и зачисляются на аккаунт при каждом его расчёте — при начислении или получении; чтение считает ту же сумму, ничего не записывая. Забирайте когда угодно: получение переводит ваши награды в USDC с баланса контракта стейкинга в Exchange на ваш, откуда ими можно торговать или вывести их. Получение сначала рассчитывает аккаунт, поэтому включает всё, что каждая партия заработала до своего сжигания.

    Два способа получить:

    • Из приложения, подписью кошелька: подписанное сообщение Claim уходит релейеру, который отправляет его как claimBySig. Сеансовый ключ подписать его не может.
    • Из кошелька, вызвав claim() в контракте стейкинга самостоятельно: нужно немного HYPE на газ, и это работает независимо от того, доступны ли наши сервисы.

    Чтобы увидеть неполученные награды без транзакции, прочитайте pendingReward(address) в контракте стейкинга; он включает только уже распределённые награды. Заработанное остаётся доступным и после того, как сгорел ваш последний токен, без срока.

    Как приходят награды

    Награды доходят до стейкеров в два шага:

    1. Exchange собирает долю стейкеров с каждой комиссии. Только контракт стейкинга может вызвать у него pushStakerFees, который передаёт эту долю плюс стоимость LP сверх $500,000 на баланс контракта стейкинга.
    2. Затем распределение делит то, что контракт стейкинга только что получил, между токенами, живыми в этот момент. Распределять могут только вызов distribute кипера-распределителя и подписанные запросы Distribute, отправленные через релейер; сначала всегда передаются комиссии.

    Наш кипер распределяет каждые 30 секунд, когда ждёт не меньше $100, так что никому не нужно об этом думать. Пока живых токенов в сумме меньше 1 BACK, новые награды ждут, когда стейка станет достаточно, чтобы их делить. Награды не начисляются непрерывно: распределение делят токены, живые в этот момент, пропорционально, поэтому партия получает каждое распределение до той полуночи, в которую сгорает.

    Математика

    Контракт хранит одно число — награды на один токен в стейкинге с самого начала, умноженные на 10^36: каждое распределение прибавляет к нему новые USDC, делённые на живой стейк. Каждый аккаунт хранит свой стейк, зачисленные награды и значение аккумулятора на момент последнего расчёта.

    Сжигания уменьшают стейк по расписанию, поэтому у аккумулятора есть часы. Каждое распределение сначала проходит по дням с предыдущего: для каждого дня, на который назначено сжигание токенов, оно записывает аккумулятор таким, каким он был в ту полночь (с тех пор он не менялся, потому что аккумулятор движется только при распределениях), и убирает партию из стейка. Расчёт аккаунта затем проходит по его собственным дням с последнего расчёта: каждая сгоревшая партия зарабатывает от последнего значения аккумулятора аккаунта до значения, записанного для её дня сжигания, а остальной стейк зарабатывает до текущего значения.

    награда партии, сгоревшей в день d = amount · (accAtDayStart[d] − accThen) / P
    награда живого стейка              = stake  · (acc − accThen) / P
    

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

    Обновлено: