Business,Operations,Guide,Module 3.2
Module 3.3
Using Safe: Step-by-Step Guide
While day-to-day use of the Safe will typically be done by specific authorized individuals, all operations team members should understand how it works. You might become an approver in the future, or at least you should know how to view transactions and status. Below is a general walkthrough of how to set up and use a Safe.
Setting up a New Safe (for reference):
(Note: Setting up is usually done once. If you join and a Safe is already established, you won’t
go through these steps, but understanding them is useful.)
1. Access Safe interface: Navigate to the Safe app interface at https://app.safe.global using a web3-enabled browser. Choose the Ethereum network (or other network if we are creating a Safe on another blockchain – Bittrees primarily uses Ethereum mainnet Safe for treasury).
2. Connect Wallet: Connect your wallet (the one that will be an executor of the Safe). Typically this would be your personal Ethereum address that has been designated to hold a signing role.
3. Create New Safe: Click “Create Safe” and follow the prompts. You will be asked to
provide:
- A name for the Safe (e.g., “operations.bittrees ” – this is just local, not on-chain)
- The list of executor addresses and names (you’ll enter each Ethereum address that should be an executor and give them labels for clarity). Each owner must later confirm their role by connecting.
- The number of required signatures (the threshold). For example, if 5 owners are listed and you require 3, you’d set threshold = 3.
4. Review and Deploy: The Safe creation will itself be a blockchain transaction (deploying the Safe smart contract). Typically, one person (the initiator) will pay a gas fee for this deployment. All executor’ addresses are encoded in that contract at creation. Review that all addresses are correct (this is critical – an address, once in the contract, cannot be easily changed without another transaction or entirely new Safe).
- Once satisfied, confirm creation. Your connected wallet will prompt to approve the transaction to create the Safe. After submission, wait for confirmation on the blockchain. The Safe contract is now deployed.
5. Share Safe Info: After creation, share the Safe address with all executors. In Safe, executors can open that Safe by adding it to their interface (they might see it auto-populated if they connect with their executor address, or they can input the address). Now all executor are looking at the same multisig wallet.
Executing a Transaction on Safe:
For an existing Safe (setup as above), here’s how a typical transaction (e.g., paying an invoice in BIT, or distributing BTREE) would occur:
1. Propose a Transaction: One of the Safe executors (say the Ops lead) goes into the Safe interface and initiates a new transaction. They will choose the asset to send (could be ETH or a token held by the Safe), the recipient address, and the amount. They could also call a contract function (for advanced uses, like interacting with Aave or another smart contract – but let’s keep it simple with a send).
- For example: “Send 1000 BIT from Safe to 0x1234…ABCD (person’s address)”. They enter these details.
2. Submit for Confirmation: Upon creating the transaction, the Safe will typically prompt the initiator to sign the transaction. This is the first signature. The transaction then enters a pending state within the Safe, labeled as waiting for more confirmations. The blockchain transaction is not yet executed or broadcast; it’s essentially stored in the Safe’s memory as a proposal with one signature.
3. Notifying Other Signers: Other Safe executors will either get a notification (if they have notifications enabled) or will see a badge when they log into the Safe app indicating there is a transaction waiting for confirmation. Out-of-band communication is also common: The initiator might ping the other signers. At Bittrees we notify the other signers by posting the Safe transaction into the relevant telegram groupchat or by contacting the other executors directly.
4. Review by Others: Each required signer should open the Safe app, look at the list of pending transactions, and inspect the details of the proposed payment. The Safe interface will show who initiated it, the to/from addresses, the amount, and the asset. It’s crucial to verify these details (equivalent to reading an invoice and ensuring it’s correct).
5. Confirm (Sign) the Transaction: If everything looks good, each executor clicks “Confirm” (or “Approve”) on the transaction. Their connected wallet will ask them to sign a message (note: confirming via Safe usually doesn’t cost gas for the approver, it’s an off-chain signature unless you are the one executing it on-chain). As each person signs, the Safe records their confirmation.
6. Execution: Once the required number of signatures is reached (e.g., the 2nd out of 3 in a 2-of-3, or 3rd out of 5 in a 3-of-5, etc.), the transaction is ready to execute. Typically the last signer or any signer can then hit “Execute” to broadcast the fully-signed transaction to the blockchain. Alternatively, the transaction might auto-execute if the initiator chose that option and provided a signature that also acts as execution (Safe’s process may vary slightly by version). Executing the transaction will require one of the signers to pay the gas fee from their account or from the Safe depending on settings. In most cases, the Safe itself can pay gas using its ETH balance, which is convenient.
7. Completion: Once executed, the transaction moves from pending to completed in the Safe’s history. All executors can see it in the history tab. The recipient receives the funds on-chain. For our example, 1000 BIT is now in the contractor’s wallet, and the Safe’s balance is reduced accordingly.
If someone rejects or does not sign, the transaction will remain pending until it either gets enough signers or is eventually cancelled. If an incorrect transaction is proposed, executors can simply refuse to sign it, and it won’t execute. The initiator can also cancel it (which is another transaction, or they can delete the proposal off-chain if none executed yet).
Using Safe in practice: Bittrees uses Safe for monthly operations like BTREE token dispersal. For instance, at month’s end, the operations lead will prepare the list of contributors and their token distrobution. Instead of individually paying from a personal wallet, they will create a batch transaction (Safe allows either batch or sequential transactions) or a series of transactions from the Bittrees Capital Safe to each contributor’s address for their allocation. Another executors will review that list and confirm. Only after all three sign will the tokens actually be sent out. This ensures oversight – it’s analogous to one person preparing payroll and two people in accounting approving it before the bank transfers salaries.
Another example is escrowing funds: if Bittrees needs to pay for a service or grant to a project, a Safe holds the funds and at least two key holders must sign off to release those funds, ensuring the expense is authorized.
Module 3.4 -- Legacy Comparison and Context