Back

Freeze ownership and authority

P08-L04 · P08 · P08-M01

Identify privileged controls including proxies and upgrade authority

ILLUSTRATIVE · needs_review

Prerequisites: P08-L03

Learning objectives

  • Map balance, restriction, application and upgrade layers.
  • Assess narrow ownership claims against remaining controls.
  • Identify evidence needed for threshold, event attribution and immutability.

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

Why this matters

An “ownership renounced” badge can coexist with an active pause role or an upgrade controller. A removed mint authority can coexist with a freeze authority. These statements may each be true while the broad conclusion “nobody has control” is false.

This lesson teaches a layered control map. You will connect each privilege to its object, current holder, condition and possible administration path. The result is an evidence record, not a safety score or an accusation.

Explanation

Define the controlled object

Do not use owner without a noun. A Solana data account's program owner, a token-account authority, an EVM Ownable owner and an NFT position owner are distinct fields. Their names resemble one another but govern different mechanisms. Write the field and object alongside the value.

Separate token balance control, mint-level restrictions, application roles and code-changing authority. A finding about one layer cannot erase a permission at another. For example, a token mint may lack a mint authority while an application interacting with the token remains upgradeable. Review the application's role separately rather than assuming it governs the standard Token Program itself.

A control map is a graph of capabilities, not a graph of human identities. A listed authority can be a user account or a program-mediated address. Public account labels do not establish who has the keys or whether multiple accounts share a controller.

Understand freeze as state restriction

Solana's freeze mechanism preserves token-account owner, mint and balance while preventing the documented receiving, transfer and burn operations until thawed [S08-FREEZE]. It is not a balance deletion or a transfer to the freezing authority.

State and authority must be recorded separately. A freeze authority can exist while an account is currently unfrozen. Conversely, a frozen-state observation does not tell you that a particular human caused it. Ask for the successful operation and its authorization if attribution matters.

Revocation removes a selected authority role, not a universal collection of powers [S08-SET]. Do not assume a mint-role revocation changed freeze state. Existing frozen accounts and possible recovery/thaw paths need their own examination; avoid describing a narrow revocation as proof every account is transferable.

Inspect application roles beyond Ownable

OpenZeppelin Ownable renunciation disables functions protected by its owner check, while role-based permissions are a separate pattern [S08-ACCESS]. Whether a deployed token combines these patterns is a code and state question. If a pauser role remains, owner renunciation alone cannot remove it.

Build a table for ownership, pause, grant/revoke roles and upgrades. For each row record the actual check, present authority, administration path and uncertainty. A role name is descriptive only until tied to a reachable operation. “PAUSER” in metadata is not a proof of a pause function.

A control may depend on a timelock or multisig. Verify the relevant contract, threshold, delay and bypass conditions rather than accepting a badge. A delay is a time condition, not disappearance of control. A multisig threshold describes signatures, not necessarily independent humans.

Trace proxy and implementation control

For ERC-1967-style proxies, distinguish the implementation or beacon linkage from the optional admin slot. A beacon resolves logic for associated proxies; UUPS-style authorization may reside in implementation logic, so an empty admin slot alone is not a complete conclusion [S08-PROXY; S08-UUPS].

A proxy's user-facing address may stay the same when its rules change. Pin the implementation to the reviewed context, then inspect the path that can change it. Do not audit a verified implementation page and leave the proxy link unchecked. A later implementation can invalidate prior behavior assumptions.

This lesson does not teach upgrade execution. It teaches how to describe the supplied authorization path read-only. If the controller's internal rules are unavailable, mark them unknown even when the external authority address is known.

Distinguish Solana program upgrades from mint roles

Under Solana loader-v3, program upgrades depend on program upgrade authority; removing that authority makes that program immutable [S08-DEPLOY]. This is not the mint's mint-authority field. It applies to the reviewed program and loader mechanism, not every connected contract or off-chain service.

A mint governed by a standard Token Program should not be casually described as independently upgradeable just because a custom application uses it. Name the custom program and explain its relevance. In the fixture, PROGRAM-X is an auxiliary application, not the Token Program owning MINT-F.

Immutability is bounded to the code object. It does not prove honest users, immutable metadata, sufficient liquidity or secure surrounding systems. Likewise, active upgrade authority proves a capability under conditions, not that the code will change maliciously.

Report a layered result

A defensible sentence names the context and limits: “At S0 the owner field is renounced, while PAUSER remains assigned and the proxy upgrade controller is supplied but its internal threshold is unknown.” This is more informative than a categorical “decentralized” label.

Ask whether a claim can be falsified by one remaining row. “No privileged controls” is contradicted by one proven live capability. A narrow claim such as “the Ownable owner role is absent” can remain supported even when the broad statement fails. Preserve both.

Key terms

  • Freeze state: operation restriction on a token account.
  • Ownable owner: authority under a particular owner-check pattern.
  • Role holder: account satisfying a specific membership check.
  • Upgrade controller: authority governing a code-change path.
  • Beacon: proxy logic-linking mechanism.
  • Timelock: condition imposing delay on specified operations.

Historical example

ILLUSTRATIVE — FIX-P08-04. Separate fictional objects at S0.

RecordObjectSupplied control/state
F1SIM-SOL-A / MINT-Fmint authority absent; freeze authority F
F2ACCOUNT-U of MINT-Funfrozen, balance 100
F3ACCOUNT-V of MINT-Ffrozen, balance 50; no event attribution supplied
P1SIM-EVM-A / PROXY-Qdelegates to LOGIC-Q at S0
P2PROXY-Q application stateOwnable owner absent; PAUSER=P; role admin G
P3PROXY-Q upgrade pathcontroller C; C's threshold/delay unavailable
X1SIM-SOL-A / PROGRAM-Xauxiliary loader-v3 application; upgrade authority U

PROGRAM-X is not the Token Program governing MINT-F. The fixture does not supply the code effects connecting this auxiliary app to the mint.

What the evidence proves

OBSERVED in fixture: F remains, V is frozen, P/G remain and C/U are supplied upgrade authorities.

INFERRED: “All controls removed” is contradicted by these separate capabilities. Renounced owner is a narrower supported statement about P2.

What the evidence does not prove

UNKNOWN: C's internal rules, human controllers, who froze V and PROGRAM-X's exact application effects.

INSUFFICIENT EVIDENCE: Freeze does not mean V's balance was destroyed. An absent owner does not prove no roles or upgrades. U does not prove the standard Token Program is controlled by U.

Common mistakes

Using owner without its object; confusing frozen balance with zero; assuming an empty proxy admin slot excludes all upgrades; interpreting a multisig label as verified independent control; and merging auxiliary-program authority with mint authority.

Practical exercise

Produce four control layers: account state, mint roles, EVM application roles and implementation-change paths. Rewrite “all ownership is renounced so everything is immutable.” List the next evidence required for C and V.

Show worked correction

Worked correction and expected reasoning

Account state: U is unfrozen with 100; V frozen with 50. Mint roles: mint authority absent, freeze F present. EVM application: owner absent, PAUSER P present, role admin G. Code changes: PROXY-Q controller C and auxiliary PROGRAM-X U, with separate scopes.

A bounded rewrite is: “At S0 PROXY-Q's Ownable owner role is absent, but pause/role administration and upgrade control remain supplied. MINT-F retains F, and V is frozen without an attributed event. PROGRAM-X has a separate upgrade authority; its effects on this asset are unresolved.”

For C request controller code/configuration, signers/threshold or delay, and applicable bypass paths. For V request successful freeze event, context and authorization evidence. Preserve50; do not record a burn.

Score out of ten: four-layer map (four), narrow rewrite (three), C/V evidence requests (two), program/mint separation (one).

Checklist

  • Name every owner field's object.
  • Separate authority from current state.
  • Inspect roles after ownership renunciation.
  • Resolve logic and upgrade paths at the same context.
  • Verify thresholds/delays rather than labels.
  • Bound immutability to the reviewed object.

Summary

Control is layered. A removed role establishes a narrow fact; active roles and code-change paths need separate review.

Summary

Freeze is a restriction, not deletion. Owner renunciation is not all-control renunciation. Proxy, program and mint authorities are distinct.

Visual specifications

Four-lane permissions map with F1–F3,P1–P3,X1 pointers; show unchanged frozen balance 50. Draw PROXY-Q→LOGIC-Q and separate C controller; PROGRAM-X/U isolated from MINT-F. Mark C configuration unknown.

Illustrative layered controls; owner absence is a narrow claim.

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

  • OpenZeppelin 5.x Proxy — Transparent, beacon and implementation-based UUPS upgrade mechanisms; actual authorization needs inspection. Checked 2026-09-30.
  • Solana Freeze Account — Account-state restrictions distinct from amount or ownership. Checked 2026-09-30.
  • Solana Set Authority — Role-specific changes and revocation; not a global safety verdict. Checked 2026-09-30.
  • OpenZeppelin 5.x Access Control — Ownable and role-based privilege patterns; inspect actual deployed authorization. Checked 2026-09-30.
  • ERC-1967 Proxy Storage Slots — Implementation, beacon and optional admin slots; mechanism-specific inspection. Checked 2026-09-30.
  • Solana Program Deployment — Loader-v3 program upgrade authority; not a token mint role. 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-L05 after the worked exercise and quiz review.

Visual specifications

P08-L04-V01

SPECIFICATION_ONLY · ILLUSTRATIVE

Which control survives at each layer?

Illustrative layered controls; owner absence is a narrow claim.

Four-lane permissions map with F1–F3,P1–P3,X1 pointers; show unchanged frozen balance 50. Draw PROXY-Q→LOGIC-Q and separate C controller; PROGRAM-X/U isolated from MINT-F. Mark C configuration unknown.

Mint freeze remains; EVM owner absent but P,G,C remain; separate auxiliary program has U.

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-04

P08-L04-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-04

Sources & claim boundaries

S08-FREEZE · official_documentation_or_standard

Solana Freeze Account

Supported claim
Account-state restrictions distinct from amount or ownership.
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/basics/freeze-account

S08-SET · official_documentation_or_standard

Solana Set Authority

Supported claim
Role-specific changes and revocation; not a global safety verdict.
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/basics/set-authority

S08-ACCESS · official_documentation_or_standard

OpenZeppelin 5.x Access Control

Supported claim
Ownable and role-based privilege patterns; inspect actual deployed authorization.
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://docs.openzeppelin.com/contracts/5.x/access-control

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

S08-DEPLOY · official_documentation_or_standard

Solana Program Deployment

Supported claim
Loader-v3 program upgrade authority; not a token mint role.
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/core/programs/program-deployment

Dataset provenance

id: FIX-P08-04

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 freeze-state, application-role and upgrade-control records on separate objects.

Test your reasoning

P08-L04-Q1 · What is V's supplied balance while frozen?
P08-L04-Q2 · What follows from absent Ownable owner and PAUSER=P?
P08-L04-Q3 · C has a multisig label but no configuration. What is established?
P08-L04-Q4 · What does PROGRAM-X's U identify?
P08-L04-Q5 · An ERC-1967 admin slot is empty. What next?