Allows to easily create tx to be signed through CLI and submitted on a Safe
Solidity
181
59 commits
updated Sep 1, 2026
[!WARNING] This repo is no longer maintained.
Safer is a tool that helps you sign & submit transactions to a Safe, without requiring any interaction with Safe's backend or frontend.
Safer is a set of Foundry scripts that can be used as fallback in case Safe App is down and the blockchain is the only thing that can be trusted.
Safer enables submitting complex transactions without the need of intermediaries.
Safer unlocks true DAO resilience.
make to initialize the repository..env file from the template .env.example file.
SENDER to the address used to execute the transaction on the Safe. If you don't execute the tx, you don't need to set it.SAFE_NONCE to override a transaction's nonce. Remove it to use the default, latest Safe nonce. Leave it blank to use nonce 0.FOUNDRY_ETH_RPC_URL to customize the RPC endpoint used. This is useful to interact with a Safe deployed on another chain than Ethereum mainnet (the default one).make tx and follow the steps to create a Safe transaction using create-safe-tx; ORdata/tx.jsonmake sign:ledgerdata/signatures.txt with the signer who will execute the transaction on the Safethreshold signatures are available in data/signatures.txt, each one per linemake exec:ledgerWith make sign & make exec, one can also use any other wallet provider available with cast:
make cmd:interactive to input the private key to the command promptmake cmd:ledger to use a Ledgermake cmd:trezor to use a Trezormake cmd:keystore to use a keystoremake cmd:"private-key 0x..." if you really want to save your private key to your shell's history...You can also append any cast parameter:
make sign:"ledger --mnemonic 1 --mnemonic-index 1" or make exec:"ledger --mnemonics foo --mnemonic-indexes 1" to use another account than the default one at index 0{
"to": "0x0000000000000000000000000000000000000000",
"value": "0", // The tx value (in ETH), must be a string
"data": "0x", // The raw tx data, must start with 0x
"operation": 0, // 0 for a call, 1 for a delegatecall
"safeTxGas": 0,
"baseGas": 0,
"gasPrice": 0,
"gasToken": "0x0000000000000000000000000000000000000000", // Indicates the tx will consume the chain's default gas token (ETH on mainnet)
"refundReceiver": "0x0000000000000000000000000000000000000000" // Indicates the tx's refund receiver will be the address executing the tx
}
Solidity
90.9%
Makefile
9.1%
Allows to easily create tx to be signed through CLI and submitted on a Safe
Solidity
181
59 commits
updated Sep 1, 2026
[!WARNING] This repo is no longer maintained.
Safer is a tool that helps you sign & submit transactions to a Safe, without requiring any interaction with Safe's backend or frontend.
Safer is a set of Foundry scripts that can be used as fallback in case Safe App is down and the blockchain is the only thing that can be trusted.
Safer enables submitting complex transactions without the need of intermediaries.
Safer unlocks true DAO resilience.
make to initialize the repository..env file from the template .env.example file.
SENDER to the address used to execute the transaction on the Safe. If you don't execute the tx, you don't need to set it.SAFE_NONCE to override a transaction's nonce. Remove it to use the default, latest Safe nonce. Leave it blank to use nonce 0.FOUNDRY_ETH_RPC_URL to customize the RPC endpoint used. This is useful to interact with a Safe deployed on another chain than Ethereum mainnet (the default one).make tx and follow the steps to create a Safe transaction using create-safe-tx; ORdata/tx.jsonmake sign:ledgerdata/signatures.txt with the signer who will execute the transaction on the Safethreshold signatures are available in data/signatures.txt, each one per linemake exec:ledgerWith make sign & make exec, one can also use any other wallet provider available with cast:
make cmd:interactive to input the private key to the command promptmake cmd:ledger to use a Ledgermake cmd:trezor to use a Trezormake cmd:keystore to use a keystoremake cmd:"private-key 0x..." if you really want to save your private key to your shell's history...You can also append any cast parameter:
make sign:"ledger --mnemonic 1 --mnemonic-index 1" or make exec:"ledger --mnemonics foo --mnemonic-indexes 1" to use another account than the default one at index 0{
"to": "0x0000000000000000000000000000000000000000",
"value": "0", // The tx value (in ETH), must be a string
"data": "0x", // The raw tx data, must start with 0x
"operation": 0, // 0 for a call, 1 for a delegatecall
"safeTxGas": 0,
"baseGas": 0,
"gasPrice": 0,
"gasToken": "0x0000000000000000000000000000000000000000", // Indicates the tx will consume the chain's default gas token (ETH on mainnet)
"refundReceiver": "0x0000000000000000000000000000000000000000" // Indicates the tx's refund receiver will be the address executing the tx
}
Solidity
90.9%
Makefile
9.1%