Browse Source

Roadmap to MVP

bdk-0.11
Daniel Karzel 3 years ago
parent
commit
f5aa8f411b
No known key found for this signature in database GPG Key ID: 30C3FC2E438ADB6E
  1. 5
      README.md
  2. 60
      docs/roadmap.md

5
README.md

@ -0,0 +1,5 @@
# Project Hermes
CFD trading on Bitcoin.
Coming soon.

60
docs/roadmap.md

@ -0,0 +1,60 @@
# Hermes Roadmap
## MVP
The Minimal Viable Product's goal is to showcase that non-custidial CFD trading on Bitcoin is possible.
## Scope
### Roles
- **Taker**: Cannot create and publish orders, but just takes what is published by a Maker
- **Maker**: Can create and publish orders
- **Oracle**: Signs and publishes attested prices at specific points in time
### In scope
For the MVP there is only one Maker that takes the selling side and creates sell orders.
The maker does not do any automation.
The maker dictates the price.
A user is always in the role of a taker.
The user has a simple user interface and can take the maker's order there.
The taker can specify a quantity, the leverage is fixed to `x5`.
For the MVP the leverage is fixed to `x5` for both sell and buy orders.
The oracle is needed for attestation of prices at a certain point in time.
The oracle is to be run by a separate party that is neither the taker nor the maker.
Overview sequence diagram:
![MVP sequence diagram](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/comit-network/hermes/b7778f0556d1cbfd578aa28042beb24c7f13d5a3/docs/asset/mvp_sequence_diagram.puml)
Constraints:
♻️ ... expected to be reusable for later iterations
- ♻️ Protocol: Non-custodial using DLCs
- On-chain (testnet)
- Software Setup
- Taker
- Local running daemon that exposes API + web-interface for UI
- Can take a sell order (represents the buy side)
- Specify quantity
- (fixed leverage of `x5`)
- Maker
- Can create a sell order (represents the sell side)
- Sell order publication is done manually
- Take requests are accepted manually
- ♻️ Oracle
Architecture recommendations
- Maker and taker have different purpose / scope and hence should be separate binaries.
- Code can be shared in e.g. UI components and rust libs
### Out of scope
- Anonymity
- Orderbook
- Multiple makers
Loading…
Cancel
Save