P07-L04 · P07 · P07-M01
Calculate concentration with transparent wallet and account exclusions
Prerequisites: P07-L03
Learning objectives
- Compute raw and adjusted concentration with explicit denominators.
- Aggregate accounts under a verified owner address without inferring human identity.
- Explain operational exclusions and sensitivity to uncertain custody labels.
EN source master · P07-L04 · 45 minutes estimated · needs_review
Learning objectives:
- Compute raw and adjusted concentration with explicit denominators.
- Aggregate accounts under a verified owner address without inferring human identity.
- Explain operational exclusions and sensitivity to uncertain custody labels.
Why this matters
“The top holders own 70%” sounds precise but is incomplete unless it explains who or what was counted, which denominator was used and which accounts were excluded. A pool vault, an exchange custody account and several accounts controlled by one address can distort a simplistic chart. The skill is to compute transparent concentration measures without claiming that token accounts equal independent people.
Explanation
Decide the measurement before calculating it
Begin with an asset identity and an observation scope. The total supply denominator, balances and account-role evidence should describe the same network/mint and a compatible snapshot. Combining a current supply with an older balance table creates an unlabelled mismatch. If exact alignment is unavailable, state the approximation and do not pretend the percentage is an exact contemporaneous measurement.
Solana's largest-token-accounts RPC method returns up to 20 token accounts, not a complete list of human holders [S-LARGEST]. Solana's account model permits several token accounts for the same mint under an account owner [S-TOKENS]. These facts motivate two separate aggregation levels: account balances and address-level control. Neither alone proves ultimate beneficial ownership.
Use the largest-account list to identify candidates for inspection, not to invent a complete distribution. A top-twenty-only dataset can support some partial concentration calculations but not a full histogram of the long tail. An unresolved owner field should remain unresolved. Do not merge addresses merely because they were funded by the same intermediary.
Calculate several views, label each one
A raw view uses all supplied balances and the supplied total supply. An address-aggregated view combines accounts with the same verified controlling address. An adjusted view excludes identified operational balances for a stated analytical purpose. Each view answers a different question; none automatically replaces the others.
Consider a pool vault holding 300,000 of 1,000,000 units. It occupies 30% of the raw account distribution. If the vault is verified as pool custody, calling it “one whale personally owns 30%” is unsupported. Yet removing it from a chart does not make its assets irrelevant: the pool's LP rights and withdrawal controls still affect market capacity.
An exchange label poses another problem. A custody address may represent multiple users, but a provider label does not reveal the exact beneficial-owner distribution. If the role is only declared, show both the raw result and an optional sensitivity result rather than silently excluding it. An excluded balance is a methodological adjustment, not evidence that its economic exposure disappeared.
Denominators can change the apparent conclusion
In the fixture, two accounts controlled by address OWNER-A hold 180,000 and 120,000. Their combined balance is 300,000. Against total supply, that is 30%. Excluding the 300,000-unit verified pool leaves a denominator of 700,000; OWNER-A then represents 42.8571% of the adjusted non-pool balances. The numerator did not change; the denominator did.
If you also exclude the 100,000-unit declared custody account, the adjusted denominator becomes 600,000 and OWNER-A represents 50%. This third view is conditional on the custody exclusion. It cannot be called “50% of all supply.” A clear report places the alternative numbers side by side and explains why they differ.
Concentration is not a verdict about intent. A concentrated distribution can arise from allocations, operational custody, vesting or deliberate fragmentation. Dispersed visible accounts can conceal shared control. The right interpretation describes measured balances and residual uncertainty, not “safe” or “scam” labels.
Inspect classifications and sensitivity
Maintain an exclusion register with account, amount, role, source, confidence and reason for exclusion. Pool custody requires role evidence; a memorable explorer icon is not enough. A burn claim similarly requires appropriate chain/account/program evidence, not an address nickname. Do not subtract supply already removed from the supply measure a second time.
For educational comparison, hold the snapshot constant and change one classification at a time. This makes the sensitivity reproducible. If the adjusted result is highly sensitive to an uncertain exchange classification, the uncertainty is material and belongs in the conclusion.
Concentration and liquidity interact but remain distinct. A large holder's balance does not tell you how much quote value can be obtained from a sale. A pool's depth does not identify whether multiple accounts share control. The previous lesson supplies a model for price impact; this one supplies an ownership-accounting boundary.
Key terms
- Account concentration: balances aggregated by token-account ID.
- Address aggregation: balances combined by verified controlling address.
- Beneficial owner: an ultimate person/entity, not established by an address alone.
- Operational exclusion: a disclosed analytical removal from a particular view.
- Denominator: the supply/balance population used for the percentage.
- Sensitivity analysis: results under explicit alternative classifications.
Historical example
ILLUSTRATIVE EXAMPLE — FIX-P07-04. The complete fictional fixture totals 1,000,000 base units. Every ID is a synthetic label.
| Token account | Base units | Controlling address / role evidence |
|---|---|---|
| POOL-TA | 300,000 | verified pool vault within fixture |
| A-TA1 | 180,000 | OWNER-A |
| A-TA2 | 120,000 | OWNER-A |
| X-TA | 100,000 | custody label declared; not independently corroborated |
| B-TA | 80,000 | OWNER-B |
| C-TA | 70,000 | OWNER-C |
| D-TA | 50,000 | OWNER-D |
| OTHER | 100,000 | multiple unresolved accounts; no rank breakdown |
OTHER is an aggregate for total reconciliation, not a single holder or ranked token account. It must not be inserted into a top-holder ranking as one wallet.
What the evidence proves
OBSERVED: Supplied accounts A-TA1 and A-TA2 share OWNER-A in this fixture; their sum is 300,000.
INFERRED: OWNER-A has 30% of total supplied units and 42.8571% of the adjusted non-pool population under the stated exclusions.
What the evidence does not prove
UNKNOWN: How many humans control OWNER-A or the unresolved/custodial balances.
INSUFFICIENT EVIDENCE: The fixture cannot establish the largest human holder, fraud, safe distribution or realizable sale proceeds. X-TA's label is insufficient for an unconditional beneficial-owner exclusion.
Common mistakes
Counting token accounts as people; ranking OTHER as one wallet; forgetting common address aggregation; mixing supply snapshots; subtracting alleged burns twice; and presenting an adjusted percentage as a percentage of all supply.
Practical exercise
Compute OWNER-A's raw and pool-excluded shares. Calculate the combined share of OWNER-A and OWNER-B against total supply and against the pool-excluded denominator. Then evaluate the additional X-TA exclusion as a sensitivity case.
Show worked correction
Worked correction and expected reasoning
OWNER-A is 180,000+120,000 = 300,000. Raw share: 300,000/1,000,000 = 30%. Pool-excluded share: 300,000/700,000 = 42.8571%. A+B is 380,000: 38% raw and 54.2857% pool-excluded. The conditional extra custody exclusion gives denominator 600,000, so A alone is 50% and A+B is 63.3333%.
Report that X-TA is only declared custody. Preserve the 700,000 denominator as the explicitly pool-excluded view and show 600,000 as a sensitivity result. Do not describe either as all-supply ownership or a count of people.
Score out of ten: reconciliation and A aggregation (two), four primary percentages (four), conditional sensitivity (two), uncertainty and denominator wording (two). Excluding a row without stating why and changing the denominator loses methodology credit.
Checklist
- Confirm exact asset and compatible snapshot.
- Reconcile all supplied amounts to the stated population.
- Aggregate verified account owners; do not infer humans.
- Keep raw, adjusted and sensitivity views separate.
- Publish the exclusion register and unresolved coverage.
Summary
A concentration percentage is inseparable from its unit of aggregation, denominator and exclusions. Transparent calculations support investigation; opaque holder counts invite false confidence.
Summary
Use account and address views for different questions. Never erase uncertainty with a custody label. Show how a denominator change affects the result.
Visual specifications
Create a reconciliation bar for one million units, a separate OWNER-A aggregation bracket, and raw/non-pool/conditional-custody denominator panels. Use hatched fill for X-TA and OTHER; never label them as known independent humans. Print numerator and denominator under every percentage.
Visual delivery rules: dark navy/black, cyan/electric-blue/violet accents, units and uncertainty explicitly labelled. Use deterministic charts or SVG, not fabricated screenshots. At 390 px stack annotations and provide the data table as a text alternative; verify 768 px and desktop later. In Arabic localize labels and layout with native RTL, while isolating addresses/hashes LTR and retaining the actual direction of transfers and chronology. Use only the supplied official ZECOIN logo if branding is added. No visual asset or mobile/RTL rendering is claimed ready.
Tools
Use RADAR only when the exact network, asset and needed fields are supported and their provenance is visible. This is a read-only educational inspection, not a trade or a token launch. Use the supplied offline dataset if access or data is unavailable; missing information remains unknown. A future Open in ZECOIN action needs validated runtime routing and source coverage. No executable asset CTA is supplied for illustrative identifiers. Academy participation and commercial status never change Radar observations.
Sources & claim boundaries
- Solana getTokenLargestAccounts — Largest-account response is limited to 20 token accounts, not all owners. Checked 2026-09-30.
- Solana getTokenAccountsByOwner — Token-account enumeration by account owner; ownership field is not human identity. Checked 2026-09-30.
- Solana Assets: mint and token accounts — Mint identity, token-account ownership and distinct mint/creation roles. Checked 2026-09-30.
The tables and exercise fixtures are original educational material unless explicitly designated HISTORICAL. Fictional identifiers are deliberately invalid as blockchain addresses. Documentation supports mechanism definitions, not the invented exercise values. Source inspection is editorial research, not a live-chain measurement. Sources may change; re-review before publication.
Next lesson
P07-L05; proceed after completing the exercise and reviewing each quiz explanation.
Visual specifications
P07-L04-V01
How do account aggregation and exclusions change the measured percentage?
Illustrative concentration; adjusted views depend on disclosed exclusions.
Create a reconciliation bar for one million units, a separate OWNER-A aggregation bracket, and raw/non-pool/conditional-custody denominator panels. Use hatched fill for X-TA and OTHER; never label them as known independent humans. Print numerator and denominator under every percentage.
OWNER-A is 30% of total supply, 42.8571% excluding the pool, and 50% only under an additional conditional custody exclusion.
390px: stacked annotations and text table; 768px and desktop acceptance pending
RTL labels/layout; identifiers LTR; preserve factual axis, chronology and edge direction.
FIX-P07-04
P07-L04-V02
Which claims are observed, inferred, unknown or insufficiently supported?
Evidence classification for this lesson; no investment verdict.
Four labelled rows; show claim, evidence pointer, boundary and next verification step.
Text table of four evidence states and the limits of each conclusion.
390px: stacked annotations and text table; 768px and desktop acceptance pending
RTL labels/layout; identifiers LTR; preserve factual axis, chronology and edge direction.
FIX-P07-04
Sources & claim boundaries
S-LARGEST · official_documentation
Solana getTokenLargestAccounts
- Supported claim
- Largest-account response is limited to 20 token accounts, not all owners.
- Verification boundary
- Primary publisher page read; historical ledger transactions not independently replayed.
- Checked at
- 2026-09-30
https://solana.com/docs/rpc/http/gettokenlargestaccounts
S-OWNERS · official_documentation
Solana getTokenAccountsByOwner
- Supported claim
- Token-account enumeration by account owner; ownership field is not human identity.
- Verification boundary
- Primary publisher page read; historical ledger transactions not independently replayed.
- Checked at
- 2026-09-30
https://solana.com/docs/rpc/http/gettokenaccountsbyowner
S-TOKENS · official_documentation
Solana Assets: mint and token accounts
- Supported claim
- Mint identity, token-account ownership and distinct mint/creation roles.
- Verification boundary
- Primary publisher page read; historical ledger transactions not independently replayed.
- Checked at
- 2026-09-30
https://solana.com/docs/tokens
Dataset provenance
id: FIX-P07-04
dataStatus: ILLUSTRATIVE
observedAt: null
network: fictional token-account model
identifiers: POOL-TA/A-TA1/A-TA2/X-TA; not addresses
timeBasis: one static snapshot
totalSupply: 1000000