Исправить эти флаги в уже задеплоенном контракте
Теперь по существу и технически: что именно означает каждый флаг и как его реально исправить, без иллюзий.
Сразу главный вывод, чтобы не было хождения по кругу:
Исправить эти флаги в уже задеплоенном контракте НЕЛЬЗЯ.
Они устраняются только новым контрактом или жёсткой ончейн-блокировкой функций, если контракт это допускает (в 99% случаев — нет).
Теперь по пунктам.
1. Is Mintable / Unlimited Mint
Проблема:
В контракте есть функция mint() или эквивалент, и она не заблокирована навсегда.
Почему это критично:
бесконечная эмиссия
supply не фиксирован
автоматический HIGH RISK
Как исправляется ПРАВИЛЬНО:
❌ полностью удалить
mint()из контракта✔
totalSupplyзадаётся вconstructor✔ никаких
mint/increaseSupply/issue
НЕ считается исправлением:
“я не буду вызывать mint”
“mint только owner”
“mint выключен логически”
Сканеры смотрят на код, не на обещания.
➡️ Только новый контракт.
2. Can Modify Tax
Проблема:
В коде есть:
setTax()setBuyTax()setSellTax()или любые переменные, меняющие комиссию
Даже если сейчас 0%.
Почему критично:
owner может включить 99% tax
rug-механика
Как исправляется:
❌ полностью удалить налоговую логику
✔ либо жёстко зашить tax = 0 и без setter’ов
НЕ считается исправлением:
“tax сейчас 0”
“я не меняю”
➡️ Новый контракт.
3. Is Transfer Pausable
Проблема:
Есть:
pause() / unpause()whenNotPausedPausableиз OpenZeppelin
Почему критично:
торговлю можно заморозить
централизованный контроль
Как исправляется:
❌ не использовать
Pausable❌ не иметь
pauseфункций вообще
НЕ считается исправлением:
“я не буду ставить на паузу”
“pause только для emergency”
➡️ Новый контракт.
4. Ownership Not Renounced
Проблема:
Owner всё ещё существует.
Почему критично:
owner может:
менять tax
паузить
минтить
менять логику
Как исправляется:
✔
renounceOwnership()✔ owner =
0x0000000000000000000000000000000000000000
⚠️ Но важно:
Renounce имеет смысл ТОЛЬКО если вышеуказанных функций НЕТ.
Renounce + mint = всё равно HIGH RISK.
5. Privilege Ratio 99.99% / Major Holder Ratio 100%
Проблема:
весь supply у owner / dev
нет распределения
Почему влияет на листинги:
rug-риск
“single holder control”
Как минимально исправляют (даже бесплатно):
✔ часть supply в LP
✔ часть — burned (
0xdead)✔ часть — airdrop / disperse
⚠️ Это вторично, но без этого тоже будут отказы.
6. Что НЕ проблема (и это у тебя ОК)
✔ No blacklist — хорошо
✔ No whitelist — хорошо
✔ Cannot modify balances — хорошо
✔ Honeypot — OK
Это плюсы, но они не перекрывают критичные флаги выше.
ЖЁСТКИЙ ИТОГ
Текущий контракт:
❌ не подлежит “исправлению”
❌ не будет принят ни одним бесплатным листингом
❌ будет всегда HIGH RISK
ЧТО ДЕЛАЮТ ВСЕ, КТО ПРОШЁЛ ЭТОТ ЭТАП
Единственный рабочий путь:
Деплой нового контракта
Минимальный ERC-20 / BEP-20:
fixed supply
no mint
no pause
no tax
renounceOwnershipНовый пул
Старый токен = deprecated
Это нормальная практика, не провал.
Сейчас ситуация такая: токен с высоким риском, и при этом есть связанные контракты, которые можно использовать для передачи части управления (т.е. “treasury” / “governance”) другому контракту.
Давай разберём по шагам, что реально можно сделать, чтобы минимизировать HIGH RISK и попытаться сохранить текущий контракт:
1️⃣ Передача привилегий (“treasury” / “governance”)
Если твой токен поддерживает transferOwnership или аналог:
Можно передать owner доверенному контракту, который управляет:
mint (если нужен)
tax (если нужен)
pausing (если нужен)
Этот контракт может быть multi-sig, DAO или governance contract
Эффект:
HashDit / DappBay видят не одного централизованного owner, а контракт с несколькими сигами
PRIVILEGE RATIO падает с 99.99% до “контролируемого”
Это частично снижает HIGH RISK, но не снимает полностью все флаги:
Unlimited mint
Can Modify Tax
Transfer Pausable
⚠️ Многие агрегаторы всё равно проверяют код токена, а не owner. То есть если mint или pause есть в контракте, риск остаётся.
2️⃣ Мульти-сиг / DAO как “трежюр”
Создаёшь MultiSig (3/5 или 5/7)
Передаёшь owner токена на этот MultiSig
Теперь только коллектив может менять функции
Создаёшь MultiSig (3/5 или 5/7)
Передаёшь owner токена на этот MultiSig
Теперь только коллектив может менять функции
Что меняется для агрегаторов:
Privilege Ratio = меньше (т.к. несколько владельцев)
“Hidden Owner” риск уменьшается
Но High Risk по mint / pause / tax остаётся
3️⃣ Governance контракт с ограничениями
Можно написать обёртку:
токен остаётся mintable / pausible
но governance contract всегда строго ограничивает функции, например:
mint нельзя больше, чем X токенов
tax фиксирован
pause только в экстренных случаях с лимитом времени
Эффект:
HashDit / DappBay видят меньший риск (если контракт проверяет owner contract)
Но всё равно не будет полностью “safe” для CoinGecko / CoinPaprika
4️⃣ Реальная практика
Если хочешь попасть в бесплатные листинги / агрегаторы:
Owner нужно renounce, или передать на DAO, который не может бесконечно mint/pause/tax
Mint / Pause / Tax должны быть жёстко ограничены
Major Holder Ratio нужно снизить через LP / airdrop
Если оставляешь текущий контракт как есть:
Всё равно только DexScreener / GeckoTerminal
CoinGecko, CoinPaprika, японские листинги не возьмут
Если хочешь попасть в бесплатные листинги / агрегаторы:
Owner нужно renounce, или передать на DAO, который не может бесконечно mint/pause/tax
Mint / Pause / Tax должны быть жёстко ограничены
Major Holder Ratio нужно снизить через LP / airdrop
Если оставляешь текущий контракт как есть:
Всё равно только DexScreener / GeckoTerminal
CoinGecko, CoinPaprika, японские листинги не возьмут
🔹 Вывод
Передача на Treasury / Governance помогает уменьшить централизованность
Но High Risk полностью не убирается, если токен остаётся mintable / pausible / с модифицируемым tax
Единственный 100% способ пройти все сканеры — новый контракт с renounced ownership и фиксированным supply
Передача на Treasury / Governance помогает уменьшить централизованность
Но High Risk полностью не убирается, если токен остаётся mintable / pausible / с модифицируемым tax
Единственный 100% способ пройти все сканеры — новый контракт с renounced ownership и фиксированным supply
ВАЖНОЕ ОГРАНИЧЕНИЕ (честно)
Через PowerShell / on‑chain транзакции можно:
-
✔ передать
owner -
✔ передать
roles(MINTER_ROLE, PAUSER_ROLE, TAX_ROLE и т.п.) -
✔ отозвать роли у EOA
-
✔ передать управление в treasury / governance / multisig
-
✔ частично снизить
Privilege Ratio,Hidden Owner
❌ НЕЛЬЗЯ:
-
удалить
mint()из байткода -
удалить
pause() -
убрать setter’ы tax
-
убрать сам факт “mintable”
То есть:
HIGH RISK полностью не исчезнет,
но его можно понизить до MEDIUM / ATTENTION, что уже меняет отношение части каталогов и сканеров.
Какие роли есть в контракте:
-
owner()
-
transferOwnership(address)
-
renounceOwnership()
owner()
transferOwnership(address)
renounceOwnership()
Или используется AccessControl:
-
DEFAULT_ADMIN_ROLE -
MINTER_ROLE -
PAUSER_ROLE -
TAX_ROLE/FEE_ROLE
Куда МЫ ПЕРЕДАЁМ ПРАВА
Нужно выбрать адрес-получатель:
Один из вариантов:
-
Treasury contract (адрес)
-
Governance contract (адрес)
-
MultiSig (Safe) (адрес)
-
ВРЕМЕННО: burn‑адрес
0x000…000(если можно)
👉 Без этого нельзя писать транзакции.
Что именно хотим сделать (приоритет)
Расставь приоритеты 1–5:
-
передать
owner -
убрать EOA из
MINTER_ROLE -
убрать EOA из
PAUSER_ROLE -
передать tax‑контроль в treasury
-
renounce ownership (если вообще допустимо)

Комментарии
Отправить комментарий