Wrapped native assets: reconcile collateral and token units
A wrapped native asset needs a contract-specific backing reconciliation. Do not assume its totalSupply field is an independently maintained count of user claims. In the referenced WETH9 implementation, totalSupply returns the contract’s native-asset balance, so comparing those two fields produces equality by construction.
The canonical WETH9 source also maintains individual balanceOf entries and updates them through deposits, withdrawals and transfers. Verify the actual deployed code before applying these observations. Other wrappers may use different accounting, permissions or redemption behavior.
Identify independent quantities
Collect the network, wrapper address, deployment code and observation block. Read native collateral balance B and reported totalSupply S. Then define L as the sum of account balances or an independently reconstructed outstanding-claim ledger. The backing comparison of interest is B versus L, not a tautological B versus S when S is implemented as B.
Reconstruct L from complete history or an authoritative state method. For this implementation, deposits and withdrawals affect user claims, while transfers move claims between accounts. Do not require a generic mint Transfer event from the zero address if the source emits a different deposit event. A standard indexer assumption can miss real balance changes.
Keep reconstruction uncertainty visible. A mapping is not automatically enumerable through an ordinary single balanceOf call. If historical events are incomplete, the reconstructed liability subtotal may be incomplete too. Sampling a few balances provides a consistency check, not proof that every account is covered.
Hypothetical extra collateral
Assume a fictional deployment starts with native collateral B = 100 ETH and reconstructed account claims L = 100 WETH. Under the referenced implementation, reported S is 100 because the function reads the native balance.
Now suppose 2 ETH is credited without executing the deposit routine, through a mechanism supported by that chain’s rules. There is no corresponding increase in account claims in this hypothetical case.
| Quantity | Before credit | After credit |
|---|---|---|
| Native collateral B | 100 ETH | 102 ETH |
| Account claims L | 100 WETH | 100 WETH |
| Reported supply S = B | 100 | 102 |
| Collateral less claims | 0 ETH | 2 ETH |
A dashboard reading S may show an apparent supply increase of 2, although no user’s balance increased. The ratio B/S stays 100% and therefore cannot independently test the user-claim ledger. Under the example’s one-to-one unit convention, B/L is 102%; that surplus does not automatically grant each holder a larger redemption right.
All amounts are hypothetical. This is not an assertion that a particular deployment currently has extra collateral. The mechanism for a credit without deposit execution must be established under the actual network rules, rather than assumed from a transfer label alone.
Test redemptions and ownership boundaries
Inspect the withdrawal path, balance debit and native-asset payment. A one-unit redemption claim is different from proportional ownership of every native unit in the contract. Read the code before allocating a surplus to token holders or describing it as operator revenue.
Reconcile opening collateral plus native inflows minus native outflows to closing collateral, then perform the parallel claim ledger. Separate normal deposits, normal withdrawals and unmatched movements. Investigate differences through concrete transactions without replacing an unexplained gap with a claim of insolvency or theft.
For a wrapper held inside another vault or bridge, keep that additional claim layer separate. Passing this same-chain collateral test does not verify a custodian’s solvency or another token’s redemption route. Recheck after code changes, unexpected native credits or discrepancies between indexed balances and direct state observations.
Test the claim reconstruction with a deposit, a transfer and a withdrawal whose account balances can be read directly. Transfers should conserve L across included accounts, while normal deposits and withdrawals change L and collateral together under the implementation. A mismatch concentrated at an event boundary may indicate an indexer convention error rather than a change in the contract’s backing.
FAQ
Does matching totalSupply and ETH balance prove independent backing?
Not when totalSupply directly returns that same balance. Compare independently reconstructed account claims and inspect the implementation.
Does extra collateral increase every account’s withdrawal amount?
Not automatically. Redemption follows the contract’s rules and account balances, not an assumed proportional share of unexplained surplus.