How it Works

Our service uses EIP-1167 Minimal Proxy pattern with Vanity optimizations to make huge savings on gas.
https://eips.ethereum.org/EIPS/eip-1167#vanity-address-optimization

The example of the MinimalProxy contract bytecode on the blockchain looks like this:

0x363d3d373d3d3d363d6f10fd301be3200e67978e3cc67c962f485af43d82803e903d91602757fd5bf3

And this might confuse some users, because the code doesn't look like regular ERC20 code - it's just too short for that! But that's where the magic is.

So instead of deploying the full ERC20 code over and over again - it deploys only a small contract, that has its own storage (all the parameters that you put in, and balances, etc), and redirects all functions to the singleton implementation contract that is deployed separately on a short Vanity address, and this implementation is shared by all contracts.

This allows to save a lot of gas for deployment, because the proxy code is just 41 bytes, and the full contract is over 2000 bytes. And it doesn't affect the functionality at all - adding just a breadcrumbs of gas on every transaction (around 750 gas, which is cents, even with high gas prices).

Our Factory uses the original EIP-1167 CloneFactory16 implementation

https://github.com/optionality/clone-factory/blob/ffa4dedcec53b68b11450b07685b4df80c33edcc/contracts/CloneFactory16.sol

for createClone, which works only with Vanity addresses. Vanity address is a specially generated address with leading zeros, so the code is shorter and requires even less gas. Although Etherscan already supports the regular MinimalProxy, allowing you to see the code of contract it points to (https://medium.com/etherscan-blog/eip-1167-minimal-proxy-contract-on-etherscan-3eaedd85ef50), but currently it doesn't support it's Vanity variation, although the code differs by just a couple of bytes (it uses PUSH16, instead of PUSH20 for the address, because it's short).

So, the code above points to

0x0000000010fd301be3200e67978e3cc67c962f48

address with the basic ERC20 implementation. As you can see, the address has 8 leading zeros in the beginning, but there are no leading zeros in the code - which saves us 4 bytes.

All of the contracts source code is verified and available on Etherscan.

Here are the addresses of our contracts on different Ethereum Networks:

Simple ERC20 FixedSupply Implementation Addresses

MainNet Ropsten Rinkeby Goerli

0x0000000010Fd301be3200e67978E3CC67C962f48

Kovan

0x0000000070851e7D7cA7E13786Ed49a82825a1A3

Coinstructor CloneFactory Addresses

MainNet

0x4940F8FBa893447C3dc7b4aD3Cf8f29623802b8c

Kovan

0x3C9d855b8Ba5a365ec8acFD7cF5387a9090D5a1E

Ropsten

0x862ab2A5E8fEEca125519b5C6F948Eb7954cFACB

Rinkeby

0x862ab2A5E8fEEca125519b5C6F948Eb7954cFACB

Goerli

0x862ab2A5E8fEEca125519b5C6F948Eb7954cFACB

Ask Us Anything