Per-Deployment Wrapper Solvency Independence Discipline

  • Name: per-deployment wrapper solvency independence discipline
  • Category: wrapper-risk reference / cross-deployment collateral checklist / same-ticker risk-separation note
  • Summary: A wrapper that shares a ticker, issuer, or product story across chains is not automatically one solvency object. Live supply, redemption path, bridge topology, queue depth, donation sensitivity, emergency controls, operator reach, and local convertToAssets or exchange-rate state can diverge sharply by deployment. Healthy systems therefore treat each deployment of a wrapper, receipt token, or bridge-minted representation as guilty of being different until it proves otherwise. The useful design move is to keep three claims separate: these deployments share branding, these deployments still share the same economic semantics, and only later downstream protocols may honor them with the same collateral, borrow, liquidation, and routing policy.
  • Why this note exists:
    • Wrapper incidents are often described as if the dangerous question were only is the token itself reputable? The sharper question is often which exact deployment is being trusted right now, and what local state defines its solvency semantics on this chain?
    • Venus ZKsync wUSDM is the clean preserved warning: Ethereum, Arbitrum, and Optimism did not save zkSync once local supply, local redemption state, and local donation sensitivity diverged.
    • The design gap shows up before outright semantic break. A deployment can still be honest and redeemable, yet deserve much stricter collateral policy than its siblings because its local state is thinner, easier to move, or operationally more fragile.

What this note means by per-deployment solvency independence

  • Per-deployment solvency independence means each chain-local wrapper deployment, bridge representation, vault instance, or canonical-token clone is reviewed as its own balance-sheet object.
  • Same-ticker risk separation means a downstream protocol does not inherit collateral factors, borrow pairs, debt ceilings, liquidation rights, or emergency assumptions from one deployment to another just because the branding and issuer look shared.
  • The design goal is not assume every deployment is broken. It is do not silently let one deployment borrow the trust earned by a different deployment with different local economics and controls.

Three deployment-equivalence promotions reviewers should not collapse

  1. The deployments share branding or nominal product identity
  • The token name, issuer, documentation, or user-facing story may say this is the same wrapped asset on chain A and chain B.
  • That is only the weakest fact. It does not prove the live supply profile, redemption path, emergency controls, or rate-setting mechanics are meaningfully equivalent.
  1. The deployments still share the same economic semantics
  • A stronger claim is that one unit on each chain still means the same thing economically: same backing policy, same local exchange-rate path, same redemption friction, same bridge or custody assumptions, same queue or settlement semantics, same sensitivity to direct donation or supply thinning.
  • This is where many systems skip too quickly from same ticker to same risk.
  1. Downstream protocols may safely honor them with the same balance-sheet policy
  • The strongest claim is that collateral factors, borrowability, liquidation rights, recursive-borrow permissions, routing preference, treasury treatment, and market caps can be reused across deployments.
  • This is stronger again: we are not only calling them the same product, we are willing to let the same credit policy spend against them.

Most cross-deployment wrapper failures happen because those three promotions were flattened into one vague intuition that this is the same asset everywhere.

The main design rules

1. Treat local supply and local exchange-rate state as deployment-specific risk

  • A wrapper’s manipulation cost usually depends on local totalSupply, live redeemable inventory, queue state, and the shape of who holds the surviving shares on that chain.
  • A deployment that looked safe at 5M live units may become donation-sensitive at 1.2M even if sister deployments remain thick and boring.
  • Supply thinning, bridge outflows, redemptions, recapitalization, and migration churn should therefore trigger deployment-local re-underwriting rather than inherited comfort from another chain.

2. Review redemption semantics per deployment, not per brand

  • One deployment may redeem locally, another may queue redemptions, another may depend on a bridge, operator, or slow settlement window, and another may rely on a chain-local market maker.
  • If the unwind path differs, the collateral meaning differs too.
  • Issuer says 1 token = 1 claim is weaker than this deployment can actually realize that claim under stress on this chain.

3. Keep collateral policy, borrowability, and liquidation rights deployment-local

  • Healthy systems do not copy over collateral factors, borrow caps, recursive rights, or liquidation permissions just because the underlying product family is the same.
  • The sharper question is always local: what can this exact deployment safely support if its own exchange-rate state moves abruptly or if local redemption depth disappears?
  • A chain-local deployment can deserve isolated mode, lower caps, no borrowability, or no liquidation authority even when its sibling deployment would be fine.

4. Treat chain-local wrapper pricing as a local oracle object

  • If a deployment computes convertToAssets, pricePerShare, rebasing balances, or bridge-redemption ratios locally, then that deployment is already its own oracle surface.
  • A downstream protocol should therefore ask about local publication authority, local donation sensitivity, local queue semantics, and local emergency resets — not only about the issuer’s global reputation.
  • This is the practical bridge between donation/share-price incidents and cross-chain risk policy.

5. Emergency controls must be deployment-specific and faster than cross-chain narration

  • When one deployment misbehaves, the protocol should be able to isolate that deployment without waiting to resolve whether the broader product family is healthy.
  • Good design means pausing one chain-local listing, zeroing one collateral factor, or shutting one borrow graph without forcing identical action everywhere else.
  • The other chains still look fine is not an argument against asset-local containment; it is the reason deployment-local controls must exist.

6. Re-admission should require local evidence, not sibling reputation

  • A troubled deployment should not regain ordinary collateral treatment because another chain’s instance remained healthy.
  • Recovery should ask for local proof: wider supply, restored redeemability, resolved bridge path, healthier holder distribution, stable exchange-rate behavior, and tested rollback controls.
  • Shared branding can explain where to start looking; it cannot serve as the safety proof itself.

What sound design looks like

  • Each deployment has its own risk sheet.
    • Reviewers can point to local supply, local redemption route, local exchange-rate mechanics, local operator controls, and local caps for the exact chain being listed.
  • Shared naming does not imply shared collateral policy.
    • The protocol is willing to give one deployment lower caps, isolated mode, no borrowability, or full de-recognition without pretending this contradicts the product’s global story.
  • Deployment-local state changes trigger deployment-local re-underwriting.
    • Large redemptions, bridge outflows, supply thinning, operator migration, or wrapper-rate anomalies on one chain force a fresh review of that chain’s listing even if siblings are quiet.
  • Local oracle semantics are explicit.
    • If the deployment’s value depends on chain-local convertToAssets, queue state, or redemption control, the protocol treats that as part of the solvency boundary rather than as mere implementation detail.
  • Emergency controls can isolate one deployment quickly.
    • One chain-local wrapper can be paused, haircutted, moved to exit-only, or stripped of collateral recognition without waiting for whole-family consensus.
  • Recovery is local too.
    • Reopening, cap restoration, and liquidation re-enablement happen only after that specific deployment re-proves its semantics and depth.

Useful positive design shapes

1. One wrapper family, many deployment dossiers

  • Maintain a short listing dossier for each deployment rather than one global note for the ticker.
  • Useful fields include: local total supply, top-holder concentration, redemption path, bridge dependencies, queue/settlement semantics, exchange-rate publication path, donation sensitivity, operator controls, and emergency downgrade path.
  • This is the cheapest way to stop same asset everywhere from becoming invisible risk reuse.

2. Deployment-local caps and borrow graphs

  • Start each deployment from its own conservative debt ceiling, collateral factor, and borrow-pair allowlist.
  • If one chain-local instance is thin or easily moved, keep recursive rights and same-family borrows closed there even if siblings have already earned wider permissions.
  • This is the practical downstream companion to collateral-admission lag and recursive-borrow suppression.

3. Supply-thinning reclassification

  • Build policy that reclassifies a seasoned wrapper as effectively fresh again after major local redemptions, bridge exits, or recapitalization events.
  • The useful design move is to say this deployment has re-entered a dangerous local state instead of the product is mature, so the old listing assumptions still hold.
  • This matters especially for donation-sensitive wrappers whose danger depends on denominator size more than calendar age.

4. Deployment-specific semantic revocation

  • If one chain-local deployment stops deserving its inherited meaning, revoke that deployment first.
  • Keep the emergency question local: does this exact instance still deserve the old collateral semantics on this chain?
  • This is the acute emergency cousin of wrapper semantic-price revocation and collateral de-recognition.

Negative exemplar cluster: what broken deployment-independence assumptions look like

  • Venus ZKsync wUSDM — the preserved case where shared issuer reputation and sister-chain normalcy did not matter once zkSync’s local wUSDM supply thinned, local donation sensitivity rose, and Venus still honored that local exchange rate as if it inherited the same risk profile as other deployments.
  • More generally, the whole donation/share-price family keeps repeating the same warning in milder forms: the dangerous object is often this wrapper instance with this local denominator and this local publication path, not the abstract product family in marketing copy.

Red flags that usually mean deployment independence is underdesigned

  • It is the same token on every chain.
  • The issuer is reputable, so local wrapper state should not matter much.
  • Collateral policy can be copied from the Ethereum deployment.
  • Supply is nonzero, so donation risk is acceptable without asking how thin that local supply has become.
  • The product has been live for months when the deployment’s holder distribution or redeemable inventory has changed radically this week.
  • Bridge, queue, and redemption details are operational issues used as if they were separate from collateral meaning.
  • If one deployment breaks we can just message users when direct contract access and same-block borrowing still exist.

Failure-prevention checklist

  • Write a separate listing and monitoring sheet for each deployment of a wrapper, bridged asset, or receipt token. Do not let one global product memo substitute for local solvency review.
  • Track local supply, top-holder concentration, redemption route, queue state, and exchange-rate publication path per deployment. Those fields usually decide manipulation cost more than brand reputation does.
  • Re-underwrite a deployment after major local redemptions, bridge outflows, liquidity migration, recapitalization, or operator-path changes. A deployment can become effectively fresh again long after first listing.
  • Keep collateral factors, borrowability, recursive rights, and liquidation permissions deployment-local. Reuse them across chains only after explicitly proving the local economics and controls are still comparable.
  • Treat chain-local convertToAssets, pricePerShare, rebasing-index, or redemption-ratio paths as local oracle objects that deserve their own caps, delay, and sanity bounds.
  • Maintain deployment-local emergency controls: pause, isolate, zero collateral factor, revoke borrowability, or move to exit-only without waiting on whole-family policy changes.
  • Require local recovery evidence before re-admission: supply breadth, redemption integrity, bridge/custody continuity, calmer rate behavior, and tested rollback paths for that deployment.
  • Monitor for deployment drift explicitly: one chain’s supply collapse, sudden exchange-rate jump, queue stress, or operator-path change should page reviewers even if sibling deployments remain unchanged.
  • When a wrapper is used as both collateral and borrowed asset, ask that question per deployment. Same-family loops that are harmless on one chain can be fatal on another if local liquidity or supply depth is thinner.

Audit prompts

  • What exact deployment is being listed here, and what local state makes its solvency semantics different from same-ticker siblings on other chains?
  • If local supply were cut in half this week, what policy automatically changes for this deployment before the next borrowing window opens?
  • What local redemption path, queue, bridge, or operator dependency does this deployment rely on, and how does that differ from other deployments users might mentally treat as identical?
  • Which exact function publishes the local exchange rate or wrapper mark on this chain, and can direct donation, supply thinning, or local queue state move it faster than downstream policy can react?
  • Are collateral factor, borrow caps, liquidation rights, and recursive permissions copied from another deployment by convention, or justified from this deployment’s own economics?
  • If this deployment misbehaves while sister deployments remain healthy, what asset-local controls isolate it immediately without forcing false symmetry across the whole product family?
  • What local evidence would be required before this specific deployment regains ordinary collateral treatment after a pause, exploit, or major supply contraction?

Lessons that should already be standard

  • Same ticker is not same solvency object.
  • Cross-chain sameness of branding is weaker than cross-chain sameness of local economics, and local economics are what collateral policy actually spends against.
  • A wrapper deployment can stay honest and still become dangerous. Thin local supply, queue friction, bridge dependence, or donation sensitivity are enough to justify separate treatment.
  • Mature product is not a permanent state for one deployment. Large local redemptions or migrations can push a live instance back into effectively fresh risk.
  • The right collateral question is usually chain-local: what can this exact deployment safely support right now?
  • Shared issuer reputation should accelerate review, not replace it.
  • If one deployment can be paused without harming the rest, that is a feature, not a sign the products are unrelated.
  • Recovery should be local too. One healthy sibling deployment does not recapitalize or de-risk the troubled one by osmosis.

How this note complements the exploit corpus

Internal linkages

Control surface