1. Docs
  2. Security
  3. Custody and authority

Security

Custody and authority

Separate Trust Stack vault guarantees from external issuer and upgrade powers.

Revision 62 min read
On this page
  1. Role boundaries
  2. Isolated custody
  3. External asset authority
  4. Upgrade authority

“Non-custodial” means the Trust Stack service does not possess a wallet key and its operators do not hold a general capability to withdraw user positions. It does not mean every external authority in an asset or dependency disappears.

Role boundaries#

RoleCan doCannot do through Trust Stack
Wallet signerAuthorize actions for its addressAct for another beneficiary
Position creatorFund and use an explicitly selected creator actionSeize strict locks or vested beneficiary value
Beneficiary or recipientClaim according to the position policyClaim early or beyond eligibility
Indexer operatorServe derived records and proofsSign or move position assets
Frontend operatorBuild and explain a transactionBypass Move checks or silently redefine a funded policy
Package publisherInitialize the recorded governance roles before freezeUpgrade or replace the active immutable core package
Asset issuerExercise capabilities retained in the asset standard/packageUse Trust Stack's vault module as proof those capabilities were destroyed
Dexlyn authorityControl upstream packages according to Dexlyn policyBecome part of the core standard-asset custody guarantee

Isolated custody#

Locks, schedules, campaigns, streams, staking pools/positions, and Digital Asset locks use distinct objects or vaults. They do not share an omnibus user balance. Ordinary object ownership is removed where the module must retain only a narrow withdrawal mechanism.

External asset authority#

A Fungible Asset issuer may retain mint, freeze, burn, dispatch, transfer, metadata, or package upgrade capabilities. A Digital Asset issuer may retain transfer authority. Trust Stack rejects dispatchable Fungible Assets for flows whose conservation model assumes standard transfer behavior, but cannot universally prove every external capability was destroyed.

Upgrade authority#

The active revision-6 testnet core uses immutable package policy 2. It was published, initialized, and frozen by a single-key testnet deployer wallet, so neither that wallet nor an operator can upgrade the package. Its fee governor, treasury administrator, collector, and asset-policy council are single-key testnet wallets held by one operator: role separation for testing, not multisig or independent custody. The retained revision-5 core was initialized through a 3-of-5 publisher multisig before its freeze. New contract behavior requires a side-by-side package and explicit runtime-registry change. The separate Dexlyn adapter and upstream packages remain compatible-upgrade dependencies, and Supra framework addresses remain a chain-governance boundary.