BSC · DIAGNÓSTICO DE CONTRATOS

Verificação de Invariantes

Explore o diagnóstico do contrato, consulte o seu histórico e exporte os resultados num único painel.

LOCAL PROPERTY ENGINE

Relatório de diagnóstico

Ícone gerado a partir do endereço

Tether USD (USDT)

0x55d398326f99059ff775485246999027b3197955
Exportar PDF

Snapshot passivo BSC: bytecode, getters e slots observados no bloco indicado. Cenários dinâmicos não executados; a matriz explica as lacunas. Nenhuma transação pública foi enviada.

STATUS LOCAL Leigo: O plano gratuito permite três consultas por IP por dia, evitando sobrecarga.Pro: O plafond é reservado antes do motor e renova às 00:00 UTC. Este protótipo não chama a Alchemy; o controlo limita trabalho local e ajudará a proteger a quota RPC quando existir integração.Leigo: Indica se a avaliação local foi concluída, falhou ou não pôde ser realizada.Pro: Resultado semântico do gateway de triagem local. Distingue validação estrutural, replay suportado, abstenção e falha; não certifica segurança em produção.verified_observation

Veredicto do motor local

PADRÃO ESTRUTURAL Leigo: Sinaliza padrões no código que merecem atenção, incluindo possíveis bloqueios de inicialização. Um alerta não confirma perda de fundos.Pro: Identificação estática de assinaturas e seletores de risco, como initialize() / 0x8129fc1c e initialization_lock_risk. Não demonstra explorabilidade dinâmica.NÃO IDENTIFICADO

Classificação estrutural

IMPACTO EVM Leigo: Indica se o laboratório demonstrou um efeito financeiro no cenário local, sem movimentar moedas reais.Pro: Corresponde a impact_demonstrated do motor. Nos perfis suportados, avalia invariantes e deltas de balanço em replays locais do Forge; não autentica impacto num contrato publicado.Não demonstrado

Impacto na avaliação local

TELEMETRIA DO PROCESSO
TEMPO DE EXECUÇÃO Leigo: Mostra quanto tempo demorou o processo que realizou esta avaliação.Pro: wall_seconds mede a duração observada do ciclo do subprocesso isolado. O painel apresenta segundos com três casas decimais, não uma medição exata em milissegundos.
5.737 s

Duração medida do processo

CONSUMO DE MEMÓRIA Leigo: Mostra o maior consumo de memória observado no processo desta consulta, não o consumo total do servidor.Pro: peak_session_RSS_KiB é o pico RSS amostrado da sessão, convertido para MiB dividindo por 1024. Não é uma medição atómica; cerca de 33 MiB é uma referência observada, não um teto fixo.
32.9 MiB

Pico RSS amostrado da sessão

ESTADO DA EVM
PURGADO & LIMPO

Limpeza do processo local

Métricas do worker local; a limpeza confirmada não demonstra sucesso da avaliação, segurança do contrato ou RSS global constante.

🛡️ MATRIZ DE SEGURANÇA ESTRUTURAL

12 propriedades

Rastreio estrutural do bytecode. Um indicador exige revisão; ausência de indicadores não certifica segurança.

Factos observados na rede

Respostas de getters e slots no bloco do relatório. Não provam, por si só, os poderes efetivos nem a ausência de outros administradores.

owner()
0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d · endereço não nulo
getOwner()
0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d · endereço não nulo
Slot EIP-1967 · implementation
Slot zero; não exclui outros modelos de proxy
Slot EIP-1967 · admin
Slot zero; não exclui outros modelos de proxy
Slot EIP-1967 · beacon
Slot zero; não exclui outros modelos de proxy
DEFAULT_ADMIN_ROLE · 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d
Leitura indisponível
Role reportado · DEFAULT_ADMIN_ROLE
Enumeração indisponível; não significa ausência de administradores
Cobertura · source
not_evaluated · build_settings_incomplete
Cobertura · route
configured · etapa disponível
Cobertura · transfer
not_evaluated · etapa disponível
Cobertura · mint
not_evaluated · etapa disponível
Cobertura · ownership
not_evaluated · etapa disponível
Cobertura · initializer
not_evaluated · etapa disponível
Cobertura · blacklist
not_evaluated · etapa disponível
Cobertura · upgrade
not_evaluated · etapa disponível
Cobertura · router_mutability
not_evaluated · etapa disponível
Cobertura · supply
not_evaluated · etapa disponível
Cobertura · code
not_evaluated · etapa disponível
Cobertura · airdrop
not_evaluated · etapa disponível
Cobertura · dynamic_scenarios
not_run · target_not_authorized
Rota V2 ensaiada · direct_v2
0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c → 0x55d398326f99059ff775485246999027b3197955

Cobertura das 12 propriedades: 0 ensaios favoráveis · 0 alertas de cenário · 1 factos observados · 3 indicadores · 8 por demonstrar · 0 erros de execução. Não é uma pontuação de segurança.

Propriedades de segurança · evidências e limites

Minting restrito

⚠ Indicador encontrado · propriedade por demonstrar

PUSH4 compatível com mint(uint256) Permissões de mint não demonstradas: owner/roles não bastam; são necessários fonte verificada e cenário controlado. Motivo: Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Fornecimento imutável

⚠ Indicador encontrado · propriedade por demonstrar

PUSH4 compatível com burn(uint256) Motivo: Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Código não-atualizável

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: upgradeTo(address), upgradeToAndCall(address,bytes). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Sem taxas de transferência

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setTaxFeePercent(uint256), setFees(uint256,uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Sem limites de transação por bloco

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setMaxTxAmount(uint256), maxTransactionAmount(). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Sem cooldown

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: cooldownEnabled(), setCooldownEnabled(bool). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Sem funções de blacklist

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: blacklist(address), addBlackList(address), isBlackListed(address), isBlacklisted(address), blacklisted(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Renúncia de propriedade validada

⚠ Indicador encontrado · propriedade por demonstrar

PUSH4 compatível com owner() PUSH4 compatível com getOwner() PUSH4 compatível com transferOwnership(address) owner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios. getOwner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios. Motivo: Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Inicializador trancado

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: initialize(), initialize(address), openTrading(). Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Router de troca fixo

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: setRouter(address), updateRouter(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Código presente no snapshot

✓ Facto observado · código presente

Runtime não vazio observado no bloco indicado; não garante execução funcional nem persistência futura.

Airdrop · efeitos no cenário

⚠ Propriedade por demonstrar

Sem indicador reconhecido; ausência de seletor não prova a propriedade. Motivo: Nenhuma função suportada foi reconhecida no runtime observado: airdrop(address[],uint256), multiTransfer(address[],uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos.

Bloco: 132733794. As observações referem-se ao snapshot, não ao estado futuro.

Manual de Auditoria de InvariantesROTEIRO

Roteiro de ensaio para cenários suportados; não é um registo de operações executadas neste pedido.

  1. Depósito da conta de controlo: estabelecer o estado inicial e registar os balanços e os direitos de levantamento.
  2. Posição limite da conta de teste: definir a condição de fronteira e a propriedade financeira esperada.
  3. Replay atómico via Alchemy: num ensaio de fork configurado, executar o cenário e comparar os estados. Numa execução ativa, o laboratório utiliza um fork BSC via RPC; os cenários executados e os respetivos limites constam do JSON. Demonstrações e snapshots de histórico não executam um novo fork.
  4. Purga final anti-zombie do processo: encerrar e recolher os processos descendentes no finally; verificar cleanup_complete no diagnóstico. Isto não demonstra RSS global constante.

Um alerta estático não prova impacto no contrato publicado. O PDF exporta este snapshot, sem repetir a análise. Disponível durante dez minutos nesta sessão.

JSON completo do diagnósticoDADOS
{
  "target_address": "0x55d398326f99059ff775485246999027b3197955",
  "local_diagnostic_status": "verified_observation",
  "structural_pattern_identified": null,
  "local_impact_demonstrated": false,
  "result_origin": "bsc_live_fork",
  "fresh_execution_performed": true,
  "security_matrix": {
    "version": 2,
    "method": "runtime_structural_screen",
    "block_number": 132733794,
    "block_hash": "0x065f0a95627a5c887244171dae5eda42eba18eec1be990c97c4bd78f61b1ab2d",
    "checks": [
      {
        "id": "restricted_mint",
        "label": "Minting restrito",
        "status": "review_required",
        "evidence": [
          "PUSH4 compatível com mint(uint256)",
          "Permissões de mint não demonstradas: owner/roles não bastam; são necessários fonte verificada e cenário controlado."
        ],
        "reason": "Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "immutable_supply",
        "label": "Fornecimento imutável",
        "status": "review_required",
        "evidence": [
          "PUSH4 compatível com burn(uint256)"
        ],
        "reason": "Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "non_upgradeable",
        "label": "Código não-atualizável",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: upgradeTo(address), upgradeToAndCall(address,bytes). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "no_transfer_fees",
        "label": "Sem taxas de transferência",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: setTaxFeePercent(uint256), setFees(uint256,uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "no_block_limits",
        "label": "Sem limites de transação por bloco",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: setMaxTxAmount(uint256), maxTransactionAmount(). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "no_cooldown",
        "label": "Sem cooldown",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: cooldownEnabled(), setCooldownEnabled(bool). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "no_blacklist",
        "label": "Sem funções de blacklist",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: blacklist(address), addBlackList(address), isBlackListed(address), isBlacklisted(address), blacklisted(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "ownership_renounced",
        "label": "Renúncia de propriedade validada",
        "status": "review_required",
        "evidence": [
          "PUSH4 compatível com owner()",
          "PUSH4 compatível com getOwner()",
          "PUSH4 compatível com transferOwnership(address)",
          "owner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios.",
          "getOwner() devolve 0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d; não prova ausência de outros privilégios."
        ],
        "reason": "Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "initializer_locked",
        "label": "Inicializador trancado",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: initialize(), initialize(address), openTrading(). Fonte verificada não vinculada: build settings incomplete. Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "fixed_router",
        "label": "Router de troca fixo",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: setRouter(address), updateRouter(address). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      },
      {
        "id": "not_destroyed",
        "label": "Código presente no snapshot",
        "status": "verified",
        "evidence": [
          "Runtime não vazio observado no bloco indicado; não garante execução funcional nem persistência futura."
        ]
      },
      {
        "id": "no_malicious_airdrop",
        "label": "Airdrop · efeitos no cenário",
        "status": "inconclusive",
        "evidence": [
          "Sem indicador reconhecido; ausência de seletor não prova a propriedade."
        ],
        "reason": "Nenhuma função suportada foi reconhecida no runtime observado: airdrop(address[],uint256), multiTransfer(address[],uint256). Cenário dinâmico não executado: o endereço não está autorizado para cenários dinâmicos."
      }
    ],
    "limitations": [
      "Seletores podem colidir ou pertencer a dados; não demonstram funções alcançáveis.",
      "Sem análise de fonte verificada, implementação de proxy ou prova comportamental.",
      "Leituras parciais de owner, roles e slots; proxies personalizados, beacons e facetas não resolvidos exaustivamente."
    ],
    "access_observations": {
      "block_tag": "0x7e95b62",
      "getters": {
        "owner()": {
          "status": "canonical_address_returned",
          "address": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d"
        },
        "getOwner()": {
          "status": "canonical_address_returned",
          "address": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d"
        }
      },
      "proxy_slots": {
        "implementation": {
          "status": "read",
          "address": "0x0000000000000000000000000000000000000000"
        },
        "admin": {
          "status": "read",
          "address": "0x0000000000000000000000000000000000000000"
        },
        "beacon": {
          "status": "read",
          "address": "0x0000000000000000000000000000000000000000"
        }
      },
      "implementation": null,
      "roles_enumerated": false,
      "mint_permissions_proven": false,
      "default_admin_role_probes": [
        {
          "account": "0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d",
          "member": null
        }
      ],
      "role_samples": [
        {
          "role": "DEFAULT_ADMIN_ROLE",
          "role_id": "0x0000000000000000000000000000000000000000000000000000000000000000",
          "status": "unavailable",
          "reported_count": null,
          "members": [],
          "complete_authority_mapping": false
        }
      ]
    },
    "runtime_keccak256": "0x97a48aa4c129657440dafdacd4c836389734d28cc4a0ca7403e68da660a74a59",
    "pipeline_version": 5,
    "target_pipeline": {
      "source": {
        "status": "not_evaluated",
        "reason": "build_settings_incomplete",
        "contract_name": "BEP20USDT",
        "compiler_version": "v0.5.16+commit.9c3226ce",
        "source_sha256": "524e5600fd0447b3ac724e01d6b12945ad417cf261abbdf7278657f3a579822e",
        "runtime_binding_verified": false
      },
      "route": {
        "status": "configured",
        "reason": null,
        "target": "0x55d398326f99059ff775485246999027b3197955",
        "block_tag": "0x7e95b62",
        "router": "0x10ed43c718714eb63d5aa57b78b54704e256024e",
        "attempts": [
          {
            "path": [
              "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
              "0x55d398326f99059ff775485246999027b3197955"
            ],
            "status": "validated"
          }
        ],
        "wrapped_native": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
        "factory": "0xca143ce32fe78f1f7019d7d551a6402fc5350c73",
        "pair": "0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae",
        "pairs": [
          "0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae"
        ],
        "path": [
          "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
          "0x55d398326f99059ff775485246999027b3197955"
        ],
        "bridge": null,
        "route_kind": "direct_v2"
      },
      "dynamic_scenarios": {
        "status": "not_run",
        "reason": "target_not_authorized"
      }
    },
    "coverage_summary": {
      "version": 1,
      "total_properties": 12,
      "counts": {
        "scoped_pass": 0,
        "scenario_alert": 0,
        "observed_fact": 1,
        "indicator": 3,
        "unresolved": 8,
        "execution_error": 0
      },
      "scope": "evidence_categories_not_a_security_score"
    }
  },
  "contract_identity": {
    "address": "0x55d398326f99059ff775485246999027b3197955",
    "block_tag": "0x7e95b62",
    "name": "Tether USD",
    "symbol": "USDT",
    "source": "token_getters_untrusted"
  },
  "local_diagnostic": {
    "status": "verified_observation",
    "reason": "passive_snapshot_completed_dynamic_scenarios_not_run",
    "local_execution_context": "read_only_bsc_snapshot",
    "financial_property_evaluated": false,
    "impact_demonstrated": false,
    "forge_execution_performed": false,
    "public_transactions_sent": false,
    "observation": {
      "block_number": 132733794,
      "block_hash": "0x065f0a95627a5c887244171dae5eda42eba18eec1be990c97c4bd78f61b1ab2d",
      "runtime_sha256": "a5a6d887c581c25cba4104e4281a530044ba59d718e62cdaa80ef89900299d50",
      "runtime_bytes": 4413,
      "native_balance_wei": "0",
      "scope": "passive_bsc_rpc_snapshot_only"
    },
    "rpc_transport": {
      "scope": "python_read_only_calls_excludes_forge_and_explorer",
      "calls": 24,
      "attempts": 24,
      "retries": 0,
      "sleep_seconds": 0.0,
      "http_failures": {}
    },
    "process_resources": {
      "wall_seconds": 5.736576912982855,
      "peak_session_RSS_KiB": 33640,
      "sampled_session_CPU_seconds": 1.09,
      "memory_mib": 512,
      "cpu_seconds": 60,
      "wall_limit_seconds": 90,
      "cleanup_complete": true,
      "session_cleanup_attempted": true
    }
  },
  "limitations": [
    "Dynamic scenarios were not run because this target is not authorized for them."
  ],
  "time": "5.737 s",
  "memory": "32.9 MiB"
}

MONITORIZAÇÃO À SUA ESCALA

Planos de Monitorização Comercial

Proposta comercial ilustrativa. As capacidades executadas são as registadas no diagnóstico.

Plano Gratuito de Teste

$0

Ideal para explorar os cinco exemplos locais e conhecer o painel.

  • Leitura Básica de Bytecode
  • Acesso estrito aos 5 exemplos locais da cache
  • Limitação de 3 Scans diários por IP

Plano Trader / Growth

$49/mês

Análises pontuais para acompanhar os contratos da sua estratégia.

  • Auditoria Ativa de Qualquer Contrato DeFi
  • Simulação EVM em Tempo Real via Alchemy
  • Plafond Limitado a 20 Scans Manuais/mês
  • Sem Monitorização Contínua 24/7

Pagamento PayPal Sandbox

Pagamento de teste, sem cobrança real.

Plano Enterprise

Custom

Uma proposta adaptada às necessidades da sua equipa.

  • Mapeamento Deep PC EVM (Resolver N34)
  • Chave de API de Alta Velocidade Dedicada
  • Nós RPC Dedicados da Alchemy
  • Varreduras e Alertas Ilimitados

* Cerca de 33 MiB foram medidos em workers de callback; não constituem um teto universal. N34 permanece OPEN. Este protótipo não provisiona planos, APIs ou nós RPC. PayPal apenas em Sandbox: pagamentos de teste únicos, sem renovação mensal automática. É necessário login e configuração Sandbox; não há cobrança real. Contacto comercial ainda não disponível.