Перейти к основному содержанию
Позиция в дереве в любой момент либо активна, либо неактивна. Активные позиции получают маркетинговые выплаты, когда потомки покупают или продлевают. Неактивные теряют слайс в пользу treasury. Эта страница про активацию и продление — два способа поддерживать активный статус.

Активация (одноразово, первый вызов)

Самый первый раз, когда адрес взаимодействует с феноменальным деревом, нужно вызвать activate(referrer):
// Approve USDT
await usdt.approve(flowProtocol.address, parseUnits("10", 18));

// Активация с указанием апплайна
await flowProtocol.activate(uplineAddress);
Эффекты:
  • Стоит 10 USDT (с применением стандартной комиссионной разбивки dpnm).
  • Помещает caller в феноменальное дерево под uplineAddress — в прямой слот 1/2/3 или через spillover, если все заполнены.
  • Устанавливает treeActiveUntil[caller] = now + 30 days.
  • Caller получает 1 GWT (1:1 от 10 USDT через маркетинг + treasury split — $5 маркетинга идут вверх по дереву, $1 в пул, $4 в treasury).
После активации caller может вызывать buy, sell, extendTree и т. д.

Продление (обновление или стек активных дней)

Чтобы оставаться активным дольше первых 30 дней, вызовите extendTree(months):
await usdt.approve(flowProtocol.address, parseUnits("10", 18));
await flowProtocol.extendTree(1);   // ещё 30 дней
Или стеком:
await usdt.approve(flowProtocol.address, parseUnits("30", 18));
await flowProtocol.extendTree(3);   // 90 дней — потолок
ПараметрСтоимостьДней добавляетсяЗаметки
extendTree(1)10 USDT30Стандартное обновление
extendTree(2)20 USDT60Два месяца одним вызовом
extendTree(3)30 USDT90Максимальный стек
Потолок стека: 90 дней. Если ваш treeActiveUntil уже на 60 дней вперёд и вы вызываете extendTree(2), это толкнуло бы до 120 days — контракт ревертит с ExtendStackCap. Подождите, пока буфер не упадёт ниже 60 дней, и тогда стекайте ещё 30.

Сплит выплаты на extend (повтор из Феноменальное дерево)

На каждые $10 стоимости продления:
БакетСумма
Маркетинг по 10 предкам$5.0 (0.1 × 3 + 0.5 × 3 + 0.8 × 4)
Удержание в пуле$1.0
Treasury$4.0
Если кто-то из предков L1–L10 неактивен в момент вызова, его уровень уходит в treasury вместо адреса.

Что значит “активен” на практике

  • Активен: покупки и extends потомков платят вам в реалтайме. Накапливается компенсация GWT. Ваш treeActiveUntil > now.
  • Неактивен: покупки и extends потомков идут в treasury вместо вас. Покупать, продавать и вызывать extendTree для реактивации можно — но пропущенные выплаты потеряны навсегда.
Никаких других штрафов за неактивность нет. Протокол не slashит ваш баланс $FLOW, лимит дохода или позицию в дереве.

Чтение активного статуса

const activeUntil = await flowProtocol.treeActiveUntil(myAddress);
const isActive = activeUntil > Math.floor(Date.now() / 1000);
const remainingDays = isActive
  ? Math.floor((activeUntil - Date.now() / 1000) / 86400)
  : 0;
Или через REST:
curl https://api.agentflow.website/me/flow-onchain \
  -H "Cookie: af_session=..."

Частые паттерны

Авто-extend с бэкенда. Запустите крон, который смотрит treeActiveUntil и вызывает extendTree(1), когда остаётся меньше N дней (например, 5). Ручной стек в начале месяца. Более капитал-эффективный паттерн: в начале каждого календарного месяца, когда вы прошли 60-й день предыдущего периода, вызывайте extendTree(3). Vacation mode. Если не хочется продолжать продлевать, просто остановитесь. Позиция в дереве сохраняется, потомки продолжают расти, но выплаты теряются. Реактивация — один вызов extendTree(months). Позиция в дереве сохраняется.

См. также