Tool for computing vanity Gnosis Safe addresses

Overview

0xdeadbeef

Tool used for computing vanity Gnosis Safe addresses.

This tool is currently hard-coded to only support the v1.3.0 Safe deployment:

Since this version of the Safe proxy factory uses CREATE2 op-code, we can change the final address by fiddling with the user-specified saltNonce parameter. It works by randomly trying out different values for the saltNonce parameter until it find ones that creates an address matching the desired prefix.

Building

For longer prefixes, this can take a very long time, so be sure to build with release:

cargo build --release

Usage

deadbeef --help

For example, to generate calldata for creating a Safe with initial owners of 0x1111111111111111111111111111111111111111 and 0x2222222222222222222222222222222222222222 and prefix 0xdeadbeef:

deadbeef \
  --owner 0x1111111111111111111111111111111111111111 \
  --owner 0x2222222222222222222222222222222222222222 \
  --prefix 0xdeadbeef

Note that the owner signature threshold defaults to 1 but can optionally be specified with:

deadbeef ... --threshold 2 ...

This will output some result like:

address:   0xdeaDbeef17411A25478b0a27BE1aD71533FB9E79
factory:   0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2
singleton: 0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552
fallback:  0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4
owners:    0x1111111111111111111111111111111111111111
           0x2222222222222222222222222222222222222222
threshold: 1
calldata:  0x1688f0b9000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee7095520000000000000000000000000000000000000000000000000000000000000060496bc3e394a70708faee280d08458bea16b2a0d43b3b2d02cebcdf5714619c710000000000000000000000000000000000000000000000000000000000000184b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000011111111111111111111111111111111111111110000000000000000000000002222222222222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Creating the Safe

The above command will generate some calldata for creating a Safe with the specified owners and threshold. To create the safe, simply execute a transaction to the factory address with the generated calldata. The transaction can be executed from any account (it can be done in MetaMask directly for example).

Is This Vegan Friendly 🥦 ?

Of course! No actual cows were harmed in the creation or continual use of this tool.

% alias deadbeef=seedfeed
% seedfeed \
  --owner 0x1111111111111111111111111111111111111111 \
  --owner 0x2222222222222222222222222222222222222222 \
  --owner 0x3333333333333333333333333333333333333333 \
  --threshold 2 \
  --prefix 0x5eedfeed
address:   0x5EedFeED446B211419EBac9253FbB8b9556781D1
factory:   0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2
singleton: 0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552
fallback:  0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4
owners:    0x1111111111111111111111111111111111111111
           0x2222222222222222222222222222222222222222
           0x3333333333333333333333333333333333333333
threshold: 2
calldata:  0x1688f0b9000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200000000000000000000000000000000000000000000000000000000000000605b237da2310f4948260ac5661d88f5150e5e62ca1f4faa76e3598bd427f212e800000000000000000000000000000000000000000000000000000000000001a4b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000111111111111111111111111111111111111111100000000000000000000000022222222222222222222222222222222222222220000000000000000000000003333333333333333333333333333333333333333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
You might also like...
Safe, fast, small crypto using Rust

THE SOFTWARE IS PROVIDED "AS IS" AND BRIAN SMITH AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES

Usable, easy and safe pure-Rust crypto

orion About Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe

A safe implementation of the secure remote password authentication and key-exchange protocol (SRP), SRP6a and legacy are as features available.

Secure Remote Password (SRP 6 / 6a) A safe implementation of the secure remote password authentication and key-exchange protocol (SRP version 6a). Ver

A blazing fast, type-safe template engine for Rust.

markup.rs A blazing fast, type-safe template engine for Rust. markup.rs is a template engine for Rust powered by procedural macros which parses the te

Usable, easy and safe pure-Rust crypto

orion About Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe

A blazingly fast and memory safe password cracker with user interface.
A blazingly fast and memory safe password cracker with user interface.

HashVat A blazingly fast and memory safe password cracker with user interface. HashVat runs with user interface and is capable of cracking the 1.000.0

A type-safe Rust interface to the Nix CLI

runix A typesafe interface to the nix CLI. by flox Installation Install with cargo add (Rust = 1.64) cargo add runix Alternatively, manually add runi

A type-safe, K-sortable, globally unique identifier

type-safe-id A type-safe, K-sortable, globally unique identifier. Typed implementation of https://github.com/jetpack-io/typeid in Rust. Examples Stati

Hash trait that is object-safe

Hash trait that is object-safe This crate provides a DynHash trait that can be used in trait objects. Types that implement the standard library's std:

Comments
  • Run script multiple (N) times (possibly parallel) and write to output file

    Run script multiple (N) times (possibly parallel) and write to output file

    I've been trying to generate multiple vanity Safe addresses. In particular finding a case sensitive match word (0xca1f vs 0xCA1F). For this it's good to run the script multiple times, until you find the right vanity Safe address. Doing this manually is tedious.

    Perhaps it could be mentioned in the README.MD file you could run the script multiple times and write the output to a (text) file. E.g. using this bash one liner.

    for i in {1..200}; do ./deadbeef --owner 0x0000000000000000000000000000000000000000 --owner 0x0000000000000000000000000000000000000000 --threshold 1 --prefix 0xCa1f00 >> deadbeef-output.txt; done

    This will run deadbeef 200 times and write the output to the same directory in file deadbeef-output.txt. You then can manually case-sensitive search the output file for the desired Safe address.

    On my machine it happened to run the tasks in parallel (utilizing all CPUs, also a moment to appreciate https://github.com/aristocratos/btop :) ).

    opened by fairlighteth 0
Owner
Nicholas Rodrigues Lordello
Nicholas Rodrigues Lordello
Gnosis Safe Tx Service API client & associated tooling

Safe Transaction Service API Client Using the SDK Instantiate an API client use safe_sdk::SafeClient; /// From a chain id, by looking up hardcoded en

Nomad 3 Dec 15, 2022
Custom Ethereum vanity address generator made in Rust

ethaddrgen Custom Ethereum address generator Get a shiny ethereum address and stand out from the crowd! Disclaimer: Do not use the private key shown i

Jakub Hlusička 153 Dec 27, 2022
Nostr Vanity Address Generator (Windows, Linux and macOS)

Nostr Vanity Address Generator CLI tool to generate vanity addresses for Nostr Usage Download the latest release built by GitHub CI from the releases

Chawye Hsu 7 Mar 1, 2023
A bitcoin vanity address generator written with the Rust programming language.

btc-vanity A bitcoin vanity address generator written with the Rust programming language. With btc-vanity you can create a private key which has a com

Emirhan TALA 22 Aug 7, 2023
Radix Babylon vanity address finder allowing easy import into Radix mobile Wallet.

Rad Vanity address finder for Radix Babylon which you can import directly into your Radix Wallet using QR scanner using Import from a Legacy Wallet fe

Alexander Cyon 6 Nov 13, 2023
A Bitcoin wallet collider that brute forces random wallet addresses written in Rust.

Plutus-Rustus Bitcoin Brute Forcer A Bitcoin wallet collider that brute forces random wallet addresses written in Rust. This is a straight port of Plu

null 46 Dec 23, 2022
Generate IPv4 12th order Hilbert heatmaps from a file of IPv4 addresses.

Rustified IPv4 Heatmap This is a pure Rust version of the C ipv4-heatmap utility originally published by The Measurement Factory and updated forever-a

boB Rudis 8 Sep 28, 2022
stealth addresses library implementing ERC-5564 over secp256k1 in rust

eth-stealth-addresses rust library implementing ERC-5564 stealth addresses using canonical ECC over the secp256k1 curve. let's make privacy on evm cha

κασσάνδρα.eth 30 Oct 9, 2023
Mine Bitcoin Addresses ⛏️🅰️🅱️🅾️

Bitcoin Address Miner Mine Bitcoin Addresses ⛏️ ??️ ??️ ??️ Overview The Bitcoin Address Miner is a utility written in Rust that generates random BIP-

simone ragonesi 6 Nov 29, 2023
RISC Zero is a zero-knowledge verifiable general computing platform based on zk-STARKs and the RISC-V microarchitecture.

RISC Zero WARNING: This software is still experimental, we do not recommend it for production use (see Security section). RISC Zero is a zero-knowledg

RISC Zero 653 Jan 3, 2023