Gnosis Safe multisig wallets are used by institutions and individuals to hold some of the largest quantities of funds on the Ethereum network. The free to use wallet includes multisignature functionality for enhanced security and control over digital assets.
It is developed by Gnosis, a blockchain technology company based out of Switzerland and Germany, known for its focus on open source decentralized applications and smart contracts.
How Are Multisigs More Secure?
Multisig, short for multisignature, refers to a cryptographic technology that requires multiple signatures to authorize transactions or actions within a wallet. In the case of a Gnosis Multisig Wallet, multiple individuals or parties can be designated as signatories or owners of the wallet, and a predefined number of them must provide their signatures to execute transactions.
For example you could set up a wallet for your company with five individual metamask or ledger accounts as signatories and require that 3/5 signatures are required to sign a transaction.
The main advantage of a Gnosis Safe multisig wallet is that it reduces the risk of unauthorized access or misuse of funds. Even if one of the signatories’ private keys is compromised, an attacker cannot access the wallet or perform transactions without the required number of signatures. This adds an extra layer of security compared to traditional single-signature wallets.
Gnosis Safe multisig wallets are also used by individuals, organizations, or projects that require shared control over funds, such as cryptocurrency exchanges, investment funds, or decentralized autonomous organizations (DAOs). They provide a secure and flexible solution for managing and safeguarding digital assets in a collaborative manner.
How To Set Up A Gnosis Safe
Go to: https://app.safe.global/
You’ll need to connect your wallet which will need some native tokens to pay transaction fees. Then make sure you are on the right network and name your wallet.
We can then set up the different wallets that have signing authority and set a threshold for how many signatures are required.
You’ll then need to review the details and sign a transaction in Metamask.
For developers we can set up and interact with Gnosis Safes using a SDK. Here is an example using NodeJS
import { ethers } from 'ethers'
import Safe, { EthersAdapter, SafeFactory } from '@safe-global/protocol-kit'
const provider = new ethers.JsonRpcProvider(`https://eth-goerli.alchemyapi.io/v2/${process.env.ALCHEMY_API_KEY}`);
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY);
const adapter = new EthersAdapter({ethers, signerOrProvider: wallet});
const safeFactory = await SafeFactory.create({ adapter });
const safeSdk = await safeFactory.deploySafe(
{ safeAccountConfig: { threshold: 2, owners: ['0x111', '0x222', '0x333'] }}
);
In this example we are setting up a simple 2/3 signature Gnosis Safe.
Using A Gnosis Safe
Once deployed you’ll have access to the Gnosis Safe UI which provides various features and external Apps.
If we click on “New Transaction” we get 3 options to send tokens, send NFTs or contract interaction. The first two are pretty intuitive so let’s look at contract interaction.
We need to provide a contract address and ABI to communicate with it which we can get from Etherscan. In this example I’ll be making a deposit to WETH.
https://goerli.etherscan.io/token/0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6#code
Because the contract is verified it imports the ABI automatically and we can select a function from the drop down box.
The Gor value is the amount of Goerli ETH I am sending with the transaction.
We sign the transaction off chain and once enough signatures have been provided we can execute the transaction.