Snapshot Proposal + Transaction Tutorial

Snapshot Space Set-up and Transaction Builder

Welcome to the Snapshot Proposal + Transaction Tutorial. This guide provides detailed, step-by-step instructions on how configure proposals and transactions in your Snapshot space using oSnap.

Create a Proposal in Snapshot with oSnap

In your Snapshot space:

  1. Click 'New Proposal'

  2. Fill in the title, description, and discussion link

  3. Click 'Continue'

  4. Click the checkbox to use oSnap. Please note, this will restrict to basic voting.

  5. Set the voting period to meet the Safe oSnap module's minimum requirements.

  6. Click 'Continue'

For more information on creating a proposal, please refer to the Snapshot documentation.

Add Transactions to Your Snapshot Proposal

The oSnap transaction builder allows DAOs to add transactions when creating a Snapshot proposal. The transaction builder has forms for transferring funds, transferring collectables, contract interactions or raw transaction data. The example proposal below proposes a funds transfer of 0.000005 ETH.

Tenderly Transaction Simulation

Before publishing your transaction, oSnap includes a built-in Tenderly simulation to simulate the transaction beforehand.

First, build your transaction.

Then, click simulate transaction. This will simulate the transaction and return a transaction passed or transaction failed result.

You can also view the results of the simulation in Tenderly.

Automatic Transaction Execution on Mainnets

For Snapshot proposals that pass on mainnets, UMA bots send a transaction requesting execution of the transactions and post a bond to UMA's Optimistic.

After the Optimistic Oracle verifies that the transactions and associated transactions are valid, UMA bots will execute these transactions for oSnap modules using default settings, provided they require less than 500,000 gas. For testnet transaction execution, see the section below.

Manual Transaction Execution on Testnets

After the voting period has ended, if the proposal passes and meets the criteria set in the rules of the oSnap module, the 0.000005 ETH transfer can be proposed. Anyone can propose the transactions by clicking the 'Request execution' button.

Requesting execution requires sending a transaction along with a bond (bonds are not required on testnets). This starts the Optimistic Oracle liveness period, during which anyone can dispute the proposal.

After requesting execution, the Snapshot proposal displays the date and time when the liveness period will expire. If the request is not disputed by this time, the requester's bond will be returned and the transactions will be able to be executed.

After the challenge period has been completed, the Snapshot proposal gives the user the option to 'Execute transaction batch'. Signing this transaction will execute the transactions and return the bond to the requester.

After executing our example proposal, the below shows the 0.000005 ETH transfer being executed.

Last updated