Security
Deployment status
Know which source modules are actually published and which acceptance work remains.
On this page
Trust Stack targets Supra MoveVM Testnet, chain ID 6. The deployment manifest—not a feature page or source directory—is authoritative for live package identity.
Active revision-6 deployment#
The active runtime registry selects the core package:
0x0afbe7d92996d30632c228665bac163478ae2a04922fdfc8cb3c69a51fba9230It was published at block 148375016 in transaction
0x78e118451269ca05f5fa19e34a2fa4bf61dd937c44a41c08c445df07478d8dc2 from source commit
608ab9a80d32812b084c4fbac442b230d43babb0, initialized, and frozen with immutable upgrade
policy 2. Its 12 modules keep the revision-5 entry-function ABI and add the read-only views
token_factory::total_minted and asset_policy::council_epoch.
The revision-6 manifest records the public publish receipt, fee and asset-policy initialization, freeze, the rejected post-freeze upgrade attempt, source and toolchain pins, 12/12 matching deployed bytecode hashes, and fresh test evidence: 439 passing Move tests and 96.73% aggregate coverage. The revision-6 acceptance record covers 113 transactions on chain ID 6: 50 successful and 63 expected failures that aborted on chain with the exact expected error. It exercises every core product module, the Dexlyn adapter, and the governance timelocks. Neither record replaces an independent audit.
Revision 6 changes these on-chain rules:
- timelocked governance proposals (fee schedule, fee governor, treasury administrator, collector, renunciation, asset admission, and council rotation) must execute within a 14-day acceptance window after their effective time, after which they expire and may be replaced;
- governance delays below 172,800 seconds (48 hours) are rejected outside the allow-listed test chains (6 and 4);
- the fee collector must hold a registered SUPRA coin store;
- maximum supply caps every unit ever minted, and
total_minteddoes not decrease on burn; - a council rotation invalidates pending admissions of the previous council;
- accepting a new fee governor cancels the outgoing governor's pending fee schedule;
- the token metadata object is untransferable;
- a staking
withdrawalways returns principal; an unbacked settled reward is forfeited instead of aborting the withdrawal; and - a later Merkle airdrop
reclaimsweeps assets deposited after the first reclaim to the creator and aborts withEALREADY_RECLAIMEDonly when the vault is empty.
Retained claim-only deployments#
Earlier immutable cores are claimOnly: their existing positions keep claim, proof, and position
pages, but the applications create no new positions on them.
Revision 5 remains registered as core:
0xc4dcb9a8a6dcabac0ae695fe95df5a7cb793f3f5766746ced70c1159705ec74bIt was published at block 137913840 from source commit
251320132139e73cda960909efc111203ad21d7a with 60-second testnet governance delays (shortened for testing). The
revision-5 manifest
records 12 of 12 matching bytecode hashes, 312 passing Move tests, and 95.48% coverage. Its
acceptance section is a revision-5 publication-time partial snapshot, not a release-wide
acceptance conclusion; later revision-5 lifecycle receipts are recorded separately.
Revision 4 remains registered as coreV4:
0x993701927cc7da8c48a556af86a46128b42ee23044fc736d5eb9302cf58f5617The earlier immutable revision-3 and revision-2 cores also remain registered for existing positions:
0x3218c2357c3dfad0edbfb620e7cb8c3e81f6ef0a3bd06c4f8cd129e87417a43f0xa254b92f4a87c4cb48f84e42fd585a04f4f1cf2426496f0d66659e17d0e09005Public proof URLs retain the originating package so each position is read and managed with the package that created it. The current separately published Dexlyn adapter is:
0x7ce836f84a15d1ba576da4a18703f67aba3ba71c67b22fac27dddcc11c7735adRevision 6 reuses this adapter unchanged: its source has not changed since publication and it does
not depend on the core package. Its fresh source and bytecode are recorded in the
Dexlyn revision-2 manifest.
It retains compatible upgrade policy under 3-of-5 owners: Supra rejects an immutable freeze while
the external Dexlyn router and LP dependencies remain upgradeable. The earlier adapter at
0x899b43319d957a345b65667db7166e2e843c80433f55e1c79e427d2dbea203ba remains registered as
dexlynAdapterV1 for existing locks. New locks use revision 2; management selects the originating
adapter, and the indexer retains both histories.
The machine-readable deployments/runtime-registry.json file is the authority consumed by the SDK,
dApp, API, and indexer. The dated immutable revision-6 manifest is the deployment-evidence record for
the active core. A copied address in documentation must never override either file.
Separately gated work#
| Capability | Status boundary |
|---|---|
| Fee configuration | Initialized with 50 SUPRA token creation, 50 SUPRA fixed lock, and 100 bps vesting fees. The revision-6 acceptance run proposed and, after the 300-second delay (shortened for testing), applied a 1 SUPRA token creation and 0.5 SUPRA fixed-lock schedule; a governor handoff canceled a later pending schedule. Direct immediate scheduling is disabled. Read the live schedule view before signing. |
| Asset policy | Initialized and advisory. Compatible external Fungible Assets can enter custody without admission; issuer capabilities remain a disclosed trust boundary. A delayed admission was applied on revision 6. |
| Vesting revocation | Optional per position and defaults to irrevocable. Revision-6 acceptance verified a revocable schedule's partial claim, partial revocation, fee sweep, and exact conservation. Revision-5 revocable vesting create and revoke were verified separately. |
| Token lifetime cap | Revision-6 acceptance verified that total_minted reaches the maximum supply, burning does not reduce it, further minting is rejected, and a transfer of the metadata object is rejected. |
| Digital Asset factory/media | Revision-6 acceptance verified Digital Asset creation, lock permissions, early-claim rejection, and beneficiary release. Earlier revision-5 and revision-3 evidence remains historical. |
| Dexlyn V1 LP lock | Revision-6 acceptance locked real LP from Dexlyn testnet liquidity through the reused revision-2 adapter and verified permissions and unlock. The adapter and its Dexlyn dependencies remain a separately monitored third-party boundary. |
| Governance expiry and delay floor | The 14-day acceptance window and the 48-hour production delay floor are verified by Move unit tests only; chain 6 is allow-listed and the window is longer than the testnet run. |
| Governance custody | Revision-6 testnet roles are single-key wallets held by one operator: role separation for testing, not multisig or independent custody. |
| Partner webhooks | Engine implemented; approved external destination and delivery evidence still required. |
| Browser signing | Revision-6 acceptance signed with the pinned SDK and fresh keys. Two separate runs with the official StarKey 4.12.0 extension signed token creation, a fixed lock, vesting, a payment stream, and a beneficiary claim on revision 6, and verified connection denial, wrong-network recovery, and transaction denial and retry. Later UI-only releases were not re-run with the extension. |
| Governance console | /governance reads fee-governor custody from chain, so a single-key testnet governor and a multisig governor both render. |
| Independent audit | An independent human Move security audit is pending (SEC-1, High) and blocks the mainnet release gate. |
Release evidence checklist#
Before presenting a module as live:
- run the pinned Move compile, tests, and instruction coverage;
- perform focused manual security review;
- publish a fresh release from the exact reviewed commit when the contract version changes; require immutable core policy and explicitly record any adapter upgrade authority and external dependencies;
- read exact bytecode and ABI back from chain;
- compare local and on-chain hashes;
- complete one real positive and required negative lifecycle;
- archive transaction links, object/resource reads, events, and source commit;
- update the shared runtime registry and evidence manifest in one reviewed release; and
- confirm every consumer resolves the same chain ID, package, module set, and start height.
The revision-6 fee governor, treasury administrator, collector, and asset-policy council are single-key testnet wallets held by one operator. The retained revision-5 package uses three distinct 3-of-5 multisig wallets with 15 unique owners, but one operator currently controls the encrypted local testnet profiles for all owners. Both are testnet operational separation, not independent signer custody.