The Interlay parachain (para 2032) has stopped producing blocks. Its final block is 10885373, timestamped 2026-07-27 12:13:01 UTC.
All vDOT circulating on Interlay was bridged in from Bifrost via XCM, and the corresponding reserve is held in full by the Interlay sibling sovereign account on Bifrost:
| Side | Amount |
|---|---|
vDOT totalIssuance on Interlay |
86,930.2917 |
| Interlay sovereign account balance on Bifrost | 86,930.2957 |
| Difference (XCM fee dust) | 0.0040 |
The sovereign account eLHN5PtbY7WaZqBvEUhHHEoA1GARhZcmycRkYggRtDEZHud (sibl + para id 2032) is XCM-derived and has no private key. It can only be spent through governance acting as the runtime origin.
Interlay will not be restored, leaving user vDOT balances permanently stranded. This proposal reissues the portion verifiably owned by users to the same public keys on Bifrost, making those funds usable again.
A single utility.force_batch containing 193 tokens.force_transfer calls, moving funds directly from the sovereign account to each beneficiary:
utility.force_batch([
tokens.force_transfer(
source = eLHN5Pt…ZHud, // Interlay sovereign account
dest = <beneficiary>, // same public key, Bifrost prefix 6
currency_id = VToken2(0), // vDOT
amount = <planck>
)
× 193
])
94,027,806,297,881 planck = 9,402.78063 vDOTforce_batch is used rather than batch_all deliberately. The Root track has a 28-day decision period; if an atomic batch reverted because a single transfer hit an unexpected account state, the entire process would have to be repeated. With force_batch, one failing call does not affect the other 192.
Full reconciliation of all 86,930.29 vDOT on Interlay, derived by scanning 28,109 tokens.accounts entries. The residual is exactly zero:
| Category | Amount | Nature | This proposal |
|---|---|---|---|
Liquidation vault modl mod/vreg |
77,412.2121 | Claim of iBTC holders | Not compensated |
| Liquidated vault operator reserved | 114.2270 | Same as above | Not compensated |
Loans pallet cash modl mod/loan |
4,397.8913 | qvDOT depositors | Passed through |
| User direct holdings (156 addresses) | 5,004.8917 | Users | Compensated |
| DEX pool + treasury | 1.0696 | Protocol-owned | Not compensated |
| Total | 86,930.2917 |
The sum of free + reserved in tokens.accounts, after excluding three classes of derived accounts: modl (pallet-derived), sibl (sibling parachain sovereign), and para (relay parachain sovereign). The vDOT side was explicitly checked and contains no sibl or para accounts — the beneficiary list is clean.
Also excluded is 114.2270 vDOT sitting as reserved under liquidated vault operator wdAAm6o6…Kg12Z. That balance is liquidatedCollateral, already seized by the protocol, and no longer belongs to the operator.
145 qvDOT holders have a book claim of 4,766.7188 vDOT at the recorded exchangeRate (20467247371377383), but the Loans pallet only holds 4,397.8913 vDOT in actual cash:
| Item | Amount |
|---|---|
| Depositor book claim | 4,766.7188 |
| Pallet cash on hand | 4,397.8913 |
| Borrowed and outstanding | 693.9841 |
| Protocol reserves | 325.1566 |
| Shortfall | 368.8275 (7.74%) |
The chain is halted, so borrowers can never repay. Critically, the borrowed vDOT already sits in the borrowers' own accounts and is therefore already counted in §3.1. Paying depositors their full book claim would mean Bifrost absorbing the borrowers' bad debt while simultaneously paying those same borrowers a second time for funds they already withdrew.
Depositors are therefore scaled pro-rata against actual pallet cash (factor 0.92262444), and the shortfall is borne by depositors.
vDOT minimalBalance on Bifrost is 1,000,000 planck (0.0001 vDOT). Of the 247 addresses in the snapshot, 54 fall below this threshold (0.00237 vDOT combined). orml-tokens would reject those transfers, so they are excluded from the calldata. They remain in the CSV, flagged in the below_ed column, for the record.
193 + 54 = 247, matching the snapshot list.
The retained amount is 89% of the total, so its status must be stated plainly to avoid any impression that the protocol is withholding user funds.
It does not belong to vDOT holders. All 21 Interlay vaults collateralized with vDOT have been fully liquidated (vaultStaking.totalCurrentStake is zero across the board), and their collateral was seized into the liquidation vault:
liquidationVault(vDOT/iBTC).collateral = 77,412.2121 vDOT
liquidationVault(vDOT/iBTC).issuedTokens = 2.14231976 iBTC
implied rate ≈ 36,134.76 vDOT per iBTC
Under Interlay's design, this collateral backs claims held by iBTC holders, not vDOT holders.
It also cannot be distributed by iBTC address directly. The holder structure of all 2.11841671 iBTC:
| Holder | iBTC | Share |
|---|---|---|
| Acala (sibl 2000) | 0.79733378 | 37.64% |
| Interlay local users (281 addresses) | 0.57460461 | 27.12% |
| HydraDX (2034) | 0.30009458 | 14.17% |
| Loans pallet | 0.18767195 | 8.86% |
| Moonbeam (2004) | 0.14473012 | 6.83% |
| Polkadex (2040) | 0.04633417 | 2.19% |
| Parallel (2012) | 0.02966945 | 1.40% |
| SORA (2011) | 0.02745844 | 1.30% |
| Astar / Bifrost / DEX / fees | 0.00521 | 0.24% |
63.7% of all iBTC sits in other parachains' XCM reserve accounts (public keys prefixed 0x7369626c = sibl). Distributing by address would send roughly 49,375 vDOT into sovereign accounts that nobody on Bifrost can withdraw from — effectively freezing the funds permanently. Correctly compensating those users would require snapshotting iBTC holders across seven separate chains, which is out of scope here.
Conclusion: 77,527.5 vDOT stays untouched in the sovereign account. If a decision is later made to compensate iBTC holders on other chains, it can be proposed separately and the snapshot tooling is reusable.
| Option | Call | Count | Size | Call Hash |
|---|---|---|---|---|
| Recommended | utility.force_batch |
193 | 14,454 B | 0xcc9a9bb20bf04e84d000cdf039fc0d2b4b69e4bd61ede3db1c563992f8dc2846 |
| Alternative (atomic) | utility.batch_all |
193 | 14,454 B | 0xe3236f50509b9f542faac86274e6ff00a5539d83727a6fa8c208e8575228de9f |
| Alternative (split 1/3) | utility.force_batch |
65 | 4,950 B | 0x087c579c27ca4d242167faad26fa02b24cf887f6421df340e60249fce7a6ce33 |
| Alternative (split 2/3) | utility.force_batch |
65 | 4,846 B | 0xe8d6388157a5bbb9b8a06c79768df5d17e263891e0c7589203c62349b67ce0f5 |
| Alternative (split 3/3) | utility.force_batch |
63 | 4,665 B | 0x10847eca2be7c0cc7cf90bac8c4e5382ac0b17e57f326868c2350c6df9de6e83 |
Verification performed:
| Check | Result |
|---|---|
| Outer call | utility.forceBatch wrapping 193 inner calls ✓ |
| Decoded total | 94,027,806,297,881 planck, matches the list ✓ |
| Per-call amount vs. snapshot | 193/193 exact match ✓ |
| Recipient uniqueness | 193/193 distinct public keys ✓ |
| Source account | all 193 are the Interlay sovereign account ✓ |
| Asset id | all 193 are VToken2(0) ✓ |
| ED exclusion | none of the 54 sub-threshold addresses leaked in ✓ |
| Source balance | 86,930.2957 ≥ 9,402.78063, sufficient ✓ |
Sampled decode (addresses shown in the registry's default SS58 prefix; identical public keys to the prefix-6 entries in the list):
[0] tokens.forceTransfer dest=12KkhKPQ…FJSR amount=37,015,653,137,905 (3,701.565 vDOT)
[1] tokens.forceTransfer dest=1Cwy9wXo…su6M amount=31,206,385,734,595 (3,120.639 vDOT)
[2] tokens.forceTransfer dest=15kMLv53…UYcQa amount=15,896,047,658,047 (1,589.605 vDOT)
[192] tokens.forceTransfer dest=165cgBQN…Lth7a amount= 1,175,883 (0.000118 vDOT)
| Range (vDOT) | Addresses | Total vDOT |
|---|---|---|
| ≥1000 | 3 | 8,411.809 |
| 100–1000 | 3 | 459.206 |
| 10–100 | 12 | 422.941 |
| 1–10 | 31 | 85.898 |
| 0.1–1 | 40 | 20.866 |
| 0.0001–0.1 | 104 | 2.061 |
| (below ED, excluded) | 54 | 0.002 |
The top three addresses account for 8,411.81 vDOT, or 89.5% of the total payout.
| # | Item | Notes |
|---|---|---|
| 1 | Top three addresses unidentified | If any is a CEX hot wallet, crediting will require exchange-side cooperation; worth contacting them before execution |
| 2 | Status of retained funds | The 77,527.5 vDOT held long-term needs a clear designation (unclaimed pool vs. future cross-chain iBTC compensation); recommend stating this in the announcement |
| 3 | Snapshot timing is not disputable | Interlay is halted; block 10885373 is the terminal state, so there is no discretion in choosing a snapshot point |
| 4 | Orphaned iBTC on other chains | iBTC on Acala / HydraDX / Moonbeam etc. can no longer be redeemed for BTC; the snapshot tooling can be reused if compensation is pursued |