Skip to content

[Feature Request] Add Bytecode Verification Status with Warnings to provide secure source code display #114

Description

@apenzk

🚀 Feature Request Description

Integrate bytecode verification status display in the explorer to show warnings when source code doesn't match deployed bytecode.

Is your feature request related to a problem? Please describe your use case.

The explorer currently displays source code from PackageRegistry without verifying that it matches the deployed bytecode. This creates a security vulnerability where malicious actors can provide fake source code that doesn't match what's actually running on-chain, misleading users into thinking they're viewing the actual contract code.

Impact:

  • High: Users cannot trust the source code displayed in the explorer
  • Exploit: Deployers can publish contracts with intentionally misleading source code
  • User Risk: Developers and auditors may make decisions based on incorrect source code

Expected Behavior

Describe the solution you would like

  • Explorer should query node verification status before displaying code
  • If verification is enabled and passes (verified: true): Show code normally
  • If verification is enabled and fails (verified: false): Show code with warning
  • If verification is disabled or unavailable: Hide code with appropriate message

The explorer should integrate with the node-side bytecode verification API endpoint:

  • GET /v1/accounts/{address}/modules/{module_name}/verification_status
  • Query verification status before displaying source code
  • Display appropriate warnings or hide code based on verification results
  • Provide clear user feedback for all states (loading, verified, failed, disabled)

Additional context

Current Behavior:

  • Explorer fetches source code from PackageRegistry metadata and displays it directly
  • No verification mechanism exists to check if source matches bytecode
  • Users see a disclaimer but code is still shown without verification

Solution:
This issue is addressed by a PR that integrates the bytecode verification API endpoint into the explorer UI.

Testing:
A test setup is available at analysis-explorer-vulnerability that demonstrates:

  • Valid contract with matching source/bytecode
  • Invalid contract with mismatched source/bytecode

Are you willing to open a pull request? (See CONTRIBUTING)

Yes, a pull request is ready that implements this feature.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions