shared/types/.
The most important file for on-chain state is shared/types/covenant-types.ts. These types mirror the NFT commitment layouts used by the covenant encoding helpers in contracts/lib/StateEncoding.cash.
Where They Are Used
Shared types are consumed by:- frontend schedule and treasury views
- backend transaction builders and API responses
- indexer decode paths
- executor services
- internal SDK-style tooling
VaultState
VaultState is a 32-byte commitment that tracks vault lifecycle and spend-period state.
ProposalState
ProposalState is a 64-byte commitment used for treasury proposal approval and execution state.
ScheduleState
ScheduleState is a 48-byte commitment used by schedule-style covenants.
VoteState
VoteState is a 32-byte commitment used for locked governance vote positions.
TallyState
TallyState is the shared type used for tally-style governance state.
Generic UTXO Types
VaultUTXOProposalUTXOScheduleUTXOVoteUTXOTallyUTXO
Policy Types
Treasury policy and access-model types live alongside covenant types inshared/types/policy-types.ts.
Use these for DAO workspace policy editors, proposal metadata, and higher-level treasury rules that are not stored directly inside covenant NFT commitments.
