What are Spaces?
A space is a governance DAO that manages proposals, votes, and executions. Every space has:- Controller: The address that owns and manages the space
- Authenticators: Methods for verifying user actions (signatures or transactions)
- Voting strategies: Rules for calculating voting power
- Execution strategies: How passed proposals are executed onchain
- Timing parameters: Voting delay, minimum and maximum voting duration
- Metadata: Space name, description, and other settings
Types of Spaces
Snapshot X supports different types of governance spaces:Onchain Spaces
Onchain spaces are deployed as smart contracts and indexed by the Snapshot X API. There are three protocols:Snapshot X
Native Snapshot X spaces with full flexibility for strategies and executors
Compound Governor
Spaces using Compound’s Governor Bravo protocol
OpenZeppelin Governor
Spaces using OpenZeppelin’s Governor contracts
Offchain Spaces
Offchain spaces use Snapshot’s gasless voting system. These spaces:- Store votes and proposals in snapshot-hub
- Accept signed messages via snapshot-sequencer
- Don’t require gas fees for voting
- Can optionally execute proposals onchain after voting
Space Configuration
When deploying a Snapshot X space, you configure these parameters:The
AddressConfig type contains both an address and encoded parameters:Creating a Space
Spaces are deployed using theEthereumTx client from sx.js:
saltNonce, allowing you to predict the address before deployment:
Managing Spaces
Space controllers can update settings after deployment:Update Settings
Transfer Ownership
Space Lifecycle
The typical flow for a governance space:Network Configuration
Each network has a configuration defining available strategies, authenticators, and factory contracts:Data Flow
Spaces interact with multiple components:Authenticators
Learn how users authenticate their actions
Strategies
Understand voting power calculation
Executors
Explore execution patterns
Creating Proposals
Start creating proposals