Once bought or minted the wallet that owns the address token must simply invoke the deploy(uint id, bytes initcode)
method on the VanityMarket
contract (found at 0x000000000000b361194cfe6312EE3210d53C15AA across chains).
Note that the initcode
parameter must be the full creation bytecode of your contract including the constructor and the encoded arguments.
In foundry you can construct this via abi.encodePacked(type(ContractToDeploy).creationCode, abi.encode(...contructorArgs))
.
We currently don't have functionality to support 3rd party sellers, if you'd like to organize a 3rd party sale you can simply mint the address in question as a token and create an offer on any NFT platform as the address tokens are fully ERC721 compatible.
Yes, check out the source code and respective license here.
Generating vanity addresses with a specific structure such as leading zeros requires randomly generating many addresses to find the one that matches the desired pattern, effectively bruteforcing the address parameters. This is a computationally expensive process that's parallelized on GPUs to reduce cost.
Once found we collect the parameters in our database, offering a trustless purchase permit that you can redeem for ETH in the contract.
Vanity addresses are for smart contract developers or teams looking to deploy production contracts. While addresses are minted as ERC-721 NFTs we generally discourage zero-sum speculation and hope that the provided convenience of acquiring and using vanity addresses will be a value add to devs.
Primarily, vanity addresses are for aesthetics and signaling purposes. However they do provide a practical benefit: gas savings. If your contract is a token or is otherwise interacted with by other contracts (e.g. if a user needs to make an ERC20 allowance to your contract) the user will save gas based on the amount of zero bytes in your address. This is because Ethereum charges 16 gas / non-zero byte of calldata but only 4 for zero bytes.
Furthermore if you design your contracts with vanity addresses in mind you could save gas by being able to pack more values into the same storage slot. Instead of taking up 20 bytes you can now truncate such that it only takes up 14 bytes (12 leading zero address).
Purchases on Ethereum Mainnet are completely trustless. The control & ownership of the address is full encapsulated by the token that you mint. Once your transaction is included and the token is minted to you there's no way for us to give it to someone else.
No, you can deploy any bytecode to the address we provide, it can be a proxy but it doesn't have to be.
For more information or to stay up-to-date check out our telegram.