Back

Exact contract and mint verification

P08-L01 · P08 · P08-M01

Verify network address program and implementation identity

ILLUSTRATIVE · needs_review

Prerequisites: P01-L02 · P02-L03 · P03-L03

Learning objectives

  • Match network, address and object role.
  • Separate token identity from implementation.
  • Record provenance and identity gaps.

EN source master · P08-L01 · 45 minutes estimated · needs_review

Why this matters

Every later calculation depends on analysing the intended asset. A correct permission audit of the wrong contract is still a failed investigation. Names, symbols and icons help navigation but cannot serve as primary keys. This lesson extends exact-mint recognition into a reproducible identity record that distinguishes the account's role and the logic governing it.

You will match a declared target to supplied records, identify missing implementation evidence and write a result another analyst can repeat. You will not sign, approve or purchase anything.

Explanation

Build the identity tuple

Start with network, exact address and object type. Distinguish mainnet from test environments and different EVM chains. An address-shaped string alone is incomplete. An explorer URL can select a different network even when the displayed address looks familiar. Preserve the requested network when a search returns a more popular lookalike.

Write the full identifier rather than a shortened prefix. In real inspection validate encoding and compare decoded address bytes with a trustworthy tool. EVM checksum casing and Solana base58 conventions require different handling. The fixture uses invalid labels so no learner can accidentally transact with them; its comparisons are educational string comparisons.

Ask what object the identifier names. A Solana mint is distinct from a token account holding units and from the Token Program containing instruction logic [S08-TOKENS]. An EVM implementation behind a proxy is not automatically the user-facing balance address. Describe the role before using values.

Separate existence, logic and affiliation

A source returning an account is evidence of an object at a context, not evidence that a brand endorses it. An explorer's source-code verification concerns correspondence between source and deployed code; it does not certify official affiliation or audit completeness. These questions require separate records [S08-CODE]. Etherscan distinguishes exact from similar matches; similar matching can leave constructor or initialization differences. Inspect the stated match type rather than treating every badge as the same finding.

Use distinct outcomes: exact object matched, implementation unresolved and affiliation uncorroborated. A positive identity match does not resolve the other two. If code correspondence is supplied, preserve compiler, configuration and deployment scope rather than paraphrasing it as “safe.”

ERC-20 describes an interface; name and symbol are optional metadata, and compatibility does not certify a project [S08-ERC20]. Receiving the expected symbol therefore cannot settle affiliation. An implementation can expose familiar methods while including additional controls not described by the basic interface.

Trace the logic boundary

For a Solana mint record the Token Program owning its data account. Do not confuse the base program-owner field with the token-account owner field used for holdings. An extension-enabled mint needs extension-aware decoding. A basic parser that ignores additional state cannot establish that no additional behavior exists.

For a proxy, the requested token address can stay stable while delegated logic changes. ERC-1967 describes implementation or beacon linkage and an optional admin slot [S08-PROXY]. The actual deployment determines applicability; empty standard slots do not establish that every possible upgrade mechanism is absent.

Keep proxy address, implementation and context together. Code at one context and state at another create a mixed record. If linkage is unavailable, identify the user-facing object while marking logic resolution incomplete. Never fill that gap with whichever contract an interface labels “implementation.”

Preserve retrieval provenance

Record source, retrieval time, block or slot context where returned, commitment/finality and decoder assumptions. A timeout means unavailable data. A wrong-network response is a mismatch, not absence on the intended network. Do not silently retry on a different chain and combine those values.

Two interfaces may share an indexer. Agreement is useful but not automatically two independent observations. Record the underlying source if visible; otherwise say independence is unknown. A raw record and its decoding are more reproducible than a cropped image without the exact identifier.

Separate declared and corroborated targets. A screenshot claiming an official address is a declaration. Matching it proves only that you inspected its named object. Affiliation requires appropriately authenticated issuer sources with capture context, and even corroborated affiliation does not prove safety.

Use a stop rule

Stop identity-dependent conclusions when the tuple mismatches or the object role is unresolved. You can still document the gap; you cannot attach another asset's supply or permissions to the target. A generic search-result match is not a substitute.

A concise finding could say: “The requested network/address resolves to a mint in supplied S0. Its extension inventory and issuer affiliation are not supplied.” This preserves a positive finding and its boundaries. A complete record should also state what additional evidence would permit the next step.

An independent reviewer should be able to start from your tuple without guessing which network tab or truncated address you selected. Read-only verification protects this workflow: no wallet approval is needed to establish an object's identity, and no exercise requires credentials.

Key terms

  • Identity tuple: network, full address and object role.
  • Mint: Solana account representing a token.
  • Token account: separate account holding units for a mint.
  • Implementation: logic used by a delegated contract.
  • Provenance: source and context supporting a record.
  • Affiliation: relationship claimed to an issuer or brand.

Historical example

ILLUSTRATIVE — FIX-P08-01. S0 is fictional, not a real block. Declaration D1 requests SIM-SOL-A / MINT-ALPHA as a mint; issuer attribution is not authenticated.

RecordNetworkIdentifierSupplied role/linkage
I1SIM-SOL-AMINT-ALPHAmint, TOKEN-PROGRAM-A
I2SIM-SOL-BMINT-ALPHAmint, same symbol
I3SIM-SOL-AACCOUNT-ALPHAtoken account, mint MINT-ALPHA
I4SIM-SOL-AMINT-BETAmint, same symbol
I5SIM-EVM-ATOKEN-PROXYtoken proxy, implementation LOGIC-V1 at S0
I6SIM-EVM-ALOGIC-V1implementation code record

I1 contains basic fields but no extension inventory. I5 has linkage but no source/build correspondence.

What the evidence proves

OBSERVED in fixture: I1 matches D1's tuple; I3 references its mint but has a different role.

INFERRED: I1 is the correct starting record for basic inspection. I5/I6 describe a separate supplied proxy linkage.

What the evidence does not prove

UNKNOWN: Affiliation, omitted extension state and I5's code/build correspondence.

INSUFFICIENT EVIDENCE: Equal symbols cannot make I2/I4 the target. Logic-bearing I6 cannot replace user-facing I5.

Common mistakes

Matching only symbols, forgetting network, substituting a holding account for a mint, analysing implementation balances and calling source visibility a safety certificate.

Practical exercise

Choose the D1 match; reject I2–I4 with individual reasons. Write a separate I5 identity note. List three evidence gaps before a complete behavior review of I1.

Show worked correction

Worked correction and expected reasoning

I1 matches. I2 has the wrong network, I3 the wrong role and I4 a different mint. The EVM note is SIM-EVM-A / TOKEN-PROXY / token proxy / S0 / implementation LOGIC-V1. I6 supplies logic evidence without becoming the token identity.

Request full extension inventory, decoder/program correspondence and contextual provenance/finality. Affiliation requires separate authenticated communications. Do not invent missing fields.

Score out of ten: match (two), three rejection reasons (three), proxy/logic separation (two), three gaps (three). Guessed issuer attribution earns no identity credit.

Checklist

  • Preserve network and full identifier.
  • Verify the role and program/logic linkage.
  • Match contexts before combining evidence.
  • Separate affiliation from code review.
  • Stop when identity-dependent inputs mismatch.

Summary

Identity verification yields a bounded object record. The right network and role are prerequisites for subsequent measurement.

Summary

A symbol is a label. Mints, holder accounts and implementations are different objects. Missing linkage or affiliation evidence remains visible.

Visual specifications

Compare D1 with I1–I4, annotating network/address/role differences. Put I5→I6 in a separate S0 logic panel; mark build correspondence unknown. Avoid safety badges.

Illustrative identity match; no issuer corroboration.

Use deterministic SVG/HTML or charts with text alternatives, dark navy/black and restrained cyan, electric blue and violet. Label every quantity and uncertainty. At 390px stack panels; 768px/desktop and Arabic RTL verification remain future asset work. Keep identifiers LTR and factual axes/edge directions unchanged. Use only the official supplied ZECOIN mark if branding is added. Both records are specifications, not delivered assets.

Tools

Use RADAR for the lesson's bounded educational purpose only if network support, exact identity, fields and provenance are verified. No runtime endpoint or provider capability is asserted by this content. Use the embedded offline fixture without paid access. Missing data stays unknown; no wallet connection, transaction signature, token launch or live trade is required. Academy progress, payments and referrals never change Radar evidence. A Diagnostic Passport preserves observations and limits, not a price prediction or safety certificate.

Sources & claim boundaries

  • Etherscan Contract Code Tab — Exact versus similar bytecode match labels and separate compiler/constructor/audit information. Checked 2026-09-30.
  • Solana Assets — Mint/account/program identity and decimals; distinguish account ownership fields. Checked 2026-09-30.
  • ERC-20 Token Standard — Standard interface; optional name, symbol and decimals; not privilege or identity certification. Checked 2026-09-30.
  • ERC-1967 Proxy Storage Slots — Implementation, beacon and optional admin slots; mechanism-specific inspection. Checked 2026-09-30.

Documentation supports mechanisms, not fictional dataset values. All examples and exercise records are original ILLUSTRATIVE material, frozen in this file. S0/S1 are synthetic context labels; observedAt is null because no live or historical ledger measurement was collected. Re-review documentation and actual deployed behavior before any publication or integration.

Next lesson

P08-L02 after the worked exercise and quiz review.

Visual specifications

P08-L01-V01

SPECIFICATION_ONLY · ILLUSTRATIVE

Which object matches the declared target?

Illustrative identity match; no issuer corroboration.

Compare D1 with I1–I4, annotating network/address/role differences. Put I5→I6 in a separate S0 logic panel; mark build correspondence unknown. Avoid safety badges.

I1 matches; I2 wrong network, I3 holding account, I4 wrong mint; separate proxy links to logic.

390px stacked panels with text equivalent; later verify 768px and desktop

RTL labels and navigation; identifiers isolated LTR; preserve numeric axes, event order and factual edge direction.

FIX-P08-01

P08-L01-V02

SPECIFICATION_ONLY · ILLUSTRATIVE

Which claim is supported, conditional, unknown or unsupported?

Illustrative evidence boundaries; no safety or investment verdict.

Four labelled OBSERVED/INFERRED/UNKNOWN/INSUFFICIENT EVIDENCE rows tied to this lesson's claims and record IDs. Observations are supplied fictional records, not live measurements.

Four evidence-state rows with record locators and next verification steps.

390px stacked panels with text equivalent; later verify 768px and desktop

RTL labels and navigation; identifiers isolated LTR; preserve numeric axes, event order and factual edge direction.

FIX-P08-01

Sources & claim boundaries

S08-TOKENS · official_documentation_or_standard

Solana Assets

Supported claim
Mint/account/program identity and decimals; distinguish account ownership fields.
Verification boundary
Primary page inspected for editorial mechanism support; no deployed asset or ledger fixture independently measured.
Checked at
2026-09-30
Open primary source
https://solana.com/docs/tokens

S08-ERC20 · official_documentation_or_standard

ERC-20 Token Standard

Supported claim
Standard interface; optional name, symbol and decimals; not privilege or identity certification.
Verification boundary
Primary page inspected for editorial mechanism support; no deployed asset or ledger fixture independently measured.
Checked at
2026-09-30
Open primary source
https://eips.ethereum.org/EIPS/eip-20

S08-PROXY · official_documentation_or_standard

ERC-1967 Proxy Storage Slots

Supported claim
Implementation, beacon and optional admin slots; mechanism-specific inspection.
Verification boundary
Primary page inspected for editorial mechanism support; no deployed asset or ledger fixture independently measured.
Checked at
2026-09-30
Open primary source
https://eips.ethereum.org/EIPS/eip-1967

Dataset provenance

id: FIX-P08-01

dataStatus: ILLUSTRATIVE

observedAt: null

source: Original frozen educational fixture embedded in lesson

timeBasis: Synthetic S0/S1 snapshots, not UTC observations or real blocks

identifiers: Deliberately invalid fictional network, asset and account labels; never use as transaction targets

scope: Fictional identity comparison and separate proxy linkage.

Test your reasoning

P08-L01-Q1 · Which record matches D1?
P08-L01-Q2 · What does I3 identify?
P08-L01-Q3 · Which belongs in the EVM identity note?
P08-L01-Q4 · A provider times out. What is supported?
P08-L01-Q5 · What does a source-code verification label support alone?