Skip to content

Title: feat: add contract verification badge for deployed token WASM - #426

Merged
zachyo merged 2 commits into
soropad:masterfrom
IFEANYIBRIGHT:feat/contract-verification-badge
Aug 3, 2026
Merged

Title: feat: add contract verification badge for deployed token WASM#426
zachyo merged 2 commits into
soropad:masterfrom
IFEANYIBRIGHT:feat/contract-verification-badge

Conversation

@IFEANYIBRIGHT

Copy link
Copy Markdown
Contributor

Closes #371
Adds a trust signal to token pages so visitors can tell whether a deployed contract runs the audited SoroPad WASM, has been modified, or can't be verified — combined with lock status, this answers the two questions that actually make a token credible: "does it run audited code" and "can the code still change."

Problem

Previously the token dashboard showed admin address and supply but nothing about the deployed code itself. Since upgrade() exists, a token that started as stock SoroPad code may no longer be — and a locked contract isn't necessarily what it appears either. There was no way for a visitor to verify contract integrity from the public page.

Changes

contracts/wasm-manifest.json — checked-in manifest of reference WASM hashes per release version, built in CI
.github/workflows/ci.yml — [describe what changed: manifest generation/validation step on each commit]
frontend/lib/stellar.ts — added VerificationResult and WasmManifest types, fetchWasmManifest(), and [the deployed-contract WASM hash reader — fill in once finalized]
frontend/hooks/useSoroban.ts — [describe the hook changes supporting verification state]
frontend/components/ui/ContractVerificationBadge.tsx — new badge component rendering Verified / Modified / Unknown states
frontend/app/api/wasm-manifest/ — new API route serving the manifest to the frontend
frontend/app/token/[contractId]/PublicTokenPage.tsx — badge added to the token detail page
frontend/app/components/RecentLaunches.tsx — badge added to launch cards
frontend/.env.example — [note any new env vars needed, e.g. manifest path/URL]

Verification states

Verified — deployed hash matches a known reference version; links to the source tag
Modified — hash doesn't match any known version; shown explicitly with a warning
Unknown — hash couldn't be read from the ledger entry

Combined with lock status
The badge is paired with is_locked() so holders see both signals together — audited code + immutability — rather than either alone.

Testing

[What did you test — verified/modified/unknown states against real deployed contracts? Local manifest mismatch simulation?]

@drips-wave

drips-wave Bot commented Jul 30, 2026

Copy link
Copy Markdown

@IFEANYIBRIGHT Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@zachyo
zachyo merged commit 6f51f17 into soropad:master Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Contract verification badge: prove a deployed token runs the audited WASM

2 participants