🏴☠️ Loot Box
What is a PoolTogether Loot Box?
Overview
The PoolTogether Loot Box is a permission-less token container. A Loot Box allows wallets to be transferred like an ERC721.
Many different tokens can be controlled simply by one counterfactual address. The holding contract is created and destroyed within the same transaction. This cheap deployment and immediate destruction of the contract minimizes the gas overhead involved with containerization.
The code can be found here: https://github.com/pooltogether/loot-box
How it works
A LootBox contract ephemerally exists within a transaction. The owner of an ERC721
owns the LootBox.
A
ERC721
is created by callingcreateERC721Controlled()
on theERC721ProxyFactory
by anyone:
mint()
can then be called on theControlledERC721
which effectively creates a LootBox with an Owner defined by theto
field:
2. The LootBox address is calculated by calling:
3. Tokens are transferred/minted to this address. In the case of PoolTogether, these are usually external ERC20, ERC721 and ERC1155 rewards for a Prize Period.
4. Anyone can call plunder()
on the LootBox controller which will transfer all the passed tokens to the LootBox owner.
where erc20s
is defined as an array of ERC-20 addresses,
erc721s
is defined as:
and erc1155s
as:
Last updated