This blogpost points to the beta release 0.3.1 of ItchySats - non-custodial CFD trading secured by DLCs on the Bitcoin blockchain. The blogpost describes the testnet setup — give it a try!
🤔 What what what does that mean?
We assume that you know what Contracts for Difference (CFDs) are. If not please read up 😬🚀
Non -custodial means that there is no middle man. Instead of trading on a platform such as e.g. BitMEX with a user account you trade P2P. No account, just you and your keys. You don’t have to trust a platform to get your funds back —you can always settle on-chain and will receive your money according to the Oracle’s attestation at expiry.
On Bitcoin this becomes possible by using Discreet Log Contracts (DLCs). When setting up the CFD with the other party, multiple spending transactions are generated. Only one spending transaction can be used to unlock the funds based on the signed price by an independent oracle at a later point in time. The basic workflow looks like this:
Our first demo version on testnet only includes taking a long position against a fixed testnet maker (that takes the selling position).
📽 Demo Video Time!
The video showcases the daemon logs and the user interface that is served by the daemon locally. Bundling the application to make it available as app is in the works.
Have a look at the transaction that opens the CFD in the video. With the position being open, it’s now time to wait for Bitcoin to go through the roof. Once that happened we’ll post a video on closing the position and claim the funds on chain.
🐳 Docker it up!
Open a terminal and run this command:
docker run --rm -v$PWD/data/taker:/data -p8000:8000 --pull always ghcr.io/itchysats/itchysats/taker:0.3.1@sha256:58557bce9ffc4451d2548faf80c11f84db61a603407a750fd5c23320113369fe --maker=testnet.itchysats.network:9998 --maker-id=f979795740e3b0e9cc6b7151f8f08d6e412cc29893dfb1e71a64459f7e9d6954 testnet
Access the user interface at
The data directory to be used by the container will be created at
$PWD is your current directory.
The docker command will always pull the latest docker container, start it and connect to our public testnet maker that takes the short position.
If the container shuts down because the connection to the maker is lost please just restart it. Automatic connection retries are in the works.
👯 Binary it up
You don’t have docker? Here’s how to run the binary:
- Download the Mac — Linux binary (or chose on GitHub)
- Open a terminal and run the binary with command:
./taker --maker=testnet.itchysats.network:9998 --maker-id=f979795740e3b0e9cc6b7151f8f08d6e412cc29893dfb1e71a64459f7e9d6954 testnet
Access the user interface at
The data directory be created in the current directory with name
If the taker shuts down because the connection to the maker is lost please just restart it. Automatic connection retries are in the works.