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

Методика строится слоями. Сначала подтверждают contract, mint или jetton master. Затем связывают source с deployed code и раскрывают proxy. После этого читают owner, roles, mint, pause, blacklist, fees и limits. Экономический слой включает holders, vesting, treasury, pool и price impact. Последний слой проверяет approve, Permit, Permit2, calldata и simulation. Пропуск любого слоя оставляет существенную слепую зону.

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

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

Уровень Главный вопрос Риск
Идентификация какой актив и сеть чужой contract
Код что исполняется hidden implementation
Управление кто меняет правила mint, pause, blacklist
Рынок можно ли выйти honeypot и empty pool
Подпись что получает spender unlimited permission
Доказательства можно ли воспроизвести нет block и raw data

Идентификация и объект проверки

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Сеть и chain ID

адрес существует только внутри конкретной сети. В технической проверке необходимо установить: chain ID, полный address, explorer и block number. Этот факт рассматривают отдельно от популярности проекта и цены, потому что копия в другой сети выглядит идентично.

Практический порядок действий: сверить два первичных источника и сохранить полный адрес. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Нативная монета и контрактный токен

native asset отличается от wrapped, bridged и receipt token. На уровне блокчейна проверяющий собирает следующие данные: тип актива, механизм mint/burn и redemption. Поверхностный интерфейс не заменяет эти сведения; иначе WETH или сторонняя обёртка принимается за ETH.

До взаимодействия выполните процедуру: зафиксировать экономическую и техническую форму актива. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Token, pool, router и vault

разные contracts выполняют разные роли. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: role map, owner, verified status и связи адресов. Ошибка критична, поскольку настоящий router не делает безопасным неизвестный spender.

Безопасная последовательность: разнести адреса по функциям в отдельной таблице. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Source, ABI и bytecode

читаемый source, ABI и исполняемый bytecode не тождественны. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: compiler, optimizer, libraries, constructor и runtime code. Практическое последствие неполной проверки — декодер скрывает неизвестную функцию или proxy target.

Мера контроля формулируется конкретно: воспроизвести bytecode и сохранить параметры сборки. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Текущее состояние storage

код задаёт пределы, а storage хранит действующие значения. В технической проверке необходимо установить: owner, fees, limits, pair, router, pause и blacklist. Этот факт рассматривают отдельно от популярности проекта и цены, потому что безопасная функция настроена на максимальный tax.

Практический порядок действий: читать значения на зафиксированном блоке. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Deployer и deployment history

создание связывает contract с funding, constructor и первичными правами. На уровне блокчейна проверяющий собирает следующие данные: deploy, initialize, mint, pool и ownership events. Поверхностный интерфейс не заменяет эти сведения; иначе серия короткоживущих токенов маскируется новым адресом.

До взаимодействия выполните процедуру: построить хронологию от funding до первых сделок. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Стандарт и реальное transfer-поведение

ERC-20 допускает tax, rebase, blacklist и callbacks. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: внутренний transfer path, modifiers и external calls. Ошибка критична, поскольку стандартный интерфейс создаёт ложное ожидание нейтральности.

Безопасная последовательность: проверить buy, sell и wallet-to-wallet ветви. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Дата и воспроизводимость

любой вывод относится к конкретному состоянию chain. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: UTC, block, implementation, storage values и hash отчёта. Практическое последствие неполной проверки — upgrade делает вчерашний отчёт неактуальным.

Мера контроля формулируется конкретно: назначить срок действия и triggers повторной проверки. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Объект Что установить Действие
Сеть и chain ID chain ID сверить два первичных источника и сохранить полный адрес
Нативная монета и контрактный токен тип актива зафиксировать экономическую и техническую форму актива
Token, pool, router и vault role map разнести адреса по функциям в отдельной таблице
Source, ABI и bytecode compiler воспроизвести bytecode и сохранить параметры сборки
Текущее состояние storage owner читать значения на зафиксированном блоке
Deployer и deployment history deploy построить хронологию от funding до первых сделок

Исходный код и исполняемая логика

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Триангуляция официального адреса

один сайт не является достаточным источником. На уровне блокчейна проверяющий собирает следующие данные: docs, repository, governance, exchange и explorer. Поверхностный интерфейс не заменяет эти сведения; иначе компрометированный канал публикует подменённый contract.

До взаимодействия выполните процедуру: остановиться при расхождении до выяснения версии и сети. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Что означает Verified Source

verification доказывает совпадение source и bytecode. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: compiler settings, libraries и constructor args. Ошибка критична, поскольку полностью открытый code содержит mint или 99% fee.

Безопасная последовательность: использовать Verified как начало, а не итог анализа. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Неверифицированный bytecode

decompilation не восстанавливает исходную структуру без потерь. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: selectors, delegatecall, assembly и external targets. Практическое последствие неполной проверки — автоматический decoder ошибается из-за коллизии signature.

Мера контроля формулируется конкретно: считать непрозрачность сильным стоп-сигналом. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Compiler и optimizer

версия и параметры сборки меняют bytecode. В технической проверке необходимо установить: solc version, runs, EVM target, metadata и known bugs. Этот факт рассматривают отдельно от популярности проекта и цены, потому что плавающая pragma не доказывает фактическую сборку.

Практический порядок действий: сопоставить verification metadata с release notes. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Libraries и внешние модули

token зависит от oracle, registry, policy и fee manager. На уровне блокчейна проверяющий собирает следующие данные: dependency graph, owners и replaceable addresses. Поверхностный интерфейс не заменяет эти сведения; иначе безопасный основной code вызывает компрометированный module.

До взаимодействия выполните процедуру: классифицировать immutable и admin-changeable зависимости. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Minimal proxy и clone

короткий clone делегирует общей implementation. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: factory, implementation, initializer и clone parameters. Ошибка критична, поскольку аудит соседнего экземпляра переносится без оснований.

Безопасная последовательность: проверить конкретную инициализацию и storage. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Proxy, implementation и admin

proxy хранит state, implementation исполняет логику. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: ERC-1967 slots, beacon, ProxyAdmin и Upgraded events. Практическое последствие неполной проверки — verified proxy скрывает непроверенную реализацию.

Мера контроля формулируется конкретно: раскрыть всю control chain и историю версий. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Constructor и initializer

proxy использует initializer вместо обычного constructor. В технической проверке необходимо установить: initialization calldata, roles и блокировка повторного вызова. Этот факт рассматривают отдельно от популярности проекта и цены, потому что первый внешний caller захватывает owner или upgrade role.

Практический порядок действий: декодировать initialization transaction и authorizeUpgrade. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Объект Что установить Действие
Триангуляция официального адреса docs остановиться при расхождении до выяснения версии и сети
Что означает Verified Source compiler settings использовать Verified как начало
Неверифицированный bytecode selectors считать непрозрачность сильным стоп-сигналом
Compiler и optimizer solc version сопоставить verification metadata с release notes
Libraries и внешние модули dependency graph классифицировать immutable и admin-changeable зависимости
Minimal proxy и clone factory проверить конкретную инициализацию и storage

Полномочия и изменение правил

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Ownable и owner

owner может быть EOA, multisig, timelock или contract. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: all onlyOwner methods, pending owner и transfer history. Ошибка критична, поскольку один private key контролирует критические функции.

Безопасная последовательность: записать предел, задержку и ущерб каждой функции. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

AccessControl и роли

MINTER, PAUSER и BLACKLISTER живут независимо от owner. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: RoleGranted, RoleRevoked, role admin и members. Практическое последствие неполной проверки — renounced ownership оставляет DEFAULT_ADMIN_ROLE.

Мера контроля формулируется конкретно: построить граф role-to-admin-to-address. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Mint и cap

mint увеличивает supply и способен размыть держателей. В технической проверке необходимо установить: mint paths, cap, zero-address events и обеспечение. Этот факт рассматривают отдельно от популярности проекта и цены, потому что новые tokens продаются в pool за встречную ликвидность.

Практический порядок действий: сравнить кодовый предел, события и бизнес-основание. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Burn, wipe и seize

обычный burn отличается от административного уничтожения чужого balance. На уровне блокчейна проверяющий собирает следующие данные: burnFrom, wipe, confiscate, allowance и role. Поверхностный интерфейс не заменяет эти сведения; иначе регулируемый control ошибочно принимается за self-custody.

До взаимодействия выполните процедуру: зафиксировать субъект, основания и историю применения. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Pause

pauser способен остановить transfer, mint или redemption. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: whenNotPaused paths, pauser и история остановок. Ошибка критична, поскольку цена видна, но выйти или вывести невозможно.

Безопасная последовательность: оценить длительность и emergency policy. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Blacklist и freeze

ограничение применяется к отдельному sender или recipient. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: denylist mappings, events и privileged setters. Практическое последствие неполной проверки — обычный holder блокируется при работающем рынке.

Мера контроля формулируется конкретно: не обходить запрет, а сохранить доказательства и процедуру. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Изменяемые fees

buy, sell и transfer tax имеют разные recipients и limits. В технической проверке необходимо установить: fee setters, denominator, maximum и exclusions. Этот факт рассматривают отдельно от популярности проекта и цены, потому что нулевой tax мгновенно становится 99 процентами.

Практический порядок действий: симулировать net и учитывать худший кодовый сценарий. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

maxTx, maxWallet и cooldown

лимиты зависят от amount, block или balance. На уровне блокчейна проверяющий собирает следующие данные: current values, exclusions и setters. Поверхностный интерфейс не заменяет эти сведения; иначе микросделка проходит, а основная позиция остаётся запертой.

До взаимодействия выполните процедуру: тестировать фактический размер и полный exit cost. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Объект Что установить Действие
Ownable и owner all onlyOwner methods записать предел
AccessControl и роли RoleGranted построить граф role-to-admin-to-address
Mint и cap mint paths сравнить кодовый предел
Burn, wipe и seize burnFrom зафиксировать субъект
Pause whenNotPaused paths оценить длительность и emergency policy
Blacklist и freeze denylist mappings не обходить запрет

Предложение, holders и liquidity

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

totalSupply и decimals

raw supply и отображаемые units требуют раздельного учёта. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: decimals, totalSupply, cap, mint и burn history. Практическое последствие неполной проверки — интерфейс показывает неверное количество или supply.

Мера контроля формулируется конкретно: сохранять raw integer и коэффициент отображения. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Классификация top holders

pool, burn, bridge, exchange и treasury имеют разный смысл. В технической проверке необходимо установить: code крупных addresses и история накопления. Этот факт рассматривают отдельно от популярности проекта и цены, потому что LP или custody ошибочно считается командным китом.

Практический порядок действий: рассчитать скорректированную концентрацию. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Mint и burn events

zero-address Transfer не покрывает все custom models. На уровне блокчейна проверяющий собирает следующие данные: logs, supply changes, traces и implementation history. Поверхностный интерфейс не заменяет эти сведения; иначе сторонний график пропускает rebase или нестандартный mint.

До взаимодействия выполните процедуру: проверить ключевые периоды и настроить alerts. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Treasury и vesting

lock определяется code, а не маркетинговой меткой. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: beneficiary, cliff, duration, revoke, rescue и upgrade. Ошибка критична, поскольку admin меняет расписание или выводит underlying.

Безопасная последовательность: построить календарь unlock по on-chain условиям. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Liquidity pool

reserves и active range определяют исполнимый обмен. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: factory, pair, reserves, ticks и LP holders. Практическое последствие неполной проверки — высокая TVL скрывает узкий range или одного LP.

Мера контроля формулируется конкретно: рассчитать impact на своём объёме. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Liquidity lock

locker может иметь emergency unlock или upgrade. В технической проверке необходимо установить: pool, deposit, beneficiary, time и code locker. Этот факт рассматривают отдельно от популярности проекта и цены, потому что показывается lock другого pool или token ID.

Практический порядок действий: сопоставить exact asset и условия разблокировки. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Cross-chain supply

bridge версии требуют проверки backing и redemption. На уровне блокчейна проверяющий собирает следующие данные: canonical mapping, escrow, mint authority и locked amount. Поверхностный интерфейс не заменяет эти сведения; иначе supply считается дважды, а сторонняя версия не обеспечена.

До взаимодействия выполните процедуру: разделять canonical и third-party assets. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Cash flow комиссий

fee wallet может продавать tokens и менять recipient. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: internal transactions, swaps и treasury destinations. Ошибка критична, поскольку комиссия на развитие создаёт постоянное давление продаж.

Безопасная последовательность: нарисовать flow of funds для buy и sell. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Объект Что установить Действие
totalSupply и decimals decimals сохранять raw integer и коэффициент отображения
Классификация top holders code крупных addresses и история накопления рассчитать скорректированную концентрацию
Mint и burn events logs проверить ключевые периоды и настроить alerts
Treasury и vesting beneficiary построить календарь unlock по on-chain условиям
Liquidity pool factory рассчитать impact на своём объёме
Liquidity lock pool сопоставить exact asset и условия разблокировки

Покупка, продажа и honeypot

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Honeypot

buy разрешён, а sell блокируется logic или admin action. В технической проверке необходимо установить: transfer code, blacklist, fork simulation и real sells. Этот факт рассматривают отдельно от популярности проекта и цены, потому что успешная покупка воспринимается как доказательство выхода.

Практический порядок действий: симулировать полный цикл на нескольких amounts. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Sell tax и net amount

итог включает token tax, DEX fee и price impact. На уровне блокчейна проверяющий собирает следующие данные: balance changes, fee recipients и code maximum. Поверхностный интерфейс не заменяет эти сведения; иначе quote интерфейса не показывает фактическое удержание.

До взаимодействия выполните процедуру: рассчитать net proceeds и worst case. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Pair и router restrictions

contract обрабатывает разные AMM addresses неодинаково. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: pair mapping, factory, router и setPair events. Ошибка критична, поскольку sell на одной DEX не означает sell на другой.

Безопасная последовательность: проверить точный официальный market route. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Blacklist после покупки

buyer может быть помечен между purchase и sell. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: storage writes, antiBot module и история других buyers. Практическое последствие неполной проверки — atomic simulation не видит межблочное действие admin.

Мера контроля формулируется конкретно: искать независимые продажи спустя несколько блоков. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Размер позиции

maxTx позволяет small test, но блокирует полный exit. В технической проверке необходимо установить: limits, exclusions и число требуемых transactions. Этот факт рассматривают отдельно от популярности проекта и цены, потому что разбиение уничтожает результат gas и slippage.

Практический порядок действий: моделировать размер, близкий к планируемому. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Cooldown и block delay

повторная операция запрещена до времени или блока. На уровне блокчейна проверяющий собирает следующие данные: lastTransfer, launchBlock и revert reason. Поверхностный интерфейс не заменяет эти сведения; иначе невозможно быстро выйти при падении рынка.

До взаимодействия выполните процедуру: не повышать slippage при логическом запрете. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Fork simulation

копия state показывает calls, events и reverts. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: sender, block, calldata, router, amount и approvals. Ошибка критична, поскольку успех не предсказывает изменение state до inclusion.

Безопасная последовательность: сохранить trace и повторить перед сделкой. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Реальные независимые sells

операции owner и excluded wallets не являются нейтральной выборкой. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: sellers, holding time, taxes и whitelist status. Практическое последствие неполной проверки — команда имитирует рынок разрешёнными addresses.

Мера контроля формулируется конкретно: проверить несколько обычных holders. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Объект Что установить Действие
Honeypot transfer code симулировать полный цикл на нескольких amounts
Sell tax и net amount balance changes рассчитать net proceeds и worst case
Pair и router restrictions pair mapping проверить точный официальный market route
Blacklist после покупки storage writes искать независимые продажи спустя несколько блоков
Размер позиции limits моделировать размер
Cooldown и block delay lastTransfer не повышать slippage при логическом запрете

Proxy, upgrade и governance

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Transparent proxy

ProxyAdmin управляет реализацией отдельно от пользователей. На уровне блокчейна проверяющий собирает следующие данные: admin slot, ProxyAdmin owner и upgrade history. Поверхностный интерфейс не заменяет эти сведения; иначе верхний owner меняет всю систему.

До взаимодействия выполните процедуру: включить каждый уровень в control graph. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

UUPS

upgrade logic находится в implementation. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: authorizeUpgrade, onlyProxy и storage layout. Ошибка критична, поскольку неверная role позволяет заменить code.

Безопасная последовательность: проверить access и migration tests. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Beacon

один beacon задаёт implementation множеству proxies. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: beacon slot, owner и dependent instances. Практическое последствие неполной проверки — ошибка имеет большой blast radius.

Мера контроля формулируется конкретно: мониторить beacon, а не только proxy. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

ERC-1967 slots

стандартные slots раскрывают implementation, admin и beacon. В технической проверке необходимо установить: RPC storage reads и Upgraded events. Этот факт рассматривают отдельно от популярности проекта и цены, потому что пустой slot ошибочно трактуется как immutable.

Практический порядок действий: исследовать custom delegatecall при отсутствии стандарта. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Diamond facets

selectors распределены между несколькими facets. На уровне блокчейна проверяющий собирает следующие данные: facet map, diamondCut и shared storage. Поверхностный интерфейс не заменяет эти сведения; иначе анализ одного facet пропускает критические methods.

До взаимодействия выполните процедуру: собрать полный selector map и историю cuts. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Storage layout

новая implementation читает старые slots. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: layout diff, gaps, namespaces и migration. Ошибка критична, поскольку честный upgrade повреждает balances и allowances.

Безопасная последовательность: требовать fork tests и reproducible diff. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Multisig

threshold и modules важнее самой метки multisig. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: owners, threshold, modules, guards и changes. Практическое последствие неполной проверки — несколько адресов одной стороны не дают независимость.

Мера контроля формулируется конкретно: фиксировать точную конфигурацию и bypass paths. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Timelock и governance

delay и voting создают окно реакции. В технической проверке необходимо установить: minDelay, proposers, executors, quorum и emergency council. Этот факт рассматривают отдельно от популярности проекта и цены, потому что короткое окно или концентрация голосов делает защиту формальной.

Практический порядок действий: считать минимальную коалицию и мониторить schedule. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Объект Что установить Действие
Transparent proxy admin slot включить каждый уровень в control graph
UUPS authorizeUpgrade проверить access и migration tests
Beacon beacon slot мониторить beacon
ERC-1967 slots RPC storage reads и Upgraded events исследовать custom delegatecall при отсутствии стандарта
Diamond facets facet map собрать полный selector map и историю cuts
Storage layout layout diff требовать fork tests и reproducible diff

Approve, Permit и подпись

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Approve и allowance

spender получает право transferFrom в пределах amount. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: token, spender, value и current allowance. Ошибка критична, поскольку unlimited approval действует на будущие поступления.

Безопасная последовательность: выдавать минимальный лимит и делать revoke. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Spender не равен сайту

домен показывает UI, а on-chain address получает право. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: официальный spender, code, proxy и owner. Практическое последствие неполной проверки — поддельный frontend подставляет вредоносный contract.

Мера контроля формулируется конкретно: отменить подпись при неизвестном spender. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

EIP-2612 Permit

подписанное сообщение создаёт allowance без gas transaction. В технической проверке необходимо установить: domain, chain ID, spender, value, nonce и deadline. Этот факт рассматривают отдельно от популярности проекта и цены, потому что relayer использует подпись позднее до срока.

Практический порядок действий: не подписывать unlimited value и неизвестный domain. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Permit2

общий module и app permission создают два слоя прав. На уровне блокчейна проверяющий собирает следующие данные: token-to-Permit2 allowance, spender, expiration и nonce. Поверхностный интерфейс не заменяет эти сведения; иначе отмена в UI не удаляет базовый approve.

До взаимодействия выполните процедуру: проверять и отзывать оба слоя. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

setApprovalForAll

operator управляет всеми NFT данной collection. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: collection, operator и approved boolean. Ошибка критична, поскольку листинг одного NFT выдаёт контроль над всей коллекцией.

Безопасная последовательность: предпочитать точечные permissions. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Calldata и selector

raw call определяет реальную функцию и arguments. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: verified ABI, selector, nested calls и value. Практическое последствие неполной проверки — кнопка Claim скрывает approve или arbitrary call.

Мера контроля формулируется конкретно: сохранять raw calldata и decoded view. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Multicall

одна transaction содержит несколько targets. В технической проверке необходимо установить: каждый target, value, calldata и balance change. Этот факт рассматривают отдельно от популярности проекта и цены, потому что понятный первый call маскирует опасный второй.

Практический порядок действий: не подписывать нераскрытый пакет. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Simulation и revoke

simulation показывает expected effects, revoke прекращает будущий allowance. На уровне блокчейна проверяющий собирает следующие данные: актуальный block, exact calldata и on-chain revoke result. Поверхностный интерфейс не заменяет эти сведения; иначе симуляция устаревает, а revoke не возвращает украденное.

До взаимодействия выполните процедуру: сверять prompt, simulation и итоговый state. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Объект Что установить Действие
Approve и allowance token выдавать минимальный лимит и делать revoke
Spender не равен сайту официальный spender отменить подпись при неизвестном spender
EIP-2612 Permit domain не подписывать unlimited value и неизвестный domain
Permit2 token-to-Permit2 allowance проверять и отзывать оба слоя
setApprovalForAll collection предпочитать точечные permissions
Calldata и selector verified ABI сохранять raw calldata и decoded view

Solana, TON и TRON

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Solana mint

mint account является глобальным identifier token. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: program, decimals, supply и associated accounts. Практическое последствие неполной проверки — metadata и symbol копируются на другом mint.

Мера контроля формулируется конкретно: брать mint только из первичного источника. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Solana authorities

mint и freeze authority контролируют выпуск и accounts. В технической проверке необходимо установить: SetAuthority history и multisig configuration. Этот факт рассматривают отдельно от популярности проекта и цены, потому что mint revoked скрывает активный freeze или extension.

Практический порядок действий: зафиксировать все authority types. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Token-2022 extensions

transfer fee, hook и permanent delegate меняют поведение. На уровне блокчейна проверяющий собирает следующие данные: extensions list и управляющие authorities. Поверхностный интерфейс не заменяет эти сведения; иначе биржа или dApp не поддерживает custom token.

До взаимодействия выполните процедуру: подтвердить совместимость именно этого mint. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

TON Jetton master

master и individual jetton wallet являются разными contracts. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: master, admin, supply, content и wallet code. Ошибка критична, поскольку wallet address принимается за identifier актива.

Безопасная последовательность: использовать allowlist trusted masters. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Jetton admin

master может mint, burn и менять admin. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: code, get_jetton_data и management messages. Практическое последствие неполной проверки — нулевой admin не исключает custom control.

Мера контроля формулируется конкретно: классифицировать fixed и administrated models. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

TRON TRC-20

contract address и TRONSCAN определяют token. В технической проверке необходимо установить: source, owner, mint, pause, blacklist и fees. Этот факт рассматривают отдельно от популярности проекта и цены, потому что одинаковый ticker скрывает чужой contract.

Практический порядок действий: сверить address и поддержку получателя. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

TRON permissions

account-level multisig дополняет contract owner. На уровне блокчейна проверяющий собирает следующие данные: threshold, keys и updateAccountPermissions. Поверхностный интерфейс не заменяет эти сведения; иначе multisig не ограничивает опасный contract code.

До взаимодействия выполните процедуру: анализировать permissions и logic совместно. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Биржевой депозит

площадка принимает конкретный contract, mint или master. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: asset, network, minimum, memo и confirmations. Ошибка критична, поскольку успешная chain transaction не зачисляется биржей.

Безопасная последовательность: копировать свежие реквизиты и делать test. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Объект Что установить Действие
Solana mint program брать mint только из первичного источника
Solana authorities SetAuthority history и multisig configuration зафиксировать все authority types
Token-2022 extensions extensions list и управляющие authorities подтвердить совместимость именно этого mint
TON Jetton master master использовать allowlist trusted masters
Jetton admin code классифицировать fixed и administrated models
TRON TRC-20 source сверить address и поддержку получателя

Профессиональный процесс

Раздел объединяет связанные проверки и показывает, как перейти от видимого интерфейса к фактическому on-chain состоянию. Каждый вывод привязан к точному адресу, сети и блоку; маркетинговые заявления используются только как гипотеза для проверки.

Быстрый фильтр

первичная проверка отсекает очевидную непрозрачность. В технической проверке необходимо установить: identity, source, proxy, roles, fees и liquidity. Этот факт рассматривают отдельно от популярности проекта и цены, потому что неизвестные ответы ошибочно становятся зелёными.

Практический порядок действий: требовать on-chain факт по каждому пункту. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Глубокая проверка

dependency graph и role graph раскрывают всю систему. На уровне блокчейна проверяющий собирает следующие данные: source review, RPC, traces, events и simulation. Поверхностный интерфейс не заменяет эти сведения; иначе scope завершается до обнаружения внешнего module.

До взаимодействия выполните процедуру: расширять анализ до всех critical dependencies. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Risk matrix

вероятность и ущерб оцениваются по отдельным scenarios. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: trigger, controller, impact и detectability. Ошибка критична, поскольку один процент скрывает разные типы риска.

Безопасная последовательность: разделять identity, code, admin, market и signature. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Стоп-сигналы

неизвестный address или hidden implementation нельзя додумывать. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: список отсутствующих доказательств и условие возобновления. Практическое последствие неполной проверки — FOMO заставляет принять неопределённость за безопасность.

Мера контроля формулируется конкретно: остановить действие до появления проверяемого факта. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Evidence pack

отчёт должен воспроизводиться другим специалистом. В технической проверке необходимо установить: addresses, block, source metadata, storage, traces и hash. Этот факт рассматривают отдельно от популярности проекта и цены, потому что один screenshot не доказывает состояние.

Практический порядок действий: сохранить raw data до и после transaction. Результат сохраняют вместе с сетью, полным адресом, номером блока и источником. Если доказательство отсутствует, пункт получает статус «не установлено», а не зелёную оценку.

Monitoring

допуск устаревает после upgrade, role, fee или liquidity change. На уровне блокчейна проверяющий собирает следующие данные: events, storage polling и bytecode hash. Поверхностный интерфейс не заменяет эти сведения; иначе indexer отстаёт или событие не эмитируется.

До взаимодействия выполните процедуру: иметь playbook остановки deposits. Затем определите, кто способен изменить параметр, какой существует предел и эмитируется ли событие. Такой формат превращает наблюдение в воспроизводимый вывод.

Автоматические scanners

detectors находят patterns, но не понимают всю экономику. Этот объект связывает код, текущее состояние и операционный риск. Проверяемые признаки: версии tools, raw findings и ручное подтверждение. Ошибка критична, поскольку зелёный score пропускает custom logic.

Безопасная последовательность: использовать несколько источников без голосования. Сохраните raw value и человеческую интерпретацию отдельно, чтобы при повторной проверке сравнить state по block number, а не по старому screenshot.

Допуск, лимит или отказ

решение может ограничивать сеть, сумму и allowed venues. Для профессионального отчёта недостаточно увидеть название функции или метку обозревателя. Нужно подтвердить: owner решения, review date, cap и exit plan. Практическое последствие неполной проверки — слово безопасно скрывает остаточный риск.

Мера контроля формулируется конкретно: назначить triggers отмены допуска. Если риск принимается, ему назначают лимит, monitoring и trigger пересмотра; при отсутствии контроля операцию останавливают до появления доказательства.

Объект Что установить Действие
Быстрый фильтр identity требовать on-chain факт по каждому пункту
Глубокая проверка source review расширять анализ до всех critical dependencies
Risk matrix trigger разделять identity
Стоп-сигналы список отсутствующих доказательств и условие возобновления остановить действие до появления проверяемого факта
Evidence pack addresses сохранить raw data до и после transaction
Monitoring events иметь playbook остановки deposits

Практические сценарии проверки смарт-контракта

Теоретические признаки становятся полезными, когда применяются к конкретному сценарию. Ниже показано, почему один положительный сигнал не перекрывает другой риск и как сформулировать проверяемое решение вместо общего впечатления. Каждый сценарий рассматривает объект, доказательства, возможное последствие и обязательную меру контроля.

Verified ERC-20 с изменяемой комиссией

Исходная ситуация: исходный код полностью подтверждён, текущий sell tax равен нулю, но onlyOwner может изменить значение до кодового максимума. зелёная метка доказывает только совпадение source и bytecode; риск создаёт комбинация setter, предела, owner и отсутствия timelock. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: в отчёте фиксируют current fee и maximum, проверяют owner, события прошлых изменений и принимают решение по худшему доступному сценарию. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Renounced owner с активным MINTER_ROLE

Исходная ситуация: owner возвращает zero address, однако AccessControl сохраняет адреса с MINTER_ROLE и DEFAULT_ADMIN_ROLE. формальный отказ от Ownable не удаляет role-based полномочия, а admin способен назначать новых участников. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: строят полный role graph, проверяют RoleGranted и оценивают максимальный дополнительный supply до покупки. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Transparent proxy под одним EOA

Исходная ситуация: token proxy и implementation верифицированы, но ProxyAdmin принадлежит обычному адресу с одним ключом. текущий code может быть качественным, однако единственный ключ способен заменить implementation без согласования с holders. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: фиксируют ProxyAdmin owner, историю upgrades и отсутствие delay; размер позиции ограничивают либо отказываются до передачи контроля multisig. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

UUPS через multisig и timelock

Исходная ситуация: authorizeUpgrade доступен timelock, который исполняет решения multisig после двух суток. upgradeability остаётся риском, но threshold, delay, прозрачные proposals и monitoring уменьшают вероятность незаметной замены. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверяют owners, modules, minDelay и emergency bypass, а alerts на schedule включают раньше, чем alerts на execution. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Неинициализированный clone

Исходная ситуация: factory создала minimal proxy, но transaction инициализации отсутствует, а initialize остаётся доступной внешнему caller. общая implementation может быть аудирована, однако конкретный clone не получил owner и параметры, поэтому первый пользователь способен захватить управление. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверку прекращают до подтверждённой initialization transaction и декодирования всех выданных ролей. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Proxy с неизвестной implementation

Исходная ситуация: explorer показывает proxy, но target не распознан автоматически и source самого proxy почти пуст. короткий fallback bytecode не раскрывает бизнес-логику; необходимо читать storage slots, trace delegatecall или custom registry. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: если implementation и admin chain не удаётся воспроизвести через RPC, contract получает статус непрозрачного и не допускается. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Locked LP при доступном unlimited mint

Исходная ситуация: основная liquidity position заблокирована на год, но MINTER_ROLE способен выпускать tokens без cap. lock уменьшает риск прямого изъятия конкретных LP tokens, но не мешает создать новый supply, продать его в pool и забрать встречный asset. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: liquidity lock не учитывают отдельно от mint; моделируют dilution и объём quote asset, доступный администратору. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Burned LP и новый рынок

Исходная ситуация: LP первого pair отправлен на burn address, однако owner может назначать новые AMM pairs и направлять fee в собственный wallet. сожжённая позиция защищает только один pool; новый рынок или изменение pair mapping создаёт отдельный route и новые условия transfer. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: составляют список всех active pairs, проверяют setPair, factory events и распределение liquidity по каждому рынку. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Продажи только fee-exempt адресов

Исходная ситуация: история содержит успешные sells, но все sellers входят в isExcludedFromFees или принадлежат deployer cluster. график создаёт видимость рынка, хотя обычный buyer может получить иной tax или запрет; выборка real sells должна быть независимой. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверяют несколько holders, их acquisition, exclusion status, holding time и полный transaction trace. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Blacklist между блоками

Исходная ситуация: покупка проходит, затем bot администратора добавляет buyer в denylist до следующего блока. atomic buy-sell simulation не воспроизводит межблочное privileged действие, поэтому только stateless test даёт ложный положительный результат. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: дополняют simulation анализом реальных buyers, событий blacklist и latency между buy и failed sell. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Solana Token-2022 с transfer hook

Исходная ситуация: mint использует Token-2022, а extension вызывает внешнюю программу при каждом transfer. стандартный balance и mint authority не описывают дополнительную логику; hook program может запрещать addresses или менять требования. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: открывают extension list, hook program, upgrade authority и compatibility каждой биржи или dApp. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Поддельный Jetton с настоящим символом

Исходная ситуация: TON wallet показывает имя USDT и знакомое изображение, но jetton master отличается от allowlist эмитента. metadata копируется свободно, а individual jetton wallet не является глобальным идентификатором актива. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: сверяют master, admin, supply, content и derived wallet code; неизвестный master не принимают независимо от отображаемой цены. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Верифицированный TRC-20 clone

Исходная ситуация: TRONSCAN подтверждает source, который повторяет стандартный template, но owner добавил blacklist и fee setter. verification и знакомая структура интерфейса не доказывают официальный token contract и нейтральность параметров. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: сверяют address с документацией эмитента, читают current owner, fees, blacklist и account permissions контролирующего адреса. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Мостовая версия с тем же тикером

Исходная ситуация: в целевой сети существует token с официальным symbol, выпущенный сторонним bridge, а не canonical issuer. цена может держаться около оригинала, но redemption зависит от bridge validators, escrow и доступности обратного маршрута. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверяют bridge mapping, locked backing, mint authority, limits и фактический выход в исходный asset. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Rebasing token в обычном pool

Исходная ситуация: баланс holders меняется через index, тогда как DEX и аналитика ожидают обычные Transfer events. простая сумма events не восстанавливает supply и результат; интеграция может ошибаться при учёте shares и rounding. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: считают position в shares и underlying, проверяют exchange rate, pool compatibility и поведение при rebase. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Fee-on-transfer в lending protocol

Исходная ситуация: token удерживает часть каждого transfer, а lending contract ожидает получение полного amount. deposit transaction может пройти с меньшим collateral либо revert, а интерфейс не всегда объясняет расхождение. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверяют поддерживаемые assets, actual balance delta, accounting code и не отправляют нестандартный token в неподтверждённый protocol. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Permit-фишинг без gas transaction

Исходная ситуация: сайт просит EIP-2612 signature и утверждает, что это вход или подтверждение владения. подпись содержит spender, value, nonce и deadline и способна создать allowance настоящего token без отдельного approve. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: декодируют domain и все поля, отказываются от unknown spender, а после подозрения проверяют allowance и переводят reserve. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Permit2 с забытым базовым approve

Исходная ситуация: пользователь отменил permission приложения, но unlimited token allowance на Permit2 сохранился. базовый слой сам по себе не даёт любому сайту списание, однако будущая вредоносная signature использует существующее разрешение. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проводят inventory token-to-Permit2 и app permissions, устанавливают разумные expirations и отзывают ненужный базовый allowance. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

setApprovalForAll для LP NFT

Исходная ситуация: интерфейс обещает изменить диапазон одной позиции, но запрашивает operator для всей collection. LP NFT представляет liquidity, поэтому полный operator способен переместить все позиции пользователя. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: сверяют collection и operator, используют отдельный wallet и выбирают точечный approval, если protocol его поддерживает. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Multicall со скрытым approve

Исходная ситуация: первая операция пакета выглядит как claim, вторая выдаёт unlimited allowance, третья вызывает неизвестный router. краткое описание wallet может показать только общий contract interaction, хотя balance effects распределены по нескольким calls. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: раскрывают каждый target и calldata, сравнивают simulation с prompt и отменяют пакет при любом неизвестном effect. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Неподдерживаемый биржей contract

Исходная ситуация: сеть депозита совпадает, адрес пользователя корректен, но отправлен другой token с тем же symbol. chain подтверждает transfer, однако внутренний allowlist биржи не распознаёт asset и автоматическое зачисление не происходит. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: перед переводом сверяют contract или mint в карточке депозита, minimum, memo и recovery policy, затем выполняют test. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Ошибка decimals в интерфейсе

Исходная ситуация: raw balance записан правильно, но wallet применил неверный коэффициент и показал огромную или нулевую сумму. визуальная ошибка не меняет state, однако может спровоцировать ошибочный transfer, accounting или оценку стоимости. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: сравнивают raw integer, decimals из contract и независимый explorer; не торгуют до устранения расхождения. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Концентрация в биржевом cold wallet

Исходная ситуация: аналитический сервис считает один custody address китом с десятками процентов supply. адрес агрегирует balances пользователей и не равен единому экономическому владельцу, хотя custody risk сохраняется. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: классифицируют exchange, bridge, pool, burn и vesting до расчёта concentration, а неопределённые addresses показывают отдельно. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Upgradeable vesting

Исходная ситуация: team tokens находятся в vesting contract, но admin может upgrade implementation или использовать rescue. график unlock выглядит жёстким, хотя control path способен изменить beneficiary, schedule или вывести underlying. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: проверяют proxy admin, storage layout, revoke, rescue и governance delay; календарь строят только по действующей implementation. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Oracle failure в transfer policy

Исходная ситуация: token спрашивает внешний oracle или compliance registry перед каждым transfer. ошибка, pause или malicious upgrade внешнего module блокирует движение при неизменном основном contract. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: включают module в dependency graph, проверяют fail-open или fail-closed поведение и настраивают monitoring target. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Pause у регулируемого stablecoin

Исходная ситуация: эмитент сохраняет pauser и blacklister для compliance и incident response. функции не делают asset автоматически мошенническим, но означают управляемый риск блокировки, который должен соответствовать задаче пользователя. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: оценивают правовую модель, историю применения, процедуру appeal и невозможность гарантировать unrestricted self-custody. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Ложный positive статического анализатора

Исходная ситуация: scanner отмечает reentrancy или arbitrary transfer, но path защищён role, invariant или невозможным state. finding является гипотезой и требует trace, data flow и контекст; автоматический severity нельзя копировать в финальный вывод. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: воспроизводят условие, фиксируют false positive reasoning и сохраняют unresolved issue, если доказательства недостаточны. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Audit другого commit

Исходная ситуация: проект показывает известный audit report, но audited commit и deployed implementation не совпадают. изменения после audit могли добавить privileged methods или исправить layout, поэтому badge не описывает текущий code. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: сопоставляют address, commit, compiler, implementation и scope; при несовпадении проводят самостоятельный review diff. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Upgrade сразу после аудита

Исходная ситуация: безопасная implementation прошла проверку, но через несколько дней proxy переключён на новую версию. старый report сохраняет историческую ценность, но не подтверждает текущую логику, storage compatibility и новые permissions. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: мониторинг Upgraded автоматически снимает допуск до verification source, diff, simulation и обновлённого решения. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Операционный ответ на critical event

Исходная ситуация: monitoring обнаружил новый minter, fee change или удаление основной liquidity. ценность alert появляется только при заранее определённых действиях; без playbook команда продолжает принимать deposits по инерции. Для вывода нельзя ограничиваться названием проекта, текущей ценой или одной меткой обозревателя; необходимо связать source, storage, events, control addresses и фактический market route.

Практическое решение: останавливают новые операции, сохраняют block evidence, повторяют analysis, уведомляют ответственных и возобновляют работу только по формальному решению. Результат фиксируют на конкретном block number, а неизвестные параметры сохраняют как ограничения анализа. Если contract upgradeable или зависит от внешнего module, проверка автоматически получает срок действия и triggers пересмотра.

Частые ошибки и финальный контроль

Считать Verified гарантией

Verified source подтверждает воспроизводимость bytecode, но опасная логика тоже может быть открытой. После верификации читают privileged functions, current implementation, storage и историю событий. Отдельно проверяются рынок и spender. Формула «код открыт — значит безопасно» игнорирует mint, blacklist, upgrade и экономически бессмысленную продажу.

Проверять только owner

Owner может быть нулевым, пока DEFAULT_ADMIN_ROLE, ProxyAdmin, beacon owner, timelock или внешний registry сохраняют контроль. Полный control graph должен показать каждый путь изменения критической функции и того, кто управляет верхним адресом. Renounce одного интерфейса не является доказательством неизменяемости.

Верить одному scanner

Сканеры используют разные detectors, indexers и simulation engines. Один не видит custom delegatecall, другой отмечает любой mint без анализа cap, третий проверяет только current tax. Расхождение нельзя решать голосованием. Критичный finding подтверждают source, storage, trace или event и сохраняют raw result.

Тестировать только микросумму

Малая transaction полезна для проверки адреса, но не воспроизводит maxTx, dynamic tax, price impact и полный exit. До покупки симулируют несколько amounts, проверяют обычные независимые sellers и рассчитывают число операций, gas и slippage. Успешный микросвоп не является основанием увеличивать позицию.

Использовать устаревший отчёт

Upgrade, role change, fee setter, pause, blacklist и удаление liquidity меняют risk без смены token address. Отчёт привязывают к block number и сроку действия. Для постоянного приёма токена monitoring событий и storage является частью допуска, а не дополнительным украшением.

Подключать основной wallet к проверке

Публичный contract, holder list, storage и transaction trace читаются без seed-фразы и private key. Для simulation достаточно публичного address или watch-only режима. Сервис, требующий recovery phrase для «анализа токена», сам является угрозой независимо от качества проверяемого code.

Ошибка Почему опасно Замена
один explorer может не видеть proxy RPC и второй indexer
один scanner ограниченная модель ручное подтверждение
только owner пропущены roles control graph
только малая продажа не проверен объём несколько simulations
audit badge scope не совпадает address, commit, implementation
старый снимок state изменился monitoring и новая проверка

Заключение

Профессионально проверить смарт-контракт токена означает связать идентификацию, code, управление, экономику и конкретную подпись. Проверка начинается с chain ID и полного identifier. Затем определяется runtime code и раскрывается proxy. После этого строится карта owner и roles, проверяются supply и liquidity, моделируется full exit и только потом оценивается approve или swap.

Verified source полезен, но не является сертификатом. Открытый contract может содержать unlimited mint или blacklist. Технически стандартный token может быть экономически непродаваемым. Безопасный token можно потерять через вредоносный spender. Поэтому итогом становится не слово «безопасно», а карта подтверждённых возможностей, остаточных рисков и мер контроля.

Если ключевой факт нельзя установить, корректный вывод — «риск не определён; действие остановлено». Для регулярной работы добавляются allowlist, position caps, monitoring и response playbook. Перед подписью используйте инструкции OneMagic: проверить сеть, проверить TxID, проверить contract и balance и проверить permissions.

Момент Сохранить Зачем
до сделки network, address, block доказать объект
после анализа roles, values, simulation воспроизвести вывод
перед подписью spender, calldata, effects сопоставить намерение
после transaction TxID, receipt, events подтвердить результат
после изменения upgrade event и новый отчёт не использовать старый допуск