Introducing Exposure Tokens
This is a prototype of a decentralized protocol for Exposure Tokens (eTokens), a new type of derivative created by Greenwood Labs. With Exposure Tokens, traders can mint and trade fractions of financial NFTs. Exposure Tokens are designed to make decentralized finance a group activity and help traders build a diverse portfolio without the effort or expense of acquiring financial exposure independently.
The development of Exposure Tokens was motivated by the desire to make decentralized finance more social and simpler to use. Exposure Tokens exist to permissionlessly wrap arbitrary code representing financial exposure into a single token that you can trade on a DEX, reducing the cost and complexity of using DeFi and giving people a vehicle to crowdfund trades with their frens and famiglia.
How it Works
Creating an Exposure Token
- The Exposure Token deployer structures the exposure, deciding how much ETH to raise, what transactions to execute upon reaching the fundraising goal, the initial buyout price, and the minimum buyout price.
- The Exposure Token is “initialized”, beginning the fundraising period.
- Contributors contribute ETH in exchange for an allocation of Exposure Tokens proportional to their contribution.
- After the fundraising period ends the fundraise is “finalized” or contributors are refunded.
- If the fundraising goal is reached the fundraise can be “finalized”, triggering execution of the transactions specified by the deployer.
- If the fundraising goal is not reached, contributors can claim an ETH refund.
- Finalization triggers predefined arbitrary code execution. Contract deployers can structure exposure by calling any function on any smart contract.
- Contributors can claim their Exposure Tokens after contract finalization.
Trading Exposure Tokens
- Exposure Tokens can be traded on decentralized exchanges or over the counter.
- Exposure Tokens implement the ERC20 token standard so they can be traded on decentralized exchanges.
- Exposure Tokens can be traded over the counter via the
submitBlockTrade()function. Anyone can submit an offer to buy Exposure Tokens at a given price by calling
submitBlockTrade()and transferring ETH into the eToken contract. Exposure Token holders can choose to accept a block trade price for a portion, or all, of their Exposure Tokens. Accepting a block trade sends ETH to the token holder and transfers the Exposure Tokens to the buyer.
Exposure Token Buyouts
- The Exposure Token deployer sets the initial buyout price and the minimum buyout price (the lowest amount the eToken contract can ever be bought out for).
- Exposure Token holders can continuously vote on a desired buyout price. The weighted average of this vote decides on the price needed to force a buyout.
- Anyone can submit an offer to buyout all outstanding Exposure Tokens for a given eToken contract by calling
submitBuyout()and transferring ETH into the Escrow contract. If the buyout offer is valid, the buyer is granted the ability to execute arbitrary code from the eToken contract and Exposure Tokens no longer represent ownership of the assets held by the eToken contract. An Exposure Token holder's proportion of the buyout can be claimed from the Escrow by calling
- Open a leveraged Long ETH Perp on GMX with up to 30x leverage and wrap the position with Greenwood Exposure Tokens
- Farm the MIM-2CRV pool for $SPELL and fractionalize the position with Greenwood Exposure Tokens
- Airdrop farm tokenless projects and wrap ownership of potential future tokens with Greenwood Exposure Tokens
- Increase capital efficiency of block trades by allowing users to specify a trade
- Refactor ExposureToken.sol to implement ERC721 so that financial positions are NFTs
- Create ExposureTokenVault.sol to fractionalize ERC721 ExposureTokens
- Add governance so that token holders can manage their exposure
- Reduce gas costs
The Exposure Token contracts were inspired by:
This software is unaudited and is provided on an “as is” and “as available” basis. If you choose to interact with these smart contracts, please do so with the understanding that your assets are at risk of being lost. This software is meant only for demonstration purposes, we do not give any warranties and will not be liable for any loss incurred through any use of this codebase.