The Patron role is earned by adding liquidity to a Balancer pool. Gas is expensive on mainnet. A quick test of adding 3.9 SEED / 0.07 wETH to Balancer is asking for 0.25 ETH ($440) to do the transaction.
I would like to make it possible for someone to qualify as a Patron by adding liquidity using Honeyswap for an xDAI token, mSEED, and bridged wETH, WETH.
mSEED or “Mirrored SEED” is an xDAI token whose minting is pegged to SEED on the mainnet. Each time a SEED mint event occurs on the mainnet, it is mirrored in mSEED.
The Arbitrary Message Bridge (AMB) uses a pair of oracles on the chains being bridged to make arbitrary calls across them. Using the AMB, it should be possible to automate the mirroring process.
An obvious question is why not use a “bridged” version of SEED? A bridged token works by:
- Mainnet contract accepts an amount of SEED
- The contract puts the SEED in a vault and signals via the AMB to the xDAI mint
- xDAI minting contract creates an amount of xSEED to match the quantity on SEED on the mainnet
- User does with xSEED whatever they want
- Going back, xSEED is burned and SEED released from the vault
The issue is that the bridge process executes in part from the mainnet and incurs the exorbitant costs. The mirrored token creates a controlled token supply without any mainnet operations.
An open question is what should the initial balances be for the mSEED token? There are a few possibilities:
- Everyone starts with a zero balance. This option is undesirable because it delays the creation of a token supply.
- Everyone gets whatever their current holdings are on mainnet.
- Everyone gets however much they’ve been minted on mainnet.
- Everyone gets the total number created on mainnet / 300 (for the 300 Players)
Unfortunately, it is not entirely straightforward to determine the token balances for an ERC-20 token. My personal preference at the moment is the equal division to all players. The inequality between old and new Players is pretty extreme: I have 360 SEED, pΞTH has 3,100. The deployment of this contract can be like the start of a new race.
There are a few technical options. The primary one is that ERC-20 doesn’t have support for batch transfers. When the MetaGame DAO mints tokens, it does so to a treasurer’s address. The treasurer then runs the SourceCred system and uses something like disperse.app to distribute SEED in proportion to the distribution of XP.
This means that if my mirror contract is only copying minting events, it will only create tokens for the treasurer, not the Players.
ERC-1155 is a more advanced token standard that adds a batchTransfer
method which permits doing a set of operations in a single call. If it were being used, the dispersal and mint actions could be a single event. Also, it makes writing the mirror contract much simpler.
There are a couple different options for how to make it possible to do the SEED dispersal using an ERC-1155 interface.
One is to create an ERC-1155 compliant contract that knows about SEED and constructs calls to its methods. Another is to allow 1:1 conversion to an upgraded token. The former is less disruptive to existing investments, the later is cleaner and easier.
The overarching goal is to allow investment in the xDAI chain with a minimum of mainnet operations.