Inspiration
The is no easy way to trade call or put crypto option contracts without establishing an account and depositing crypto funds to a centralized, trusted entity. The DSF trader is a Front End interface to The DSFProtocol. The DSFprotocol creates, exercises, and Settles Optiontokes: ERC-20 tokens on the Ethereum blockchain. Attributes are Flavor: (Put or call) Strike Price, Expiration Date, and Underlying Asset. (ETH, BTC, Custom) As Optiontokens are completely fungible, they can be transferred between crypto wallets or trading on peer-peer or crypto exchanges. The DSF Trader front-end uses the Torus wallet for easy onboarding, furthering an excellent user experience.
How I built it
The DSF Trader is written JavaScript and React. The DSFProtocol is written in Solidity and exists completely on-chain. All Optiontokens created are 100% collateralized, funds are stored in Ehererum smart contracts.
Challenges I ran into
Our biggest challenge was developing a methodology to Settle in the money expired Optiontoken (option contracts) and accurately distribute the proceeds to the Writer's and Holder's of the OptionTokens Wallets. In Settling expired Optiontokens, the market price of the underlying asset needs to be known. A public reverse auction accomplishes the price discovery of the underlying asset. The DSFprotocol community (DSF token holders) receive time priority during the auction based on their DSF token holdings.
Accomplishments that I'm proud of
Figuring out a way to accomplish fair and accurate price discovery without the use of a trusted Oracle. Creating a simple, clean interface that can be used on all devices
What I learned
To ensure a great User Experience, considerations must be given to what functions/tasks should be done on-chain and off-chain.
What's next for DSFProtocol
Complete our prototype, Code audit, release to the mainnet, and engage with partners to promote, raise our first round of funding.
Built With
- bootstrap
- javascript
- react
- reactstrap
- solidity
Log in or sign up for Devpost to join the conversation.