Sigma Embedding on Squarespace
Let’s give this a go.
Change the filter parameters on any of the visuals below by hovering over the visual and clicking the filter icon in the top right.
How to Mine Novo (AWS)
You know the drill - this time it’s for AWS.
Download the files
wget https://github.com/novobitcoin/novobitcoin-release/releases/download/v0.1.0/novo-bitcoin-0.1.0-x86_64-linux-gnu.tar.gz
wget https://github.com/novobitcoin/novobitcoin-release/releases/download/v0.1.0/novominer-0.1.0-x86_64-linux-gnu.tar.gz
Extract the files
tar xzvf novo-bitcoin-0.1.0-x86_64-linux-gnu.tar.gz
tar xzvf novominer-0.1.0-x86_64-linux-gnu.tar.gz
Run the node
./novo-bitcoin-0.1.0/bin/novobitcoind -daemon
Stop the node
./novo-bitcoin-0.1.0/bin/novobitcoin-cli stop
Edit config
vi ~/.novo-bitcoin/novo.conf
port=8666
rpcport=8665
rpcuser=USERNAME
rpcpassword=PASSWORD
esc :wq enter
Run the node
./novo-bitcoin-0.1.0/bin/novobitcoind -daemon
Get new address
./novo-bitcoin-0.1.0/bin/novobitcoin-cli getnewaddress
Edit miner config
vi ./novominer/cfg.json
{
"url" : "http://127.0.0.1:8665",
"user" : "USERNAME",
"pass" : "PASSWORD",
"algo" : "sha256dt",
"threads" : "NUMBER-OF-CPUS",
"coinbase-addr": "YOUR-ADDRESS"
}
esc :wq enter
Install miner dependencies
sudo apt install libjansson4 libcurl4
Run the miner
nohup ./novominer/bin/novominer -c ./novominer/cfg.json
Check miner output
tail -100 nohup.out
Import private key
./novo-bitcoin-0.1.0/bin/novobitcoin-cli importprivkey YOUR-PRIVATE-KEY
Check your wallet balance
./novo-bitcoin-0.1.0/bin/novobitcoin-cli getwalletinfo
Accord Money Explained
Accord Money recently launched their MakerDao / Dai equivalent on a UTXO blockchain (BSV).
Accord Money recently launched their MakerDao / Dai equivalent on a UTXO blockchain (BSV).
Here’s a video explaining how to get up and running on mobile using Volt wallet:
Desktop wallet
Same deal but using desktop:
How to Mine Novo (Digital Ocean)
Grandma could get a Novo Bitcoin node running and start mining Novo Bitcoin with these instructions.
Turns out mining with Digital Ocean is against their Terms and Conditions. They will shut down your account without warning if they suspect you are mining!
Grandma could get a Novo Bitcoin node running and start mining Novo Bitcoin with these instructions. Unfortunately, I can’t take credit. Huge thanks to Eumemic for helping a complete stanger. What a gentleman. Please give him a follow.
Here’s the video:
Download the files
wget https://github.com/novobitcoin/novobitcoin-release/releases/download/v0.1.0/novo-bitcoin-0.1.0-x86_64-linux-gnu.tar.gz
wget https://github.com/novobitcoin/novobitcoin-release/releases/download/v0.1.0/novominer-0.1.0-x86_64-linux-gnu.tar.gz
Extract the files
tar xzvf novo-bitcoin-0.1.0-x86_64-linux-gnu.tar.gz
tar xzvf novominer-0.1.0-x86_64-linux-gnu.tar.gz
Run the node
./novo-bitcoin-0.1.0/bin/novobitcoind -daemon
Stop the node
./novo-bitcoin-0.1.0/bin/novobitcoin-cli stop
Edit config
vi ~/.novo-bitcoin/novo.conf
port=8666
rpcport=8665
rpcuser=USERNAME
rpcpassword=PASSWORD
esc :wq enter
Run the node
./novo-bitcoin-0.1.0/bin/novobitcoind -daemon
Get new address
./novo-bitcoin-0.1.0/bin/novobitcoin-cli getnewaddress
Edit miner config
vi ./novominer/cfg.json
{
"url" : "http://127.0.0.1:8665",
"user" : "USERNAME",
"pass" : "PASSWORD",
"algo" : "sha256dt",
"threads" : "NUMBER-OF-CPUS",
"coinbase-addr": "YOUR-ADDRESS"
}
esc :wq enter
Install miner dependencies
apt install libjansson4 libcurl4
Run the miner
nohup ./novominer/bin/novominer -c ./novominer/cfg.json
Check miner output
tail -100 nohup.out
Check your wallet balance
./novo-bitcoin-0.1.0/bin/novobitcoin-cli getwalletinfo
STAS Protocol Consideration
STAS protocol explained and compared with other BSV token protocols.
I been working full time at DXS from February. This post is the extended version of this explainer on DXS, the key difference being there are comparisons given to other BSV token protocols (such as RUN).
We’re looking for viral growth at DXS. We’ve got two launches in the pipeline that will lay the foundation for this growth:
Launch liquidity backed stablecoin trading in USD, EUR, JPY, CNY and INR
This will allow traders to profit-seek in their currency of choice, avoiding BSV price fluctuations
This will grow our insurance pool and session liquidity, allowing for larger position sizes
Launch a loyalty token
This will provide referral compensation for traders who successfully invite new traders onto DXS
This will reward traders for their loyalty
This will Incentivise trading volume into the future
We operate on the BSV protocol. We need tokens. Here are our options:
This post will explore the STAS protocol. Below are our considerations (1 = best, 5 = worst):
Fungible tokens - non-negotiable
Both our stablecoin and our loyalty token require fungibility. STAS provides this.
Permissionless - non-negotiable
We consider a token to be permissionless if it can be spent without reliance upon an oracle / signature authority. There is additional nuance for RUN:
Jigs (tokens) have classes and instances. The issuer of a token can edit / update the class of the token. While such a feature allows for tokens to be upgraded, it also makes the tokens permissioned in our view. However, it is possible to provably throw away authority to make changes to a class. This is what RelayX did with their orderbook DEX. If the ability to make changes to a token’s class is discarded, we consider such a token non-permissioned.
Given the above, we can eliminate the below protocols from further DXS consideration:
Sensible Contract
An oracle imports signed parent and grandparent transaction information. Sensible contract thereby sidesteps the back-to-genesis problem by leaning on imported information via oracle and inductive proof in bitcoin script.
CUP
CUP is a very similar implementation to Sensible. There is more nuance here but ultimately CUP still requires an oracle for (most) token transfers and all smart contract interactions.
SFP
All actions require a signature from an oracle.
Tokenized
Every action is a request to a smart contract agent and then a yes / no transaction back from the smart contract agent.
The only requirement for a STAS token output to be spent is that the spender constructs a transaction adhering to the STAS template, signs with the appropriate private keys and a miner validates the transaction.
With STAS, there are no permission levels beyond the miner layer. The miners are the only authority.
Why does ‘permissionless’ matter?
Redundancy
If your oracle goes down, your tokens go down.
Cost
If you don’t need an oracle, you don’t pay for an oracle.
Trust
If you don’t need an oracle, you don’t trust an oracle.
Legality
Companies like Centi look to avoid the legal implications of being a ‘payment processor’ vs being a ‘cash handler’. Read this if you want to understand the perspective.
You need 1, 2 and 3 (and likely 4) if you want to make protocolization feasible.
What does ‘protocolization’ mean?
DXS connects to a liquidity provisioning and trade settlement engine managed by a UK non-profit entity called the Bitcoin Trading Protocol Foundation (BTP Foundation).
We are looking to protocolize the BTP. Protocolization in this sense would mean the automation of existing business logic with permissionless tokens and smart contracts. Protocolisation would also mean that the BTP becomes a public resource and trading platform liquidity provisioning and trade settlement becomes plug-and-play.
Bitcoin turned settlement (untrusted interaction) into a protocol. Bitcoin eliminated the requirement for simple interactions between parties to be brokered. If you remove the broker, you drive the cost of settlement towards zero.
Leaning on bitcoin’s teachings - if you can automate (protocolize) business processes (especially those involving settlement) then you certainly should.
STAS protocol keeps the door open for these future plans.
Open source
The template that defines how STAS transactions are to be built is public. Beyond that, there are STAS transactions on the public BSV blockchain. Anyone can look at the locking / unlocking scripts as well as amounts.
The SDK created by Taal that builds STAS transactions is open to the public. Here is the public use license.
It’s also possible to roll your own SDK that complies with the STAS protocol as outlined in the STAS whitepaper.
Licensing or restrictions
Taal purchased the STAS protocol’s IP. Taal will likely charge licensing fees for issuances of STAS tokens in the future, while usage of circulating (already issued) tokens will be free for the public.
Audited
STAS protocol has been audited by Trail of Bits.
Upgradeable tokens and smart contracts
New templates can be created that conform to the STAS protocol while adding more features. Currently the suite of templates is relatively limited. All STAS templates are interoperable, e.g. atomically swappable.
Smart contracts that interact with STAS tokens could support extensibility.
Secondary markets
There are not yet any markets for STAS token exchange. Unlike:
Sensible Contract
CUP
RUN
Sigil
Actualization of satoshis
STAS protocol requires the most granular unit of any circulating issued token to be represented by a satoshi. Actualization gives us some benefits (ease of integration, lightweight etc) along with drawbacks. For example:
If you want to issue $1,000,000 worth of USD tokens and support granularity down to one cent, you need 100,000,000 satoshis (1 BSV).
1 BSV at a BSV/USD rate of $100 is $100.
$100 to issue $1,000,000? Not bad, but not ideal.
Transaction fees
A standard STAS transaction looks like:
148 byte P2PKH input (to cover mining fee)
1,400 byte STAS input
34 byte P2PKH output (change)
1,400 STAS output
Here’s a transaction on mainnet with one STAS input and one STAS output (1:1 STAS transaction). This particular transaction weighs in at 3,486 bytes (improvements have since been made to the STAS script and the same transaction would now be approximately 3,000 bytes).
At $85 BSV/USD, the transaction fee for a standard (1:1) STAS transaction would therefore be:
3,000 bytes * 0.05 sat/byte * 85 BSV price / 10^8
= $0.00013 / transaction
We will ignore issuance and redemption STAS templates in this post (both are much smaller transactions than regular transfers).
Splitting and merging of UTXOs
What if you have $10.24 worth of STAS USD tokens in your wallet? What if the UTXOs that represent this $10.24 are 1,024 * $0.01 outputs? What if you want to make a $10.24 payment to a friend?
Standard STAS transactions only support up to 3 inputs (one of which is the miner fee payment input). You can only reduce your set by a factor of 0.5 for each transaction.
How do you make your $10.24 payment?:
You make your $10.24 payment by merging outputs via 1,024 transactions, costing $0.1911 in miner fees.
What about adding more STAS outputs / inputs?
This can be done, but each STAS script within the transaction will not remain 1,400 bytes in size, as they are for a 1:1 STAS transaction. Adding one additional STAS output to a transaction increases each STAS script by 85 bytes. Adding two additional STAS outputs to a transaction increases each STAS script by 170 bytes (and so on).
We are not completely sure of the effect of adding additional STAS inputs. We have heard that this may cause too much bloat of the STAS script to be economical and that it would be better to merge via many separate transactions (as in the table above).
The above example in the table is comparable to having $10.24 in your wallet in pennies, which usually you don’t have. Merging 1,024 outputs will not occur regularly in a consumer wallet making this an extreme example.
Backend integration burden
This is where STAS really shines from DXS’s perspective.
DXS’s back end logic is concerned with tracking the movement of satoshis. STAS integrates with our existing business logic very well. After all, STAS transactions are simply the movement of satoshis.
This is massive for us at DXS as STAS integration does not require a significant rewrite of existing processes.
Additional infrastructure burden
Let us start by saying that there is no practical fungible token protocol on BSV that is purely miner validated.
This is another way of saying that the back-to-genesis problem has not been solved.
All fungible token protocols on BSV must either use an oracle / smart contract agent as an authority OR maintain / subscribe to infrastructure that ensures the chain of token spends for any given token protocol is unbroken all the way back to the issuance transaction.
To safely integrate STAS you must either run or subscribe to a service that maintains the UTXO subset / shard for the token universe you are interested in. Here are your options:
Run a BSV node that indexes every STAS transaction for the token in question. From this, derive a UTXO subset for the token in question. Any future STAS transaction for this particular token must be spent from this UTXO set (else it is fraudulent).
DXS is currently implementing this.
Subscribe to an API service that does (1) for you. Taal currently is running such a service.
DXS will likely subscribe to this service for redundancy.
There are only two permissionless token protocols on BSV that support fungible tokens (and are being actively built upon). STAS and RUN.
The indexing infrastructure that both STAS and RUN need to maintain is very similar. RUN is arguably heavier weight as it requires feeding the entire ‘tape’ of transactions into a state machine for a specific shard of the RUN universe to arrive upon the token or smart contract’s state. Once at the ‘chaintip’ only new transactions need to be fed into the state machine.
Comparatively, STAS token state is self-evident (number of satoshis in an output) and only requires maintaining a UTXO subset.
Finally, we acknowledge that we’ve had to build STAS indexing infrastructure in-house at DXS. RUN have already built and made RUN DB available which is RUN indexing software that can be run in-house.
Miner support
STAS has excellent miner support, Taal owns the IP and has built a UTXO shard indexing API as well as the STAS SDK. We cannot expect Taal to always be the dominant BSV miner but the present situation is positive for STAS.
Taal may also choose to favor STAS transactions in the future with lower miner fee pricing.
STAS scripts are compact and well within any existing miner limits. Contrast this with very complex Sensible Contract transactions. Miner validation has been a consistent issue for this protocol.
Finally, consideration must be given to blockchain pruning by miners. Any token protocol that uses unspendable OP_RETURN transactions (such as RUN) is more vulnerable to miners pruning these transactions in the future. Saying that, miners (and other service providers) will retain information that provides value. If there is sufficient demand for protocols like RUN, we cannot imagine related transactions would be discarded.
Wallet support
Relysia wallet has indicated they will support the STAS protocol. Unfortunately the Relysia wallet does not exist yet.
Centi wallet has indicated that they will support the STAS protocol. Unfortunately STAS support does not exist yet.
What about wallets that already integrate with DXS? Let’s look at each by share of DXS total trade volume:
Moneybutton 45%
Committed to SFP
Handcash 36%
Appear to be leaning towards ‘light touch’ support for RUN as demonstrated by DuroDogs
RelayX 16%
Committed to RUN
DotWallet 3%
Committed to Badge
52% of existing wallet volume on DXS is RUN biased. 0% of existing wallet volume on DXS is STAS biased.
Industry adoption
The following BSV companies are integrating STAS:
The Kleiman v. Wright Trade
Don’t tell me what you think. Tell me what you have in your portfolio.
I’m very excited to see what happens in November.
If you’re not up to speed, Joshua Henslee covers the Kleiman v. Wright case here:
Here is another great article if you want to dig deeper. And another one!
Here’s what I think. If you don’t already believe Craig Wright was involved in the invention of bitcoin, you will in a month’s time.
I think that means the BSV price will go up.
With that in mind, here’s a line from Nassim Taleb:
“Don’t tell me what you think, tell me what you have in your portfolio”
I’ll walk you through my $1,000 trade on this. It’s a bit of fun - a cheeky trade to make November more exciting. As part of my post you’ll see how Volt and TokenSwap plug into traditional crypto exchanges. I’m hoping you’ll find it interesting.
At the very least you can laugh at me if I get rekt.
The trade
Start with $1,000 USDT-BSV on my Volt wallet
Bridge this $1,000 USDT-BSV to USDT-TRC20 using the Volt asset bridge within the Volt wallet
Send USDT-TRC20 to my FTX account
Trade USDT-TRC20 for USD on FTX
Go long BSV-PERP on FTX using USD as collateral. Set take profit at $900
(predicted) BSV price pumps over $900 before the end of November. Trade closes for $12k profit
(predicted) feed mi familia with $12k profit
I already had $1,000 USDT-BSV in my BSV token wallet on Volt. Next step was to bridge this across to the Tron network using Volt’s Asset Bridge:
Here’s the bridge screen. Note the fees required. Also note that I needed to wait for 5 BSV blocks to be mined before my USDT-TRC20 could be credited:
After 5 BSV blocks were found my USDT-TRC20 appeared in my Tron account in my Volt wallet:
Next step was to send USDT-TRC20 to my FTX account. I sent my USDT-TRC20 from Volt to the address below (I paid 4.15 TRX as Tron network fees):
Next I traded from USDT to USD on FTX. I don’t really want to hold USDT longer than I have to. Here is my USD balance on FTX after all these steps:
Pretty good. I’m only down $3.18 so far…
Now I want to expose myself to BSV upside. What’s the best way? I think the best way is going long BSV perpetual futures contracts on FTX. BSV-PERP.
Why perpetual futures?
Lots of liquidity
Flexible contract size
No expiration date
Can use leverage
Why FTX?
I’d heard a lot about FTX and wanted to try it out
FTX has second highest daily BSV-PERP volume (after Huobi)
Why not TDXP?
TDXP would’ve made this trade 100x easier, but I’m guessing there are plenty of other BSVers doing this trade on TDXP. The liquidity pool is not yet big enough make this particular play. See this post which discusses the point
TDXP’s liquidity pool needs to grow to capture this sort of speculation (it will)
Risk management
I wanted to maximise exposure to BSV upside. I wanted to do so while managing the level at which my account would get liquidated.
Frustratingly, FTX doesn’t display your liquidation price when opening a trade. I needed to whip up a spreadsheet to do risk management:
FTX liquidates your account if your margin fraction goes below 3%. I wanted my account to survive a dip all the way down to $110. My spreadsheet told me to buy 14.93 BSV given those parameters.
Here’s the calculator if you want to use it. It will automatically calculate your position size given the current price and your desired liquidation price. Embarrassingly I had to use Wolfram Alpha to do the algebra for me.
Using the calculator I locked in the below trade:
You can see that I put in a take profit order at $900. Here’s the trade summary:
Now I let it ride.
Funding rate
Read this if you want to understand what funding rates are.
FTX supplies the historical funding rate data for BSV-PERP for the last 500 hours. I calculated the funding rate I could expect on this trade given their historical information:
When the funding rate is positive, longs pay shorts. When the funding rate is negative, shorts pay longs.
Over the last 500 hours, the average funding rate for BSV-PERP was -0.000543%. If I hold my trade for 40 days at that rate I would earn $13.43.
That might not be realistic - let’s look at the average funding rate for BTC perpetual futures markets across many exchanges:
Now we plug 0.015% funding rate per day into the spreadsheet:
If I hold my trade for 40 days at 0.015% holding rate per day, I would be charged $15.
$15 seems immaterial, but it will drag my estimated liquidation price up over time. I will keep an eye on it:
Update
Liquidated!
The trade was open for 44 days and I paid $54.14 in funding rates.
Better luck next time eh?
TokenSwap - How to Add Liquidity & Liquidity Mine
How to pool liquidity with TokenSwap and liquidity mine (yield farm) for TSC tokens.
Please read this introduction to TokenSwap if you haven’t already.
The following post is a full TokenSwap walkthrough. Here is what it covers:
Getting the Volt wallet app
Signing in to the Volt webapp
Depositing Tron USDT into Volt
Converting Tron USDT into Volt USDT (asset bridge)
Adding liquidity to BSV/USDT pair on TokenSwap
Liquidity mining for TSC (TokenSwapCoin) on TokenSwap (yield farming)
I’m getting this post out the door before liquidity mining (yield farming) starts on TokenSwap (5 hours from now at time of posting):
First, get the Volt wallet app
Volt is a crypto wallet. Volt is available on Apple, Android, Mac and Windows. Volt also has a web app.
You will need to download Volt for either Apple or Android at this link.
Follow the onboarding process to set up your Volt wallet.
Sign into the Volt web app
Open this link in your browser. You will see the below:
Use the Volt app on your phone to scan the qr code.
The Volt web app will unlock and look something like this:
As the above screenshot shows, within Volt you have accounts associated with different crypto networks. There is a BSV account, a BTC account, a Tron account and a BSV TestNet account.
Clicking on BSV shows what the BSV account looks like:
Here is what the Tron account within Volt looks like:
This page shows all my assets that are on Tron. I have the native TRX unit as well as some Tron-USDT.
Depositing Tron USDT into Volt
Why Tron you might ask?
Tron is the blockchain that handles most USDT settlement volume between centralised exchanges. Check out the below list:
Most global crypto trading volume is done against USDT on the above exchanges. It was a smart move for Volt to enable Tron compatibility. This opens the door to an enormous amount of external liquidity.
If you want to add Tron-USDT to Volt, you will need to click on the + symbol in the top right of your Tron account page in the Volt web app.
Then you will see USDT as an option on your Tron account page. Click ‘Receive’ and you will be shown your Tron deposit address.
It’s easy to deposit Tron USDT into Volt. Just copy your receive address from your account screen and use it as your withdrawal address from a centralised exchange like Poloniex.
Here’s what the Poloniex withdrawal option looked like for me:
Convert Tron USDT into Volt USDT
Now you have Tron-USDT in your Volt wallet.
In order to use the USDT on BSV you will need to bring your Tron USDT across Volt’s bridge into BSV. This simply locks your Tron USDT balance and mints an equivalent number of BSV USDT tokens.
Just click on ‘Bridge’ on the left panel of the Volt web app:
Select the amount of Tron USDT you want to convert into BSV USD. Note that the current minimum amount is $50 USDT. Also note that you need some TRX to use as gas AND BSV for transaction fees. When you click ‘convert’ you get a success message:
The transaction is finalised after 20 confirmations. Please note that this is 20 Tron confirmations and took less than 5 min.
You can buy Tron on most centralised exchanges and deposit directly into Volt in order to cover this cost.
After using the bridge, you should see USDT in your BSV account (less a 0.15% fee).
Add liquidity to BSV/USDT on TokenSwap
First, go to the TokenSwap website.
Click on ‘Connect wallet’ on the top right. You will see something that looks like this:
Click on ‘Volt Web Wallet’. Make sure you allow popups!
Scan the qr code with your Volt app to connect Volt to TokenSwap. You will get a prompt on your app like the below:
Once you’ve selected ‘Agree’, you will see on TokenSwap that you are connected and your wallet address is shown top right:
In order to commit liquidity to the BSV/USDT pool you will need to select ‘Pool’ on the top banner:
In an automated market making (AMM) smart contract such as the USDT/BSV pair on TokenSwap, the only way to provide liquidity is to commit both USDT and BSV simultaneously to the pool. You have to commit an equal value of both USDT and BSV (defined by the current market price).
When you click on ‘Supply liquidity’ you will get another popup prompt. Click ‘Pay’:
You will get a confirmation message like the following:
When you close the popup, your ‘Pool’ page on TokenSwap will look like this:
Every time you commit liquidity to any pair on TokenSwap, you will receive LP tokens for that particular pair in return.
You can use your LP tokens to remove your liquidity out of the TokenSwap pair you funded anytime you like. You will not suffer any fee for doing so. You do need to be aware of the risk of impermanent loss.
Your rewards for adding liquidity to a pool are:
Trading fees accumulate in the pool and you have a proportional claim to them
Every time someone makes a trade against a pool on TokenSwap, 0.2% of the trade will accumulate in the pool. This is explained here
You can earn TSC by liquidity mining / yield farming
You can choose to lock your LP tokens in a farming smart contract to earn TokenSwapCoin (TSC) as yield. Explained here. More on this further down.
What is TSC?
TSC is the native incentive coin for the TokenSwap DEX. Explained here. Screenshot below:
Below is a recent post from TokenSwap showing how TSC trading will kick off on TokenSwap:
The above implies a price of 1.2c USD per TSC (at BSV/USD rate of $150). This implies a TokenSwap market cap of $120,000.
Yes, the total eventual supply of TSC tokens will be 1,000,000,000, but the initial circulating supply of TSC will be 10,000,000:
Liquidity mine / yield farm on TokenSwap
Each pair on TokenSwap has its own LP token. To liquidity mine / yield farm TSC on TokenSwap you need to lock your LP tokens in the appropriate farming smart contract.
In the beginning, this feature will be available for two pairs - BSV/TSC and BSV/USDT.
People who lock their LP tokens in farming smart contracts on TokenSwap will proportionally accumulate TSC for every block that is mined on BSV.
BSV/TSC pair = 2,500 TSC rewarded to farmers every block (to be shared proportionally)
BSV/USDT pair = 2,000 TSC rewarded to farmers every block (to be shared proportionally)
Liquidity mining doesn’t start for another 5 hours. I will update this explainer when liquidity mining opens to the public...
How GorillaPool Achieves Global Mining Dominance
Here’s how you win the global mining game.
Three months from now, GorillaPool could be the dominant global bitcoin miner.
Here’s how GorillaPool wins:
GorillaPool pays GorillaPoolCoin (GPC) to hashers Volt wallets
1 GPC paid per 1 TH/s per day
Paid upfront
Paid on the hour, every hour (hashers start receiving their tokens into their Volt wallets 1 hour after hashing for GorillaPool)
BSV/GPC pool set up on TokenSwap. Hashers can immediately sell GPC for BSV. Alternatively, they can pool their GPC (along with BSV) back into the pair and earn GPC as yield (similar to BOEX pair on TokenSwap)
GorillaPool convert all their SHA256d mining rewards (less pool fee) into BSV and use this to buy GPC from the pool. GorillaPool then burn this GPC
GorillaPool lock up a percentage of their pool revenue in BSV for 12 months. When these amounts unlock, GorillaPool uses this BSV to buy GPC and burn it
What are the implications of the above approach?
Hashers have immediate pay-outs (1 hour after starting). Competing pools require hashers to wait for pay-outs
Hashers pay-outs are paid directly to their Volt wallets every hour. Competing pools custody pay-outs
Hashers have quantifiable pay-outs. 1 GPC per TH/s per day. Competing pools estimate pay-outs for hashers
Hashers pay-outs are immediately liquid on TokenSwap and can be traded for BSV (or any other asset on TokenSwap). Alternatively, hashers can pool GPC and BSV to earn GPC and revenue from the trading fees of the pool
GorillaPool must convert all mining rewards into BSV to buy GPC from the BSV/GPC pool and burn it. Daily SHA256d revenue over the last 6 months is $44.5M. What happens to the BSV price if a portion of this is diverted into BSV buying pressure? (take a glance again at point 5 above…)
GPC price will be driven above its face value of 1 TH/s per day because its valuation will absorb the present value of future growth expectations (largely due to BSV lock up and price appreciation)
If GorillaPool are paying GPC rewards that trade above face value of 1 TH/s per day, then GorillaPool has the capacity to pay the highest SHA256d rewards globally
What do hashers care about? Profit
Any questions?
TokenSwap Intro (Ape In)
TokenSwap is a Uniswap v1 clone that has been written in Scrypt.
There is some heavy ape interest in TokenSwap land:
For the elderly - the definition below will get you up to speed:
What is TokenSwap?
TokenSwap is a decentralised exchange (DEX) that is running on BSV.
TokenSwap is a Uniswap v1 clone that has been written in Scrypt. The TokenSwap DEX has been built by the team behind SensibleContract in China. The front-man for this team is Wang Fuqiang. Altogether I call them the ‘Volt Conglomerate’.
There are many different types of DEX. TokenSwap is an example of an automated market maker (AMM).
An AMM (in its simplest form) is a smart contract that contains two assets. The ratio between these assets implies an exchange rate. Trading with this smart contract changes the ratio between the two assets, moving the price.
TokenSwap is the world’s first AMM built on UTXO architecture (not account model). This is an enormous breakthrough for decentralised finance (DeFi) as UTXO architecture is maximally sharded by default (read maximally parallel = scalable). UTXO architecture also allows for:
Very low fees (10c or less in perpetuity)
Unlimited TPS
Instant AMM interaction = instant settlement (no waiting for block confirmations)
No frontrunning!
You want my opinion? TokenSwap is the crypto project with the biggest implications. What does TokenSwap demonstrate to the world?
BSV has full smart contracting ability and can run the most popular smart contract in the world today - the AMM
BSV’s UTXO architecture is a superior smart contracting platform (account model is naive)
Instant settlement
Low fees
Unlimited TPS
BSV (bitcoin) has solved the sharding problem since day one. BSV is maximally sharded. UTXOs are distinct, independent units representing state. Ethereum’s account model is how you would naively build bitcoin before throwing that iteration in the trash in favour of UTXO architecture
I want to express appreciation to our friends in China who were the first to realise the above. The ‘Volt Conglomerate’ built the entire DeFi stack from scratch:
Volt wallet (Metamask)
Apple and Android
Includes asset bridges to competing cryptos in the wallet
Includes SDK for app integration
Fungible and non fungible
TokenSwap AMM smart contract
Including liquidity mining scheme and tokenomics
In construction:
Orderbook DEX
MakerDao (DAI) equivalent
AAVE equivalent
How the f**k does bitcoin have fully-fledged smart contracting?
This deserves its own post. I’ll write about it soon.
Can you do an end-to-end explainer?
Yes. Working on that too, but I’ll wait to post it until TokenSwap goes live with liquidity mining. The TokenSwap team indicated this would happen within a month.
How do I value TSC when it launches?
I’ll drop a post on that in the future as well. It will look awfully similar to this post.
Wen BSV Bag Pump?
You lack conviction and you should be ashamed of yourself.
I’m a conviction merchant.
You lack conviction and you should be ashamed of yourself…
I’ve held bitcoin through every dump there has ever been. I’ve held bitcoin cash through every dump there has ever been. AND I’ve held BSV…
Recently, I received my PHD in ‘spectacular BSV conviction and dump resilience’ from Craig Wright himself.
Craig also has many academic achievements but doesn’t like to bring it up as he’s quite modest.
Anyway, given my new credential, here’s my take:
BSV is a pump target.
If you’re a ‘crypto investor’, here’s what you’re looking for:
Chain must have a Uniswap clone (thereby demonstrating the ability for autonomous smart contracting [no one cares about Conway’s Game of Life])
TokenSwap is running on BSV mainnet
Chain must have asset bridges to highly liquid competing chains
Volt have a Tron bridge running on BSV mainnet. ETH bridge very soon
Chain must have yield farming
TokenSwap will have their yield token running this month
Chain must have a well documented, high level smart contracting language that compiles down into native script
Scrypt on BSV
Chain must have low fees
Average transaction fee over the last year on BSV is $0.0025
Chain must have fast confirmations (primarily for settlement of smart contract interactions)
BSV apps and smart contracts use zero-conf (state is updated / settled instantly)
Chain must have a successful game
Cryptofights are doing 1.5M transactions per day on BSV
Chain must have NFTs
Cryptofights drop NFTs straight to gamers BSV wallets after every winning battle. These NFTs can be traded on the FYX NFT marketplace
Twetch drop NFTs to their users (generally food related as the CEO is chubby). Twetch also has an NFT marketplace
Bonus points for ‘crypto investors’:
Chain must have a social media application
Twetch is the best I’ve seen in the entire crypto space
Chain must be undervalued relative to other cyptos that hit the KPIs mentioned above
BSV…
Chain must have low liquidity and trade volume
Craig’s delisting strategy has paid off
Let’s see eh?
Zero Satoshi UTXOs
Are your BSV bags going to zero?
Are your BSV bags going to zero?
You don’t need satoshis to write to the BSV ledger and update the global state.
You can create zero satoshi UTXOs. You can spend zero satoshi UTXOs in transactions that pay zero satoshis in fees.
It’s not much of a leap to consider that you might not need satoshis at all. Given this, how should you react if you’re a public company with 74,000 BSV on its balance sheet?
Panic!
Nope. I also have BSV on my balance sheet. I’m not unloading yet. I’ll share some thoughts.
What happened?
First I want to say that I appreciate that Dean Little pushes up against the limits of mining. I’m liking the speed of innovation, sense of urgency and obnoxious Australian attitude - or ‘Australian attitude’.
Here is the transaction in question. The transaction is interesting. Here are the interesting points:
Every input consumed has an amount of zero satoshis
Every output created has an amount of zero satoshis
The transaction pays zero satoshis as a miner fee
Taal mined the transaction into a block
The BSV chain did not fork
Here’s why it’s entertaining:
It’s a consolidation transaction. Taal doesn't appear to have a public position on zero satoshi UTXOs. Taal became a party to the debate by simply running the default node configs. That was probably the plan. Cheeky.
What are the implications?
Zero satoshi UTXOs are 100% protocol-legal
Zero satoshi UTXOs can be created by miners that set their dust limit to zero
All BSV miners are running their policy such that they will allow zero satoshi UTXOs to be created and spent
Satoshis are not required to create UTXOs
The UTXO set is unbounded in size
Has a zero satoshi UTXO precedent been established?
Yes. Miners have committed to holding zero satoshi UTXOs in their set. BSV appears to have a firm ethic in regard to allowing forward compatibility for all UTXOs.
Saying that, miners could easily implement a policy that allows zero satoshi UTXOs to be spent, but no more to be created.
Can I attack BSV?
Here’s the best attack I could come up with:
Attack miner creates blocks with billions of zero satoshi UTXOs. Attack miner builds the UTXOs such that they appear spendable (but they are not)
These zero satoshi UTXOs will be held in all miners UTXO sets, expanding the UTXO set size and slowing down UTXO lookups (this applies to blockchain indexers also)
Attack miner deletes the UTXOs from their set. Attack miner has a comparatively faster UTXO set. Attack miner achieves comparatively lower overheads
Mitigation:
Dean Little touches on this in his Streamanity interview with the Numpties. Dean argues that the creation of zero satoshi UTXOs by a miner is not ‘free’. Most competing miners won’t accept or relay zero satoshi transactions as they violate their dust policies. The zero satoshi miner consequently pays the cost through increased orphan risk. The zero satoshi miner is bound by economics
I find myself agreeing with Dean on this one
Are my BSV bags going to zero?
If they do, it won’t be because of the protocol-legality of zero satoshi UTXOs. Some thoughts:
The vast majority of transaction fees are likely to be paid in satoshis
Satoshis are the lightest weight value transfer mechanism in the world. No competition
Think tiny transfers of value, where the difference between economic gain and economic cost is very small. Lightweight will always win
Price volatility is less meaningful at the micro level
Price volatility is less meaningful as market transaction costs approach zero
‘Layer 0’ tokens (like STAS) require satoshis to be actualised. At this point, ‘layer 0’ appears to be the lowest overhead ‘miner-validated-token' option. As far as I’m aware, the ‘back-to-genesis’ problem has not been solved without reliance upon satoshis
What if my BSV bags did go to zero? Is the Bitcoin dream dead?
There are a number of dreams:
Enormous Gresham’s Law BSV bag pump as value slowly bleeds into the native bitcoin unit of account
This dream is dead if your bags go to zero (obviously)
Money that is independent of state control. Money that is auditable, transparent and free from ANY manipulation. Let’s be very clear on this one. If you subscribe to the BSV ethos you concede that EVEN BSV’s unit of account is subject to state control. We concede that the correct application of law is sufficient to reverse transactions
Not only is the dream dead for the BSV unit of account, it is dead for all assets (and has been for centuries)
BUT, If you can’t have full independence, BSV at least gives you transparency
Bitcoin as an absurdly efficient private property engine. Bitcoin as an absurdly efficient state machine. Bitcoin as a protocol that utilises every last drop of humanity’s productive output
This dream is alive and well
Are satoshis a commodity?
Satoshis are not required to interact with the ledger. Can we continue to consider satoshis as a data-commodity?
Were zero satoshi UTXOs intended as part of Bitcoin’s design?
Hard to say. Obviously satoshis were initially intended to have economic value. Satoshis needed to have economic value in order to bootstrap the network. Bitcoin is an economic (not technical) system after all.
Would it have been possible to bootstrap bitcoin if zero satoshi UTXOs were understood and deeply discussed in the early days?
What does CSW think?
CSW really hates the idea of zero satoshi UTXOs:
‘Bitcoin is a token exchange system - no token, no exchange’
‘It’s a token system, not an account system’
‘They [zero satoshi UTXO miners] shouldn’t be. That is considered evil’
‘It’s a network attack’
‘Node software doesn’t decide the protocol. If I miscode it doesn’t mean it’s supposed to be there’
‘It fucks up the economics [something about a massive elephant cock fucking a small mouse hole]’
CSW contradicts himself by saying that he doesn’t care if you make zero satoshi UTXOs so long as you pay a fee in that transaction using satoshis. He later says that ‘A zero value thing is not a UTXO’ ‘You prune it’ ‘No coin no use’ ‘Don’t put coin in, don’t get to play’
CSW indicates that if miners continue to create zero satoshi UTXOs he will use ‘cybercrime legislation against them’
Wow. I would really like to see CSW’s response to Dean Little’s interview with the Numpties. Dean makes an interesting point:
‘Satoshi explicitly put it in the code - perform a check on each input to make sure the amount is not negative and does not exceed 21 million BSV’:
This is the code in question. Satoshi pushed it personally in response to an overflow bug in block 74,638. Satoshi explicitly outlines the logic and supports this with comments in the code.
If Satoshi really wanted to bound the UTXO set size to 2.1 quadrillion entries, shouldn’t Satoshi have checked for negative, zero or overflow input values?
I’m struggling to see this as a mistake…
CSW’s response:
‘Node software doesn’t decide the protocol. If I miscode it doesn’t mean it’s supposed to be there’
CSW seems to think that early bitcoin code and annotations can be interpreted as defining the bitcoin protocol. CSW also seems to think that sometimes he can just say he made a coding mistake and the protocol should be how he dictates.
C’mon Craig - I wish you had responded to this topic more coherently.
Should the global Bitcoin state be limited to 2.1 quadrillion unique entries?
Well. We thought that 4.3 billion IP addresses would be enough. It was not enough. For perspective, 2.1 quadrillion is 500,000x bigger than 4.3 billion. Is that enough? Maybe.
How many things can you think of that will require their own ‘state’ now and into the future? The way that CSW talks, I am led to believe… Many.
Does the BSV ethos truly support unbounded scalability, or should there be bounds?
Should we let economics handle this?
Could this Dean Little guy be on to something?
Or is this just another classic Australian shit-post?
Crypto - Modern Portfolio Theory
I have been reading Nassim Taleb and found out my finance education was a joke.
I have been reading Nassim Taleb and found out my finance education was a joke. Modern portfolio theory is a joke. Crypto is the biggest joke of all.
He appears to be correct.
With that in mind, here is some modern portfolio theory that also considers crypto assets. I am interested in seeing what traditional financial models spit out in terms of portfolio allocation to crypto.
The traditional question to ask is therefore:
What is the optimal portfolio of risky assets that maximises our expected return per unit of risk (Sharpe ratio)? I’ll walk you through my quick hack at this.
Get historical price data
I was trying to get closing prices for crypto for this project. I initially looked at Coinmarketcap’s API. Nope, you have to pay for historical data.
I then looked at Coingecko. Great site - the API is free and has price data back to 2014.
Then I looked at Yahoo Finance and figured out they have closing prices for every asset you can imagine (including crypto). It’s all free. That’s the ticket.
Code below:
You see I’ve thrown the S&P500 in there along with a bond fund and gold.
It’s just an example - you can use any price data you like.
This backfills missing crypto prices all the way back to 2001. Price moves in the exact same manner to gold. I rinse and repeat for all the remaining cryptos. Yes, it probably would’ve been better to not have backfilled at all and simply start the analysis from the most recent data point.
Now I have closing price data for 5,096 days:
Compute log returns
You want to use log returns. If my finance lectures served me - it has to do with log returns being normally distributed and additive (simple returns are not).
Nassim Taleb loves the normal distribution, especially when used to make predictions related to asset prices /s
We have 254 days of price data for each year. Below are annual returns and standard deviations:
I also compute the covariances:
Now we have all the ingredients needed to compute a portfolio’s expected return and standard deviation given different weightings of the assets within the portfolio:
Lastly, all we need to do is run this through an optimization function that tries different asset weightings in the portfolio with a goal of maximising return per unit of risk.
The below is the output that answers the question:
‘I have $100k. How much $$$ should I put into each asset such that my expected return per unit of ‘risk’ is optimised?’
What is the expected return, standard deviation and Sharpe ratio of this ‘optimal portfolio’?
That’s basically what modern portfolio theory is. You come up with it - you get a Nobel prize. Unfortunately it has a very good track record at not being very good.
What next if you’re reading Taleb? Well, maybe some analysis on under priced, way-out-of-the-money options. If everyone uses models that incorrectly compute risk, there must be some incorrect pricing somewhere…
Uniswap - Intrinsic Value
Everyone loves a good discounted cash flow model, right?
Here’s one for the people. I know everyone loves a good discounted cash flow model, amirite?
Remember when finance made sense? Remember when asset prices were simply a function of future cash flows? Let’s step back into that world. Let’s see if Uniswap holds up against an intrinsic valuation using reasonable assumptions.
Why Uniswap? Well, rather controversially (in the BSV world), I am a massive fan of their trading mechanism. I think Uniswap is very innovative.
I also have a sneaking suspicion that we’ll see a Uniswap clone on BSV in the next couple of months… I feel a valuation model could be dual-purposed...
Anyway - behold! The simplest DCF analysis you’ll see on Uniswap (we don’t need to overcomplicate things):
The assumptions / input cells are in yellow.
Future trading volume (millions)
Crypto trade volume over the last year was $100T. Let’s say a reasonable target for Uniswap volume in 10 years is 25% of that, so $25T
Yeah, yeah I know ETH has scaling issues. Let’s imagine Uniswap was built on BSV
Discount rate
Future cash flows need to be assessed in present terms. The discount rate is the return required by investors to compensate for taking on investment risk. The discount rate used by startup stage venture capital is a good analog for a crypto project such as Uniswap. Startup stage VCs commonly use a rate between 50-70%. Let’s go with 60%
Terminal growth rate
The constant rate Uniswap volume will grow at forever (from 2031 onwards)
LP fee rate
This is the fee charged on trade volume on Uniswap
Protocol fee
This is the proportion of LP fees that are distributed to UNI holders (the cash flow relevant in this valuation). Note that this functionality is not yet turned on on Uniswap, but is expected to be in the future
No. of tokens
The current circulating supply of UNI tokens
Now we need to plot an approach to $25T total volume by 2031. Check out the volume numbers below:
I used a sigmoid function to model the volume increase over the ten year period:
From volume you can derive the cash flow each year. For 2021:
$167B * 0.3% * 25% = $125M
From 2031 onwards we simplify. We calculate a terminal value. We assume a trade volume that grows 1% each year into the infinite future. We then discount this back.
Sounds like a big assumption right? Don’t worry too much, we’re using a yuuge discount rate, so these cash flows are not as impactful as you might think.
Next, we compute a net present value of each of the cash flows. This gives us a market cap of $3.3B.
Given the number of UNI tokens in circulation, this market cap implies a UNI price of $6.40. Current UNI price is $38.71.
All else in the model held equal, a current price of $38.71 indicates that UNI investors are expecting $150T in Uniswap trade volume by 2031. Is this realistic? You make the call.
If you want to play with the model you can access it here.
OUR Electricity
Have you noticed that it’s normal to talk about bitcoin in social situations now?
Have you noticed that it’s normal to talk about bitcoin in social situations now? Excellent news for this socialite. Here’s a popular line:
‘Bitcoin mining is a waste of electricity’
Let it slide man… Don’t ruin another dinner party…
What is waste? Top of Google search:
You say bitcoin is wasteful because it consumes more electricity than Sweden, Narnia and Middle Earth combined. Fair enough.
We don’t really want to argue that there are subjective opinions on what constitutes waste, right?
We’re not advocating for centrally-planned distribution of resources are we? Didn’t we try that in a few countries?
If we’re not centrally-planning, what is the best way to ensure resources like electricity are allocated correctly in the market?
The best answer we’ve found so far is called the ‘price system’. You played the price game this morning. Heat water, have shower. You pay for the electricity. You reason that the benefit of showering outweighs the cost.
Is it wasteful to have a shower? You don’t think so.
Who’s best placed to decide if showering is wasteful? You are - you pay.
Is it wasteful to mine bitcoin? Bitcoin miners don’t think so.
Who’s best placed to decide if bitcoin mining is wasteful? Miners are - miners pay.
Do we throw out the price system and try a different resource allocation method? I really hope not.
If we’re going to stick with the price system, don’t say:
‘I think bitcoin mining is a waste of electricity’
Say what you mean:
‘I think the price of electricity is incorrect’
You have a case if you believe the negative externalities of power generation aren’t being priced in. Problem is, that’s more fundamental. It puts all electricity usage under review, including your own.
Fuck it, bitcoin mining is wasteful.
TDXP - Beware the Pump
This article is not financial advice.
This article is not financial advice.
If I showed you my trading history, you’d never take trading advice from me. On that note - let me pitch a hypothetical:
Hypothetically, you come to the conclusion BSV looks ready for a substantial pump (absent any pesky black swans). In this hypothetical scenario you become aware of a number of price charts making the rounds in BSV related social channels.
You’ve got the classic ‘green eggs and ham ascending pizza chart’:
You’ve got the ‘green eggs and ham ascending pitchfork pizza with red cabbage extrapolation’:
And you’ve got the ‘green eggs and ham descending BSV/BTC channel triple-toucher, bottoming out with crazy bullish divergence and extreme volume chart’:
Ok - the green eggs and ham technicals are on your side. What about the fundamentals?
A 650MB block was mined recently - scaling seems to be going well
Average transaction fee is $0.0005 - fees don’t appear to be an issue
Handcash are doing God’s work enabling frictionless payments in a number of addictive consumer apps
Tokens have emerged and appear to be flourishing
RelayX has released a token exchange protocol and front-end. Tokens now have liquidity
Twetch have built a really cool social network and appear poised to ride the NFT wave
nChain have captured important blockchain-related IP and are extremely BSV-friendly
Taal has been leading mining with important BSV node improvements and are extremely BSV-friendly
Taal has been accepting large amounts of debt financing in BSV and BTC from a man called Craig Wright. Who is this man and where did he get such large amounts of bitcoin?
Our Chinese friends at ‘The Volt Conglomerate’ are shit-hot at L1 tech and have a deep understanding of bitcoin’s scripting capabilities. They seem poised to demo EVM-like stateful smart contracting on BSV
SHUA token is PAMPING
Ok - the fundamentals look pretty good too…
Here’s where I have some trading cautions to share.
You’ve noticed that TDXP has launched on Handcash. It’s beautiful. You want to go long BSV/USD or BSV/BTC.
Don’t make the trade until you understand TDXP ‘Session Liquidity’ and ‘What happens if session liquidity goes negative’. I have written about it here. I repeat myself below:
What is TDXP’s session liquidity?
To understand what TDXP’s session liquidity is, we need to understand what the insurance pool is.
The insurance pool is a large pool of BSV. The insurance pool currently contains 10,624.21 BSV (valued at $1,910,666):
An insurance pool is necessary for trading sessions where gains of trades exceed losses. In these circumstances, losses of trades cannot completely offset gains. Liquidity needs to come in from the side-lines to ensure winning traders get their gains paid out.
As I have already stated, trades fall into 8 hour trading sessions. In the screenshot above, the current trading session is set to close in 1hr 43min. When the trading session closes, the gains of all realised winning positions are paid out in full. This is provided there is enough session liquidity.
Let’s look at that screenshot again:
Session liquidity handles paying out trades at the end of each 8 hour trading session. The calculation for session liquidity at any instant is:
[(0.97 * session losses) - session gains + (insurance pool * 0.33%)]
Looking at the screenshot above. The trading session would have started with $6,305.20 of liquidity ($1,910,666 * 0.33%). Session liquidity is now $2,610. That means, gains in this particular session must currently exceed 97% of losses by $3,695.20 (6,305.2 - 2,610).
Why 97% of losses in the formula above? This is because 3% of all realized losses are sent daily to the insurance pool’s contributors as interest. Interest payments are the incentive to fund the insurance pool. (more on providing liquidity further down)
What if session liquidity goes negative?
When there are many winners and few losers, session liquidity can go negative.
If a trading session closes with negative session liquidity, 'socialised profit deduction' occurs. Realised gains are proportionally reduced such that session liquidity is zero. The reduced profits are then paid out.
Liquidity crunches such as I’ve described are the reason that gains are not paid out immediately. Realised gains of trades are always held until the end of a trading session. This is protection in case a socialised profit deduction needs to occur.
When socialised profit deduction occurs, profit that is withheld stakes into the 28th funding round of the insurance pool. This allows for profit recovery. After the first 27 rounds are repaid, you begin to receive your proportional share of 3% of trading losses. This continues until your deducted profit is repaid, along with 28% interest.
In summary
If you’re bullish on BSV (and you like trading), BSV-backed trading on TDXP makes a lot of sense. BSV is the settlement asset. You are always exposed to BSV upside. You capture every BSV gain by default.
Simply beware of trading on the side of the majority. Understand that the current pool of TDXP traders are BSV-biased. Understand that your profits can be capped in circumstances where TDXP’s session liquidity is drained.
Socialised profit deduction has occurred on TDXP in the past. This usually happens when the BSV price pumps. TDXP’s insurance pool is still relatively small and in the bootstrapping stage. Liquidity crunches will become less of an issue as the insurance pool continues to grow. Read my full analysis on the matter here.
Other than that, enjoy trading.
This article is not financial advice. Get off my back.
DeFi - Automated Market Making
I need to eat some humble pie. I was wrong with my initial assessment of DeFi.
My brain exploded the other day. I love it when that happens.
It’s running a new simulation. It has to when parameters are updated.
My brain’s not exactly snapping my neck back with incredible torque. It’s chugging away like the little engine that could. It’s getting the job done, bro!
First, I need to eat some humble pie. I was wrong with my initial assessment of DeFi.
I chose to ignore innovations that were inconsistent with my worldview.
My initial assessment of DeFi went something like:
CSW says all DeFi is illegal and he will sue DeFi
I think CSW is really clever because he invented bitcoin. The man loves to sue, let the man sue
Kurt wrote an article about DeFi. On a light skim read it appeared that DeFi was a scam (second pass, I can see that I read what I wanted to read…)
I like Kurt because he’s a family man who’s good at Jiu-Jitsu
Yeah, yeah, I was lazy. I have since deep-dived into DeFi and found at least one really cool thing: Automated Market Making (AMM). In its basic form, look at Uniswap. For the improved concept, look at Balancer. Ignore governance tokens.
I won’t explain how AMMs work in this post. I’ll save that for when TokenSwap launches. Soon.
CSW has told you there’s no such thing as a ‘decentralised exchange’. I would hesitate to dismiss ‘decentralised exchanges’ given CSW’s views.
This is not about decentralisation. This is not about censorship resistance. This is about automation, efficiency and low overheads. This is about making markets. This is about zero friction price discovery for a token universe.
AMMs could help form the price discovery backbone of the real-time economy. Jack makes a great case for tokens here. I find myself in agreement. Why shouldn’t there be a liquid market for ShuaCoin?
Here’s a prerequisite for loving AMMs. You have to work with the assumption that full Ethereum-style smart contract autonomy is possible on BSV. No third party, just a UI overlay. Token exchange can become a protocol, not remain a service. I like Dean Little’s take on protocols over walled gardens here.
Automated market making appears to be possible on BSV. sCrypt has demonstrated efficient, stateful smart contracting using nChain’s OP_PUSH_TX innovation. Using these building blocks, smart contracts of any complexity should be possible.
The Volt Conglomerate (my term) seems to be going all-in on stateful smart contracting. The Volt Conglomerate includes:
Gateway wallet
Bitcoin Token Protocol (BTP)
Custom sCrypt UTXO token protocol
Wrap other cryptos/tokens on BSV
Uniswap-like automated market making. Some code
Orderbook-style exchange
Frankly, the Volt Conglomerate seem pissed that they had to build all the foundational DeFi protocols and applications on BSV themselves! Fair enough! They’re excited to get their products out the door. They think they’ve stumbled across something substantial.
Here’s a possible scenario. The Volt Conglomerate copy/pastes DeFi’s crown jewel on BSV. It works. No compromises. Remember - DeFi has completely stalled out on Ethereum due to high fees.
What do you do if you’re a DeFi believer? Do you migrate? Or do you ignore innovations that are inconsistent with your worldview?
I think you migrate. Your code is open source. The logic can be replicated on bitcoin architecture. If you don’t migrate, some punter copy/pastes.
Does that mean we might see DeFi craziness on BSV? For good or for bad, I think that’s more likely than not.
TDXP - Antifragile Liquidity
TDXP’s Liquidity Pool is a fascinating, antifragile design.
This post assumes you have read the ‘Complete TDXP Explainer’. If that’s not the case, click here.
Additionally, this post is outdated. The most up to date version is here.
In the post, I write:
“you might come to the understanding that the insurance pool will be self-balancing. Contributions to the pool will stabilise around the implied interest rate. This is a fascinating, antifragile design and deserves its own post. Another day.”
The day has come! I have done my best to put together a financial model for TDXP’s insurance pool. I have done my best to use clear reasoning.
My motivations are selfish:
I want to understand how the insurance pool will grow
I want to understand the return profile
I want to understand the rational capital response to the return profile
I want to understand how much trading volume the insurance pool can support in the future
You don’t like numbers. You can’t bring yourself to look at spreadsheets. I understand. I have a summary for you. Right here:
The insurance pool will grow rapidly, predictably, in perpetuity
The insurance pool will be able to support large trading volume
Contributions to the insurance pool will exist in equilibrium with the implied annuity pay-out rate
BSV price increases will multiply the insurance pool’s liquidity
If you want more - spreadsheets follow.
The model’s inputs
Key inputs drive the insurance pool model:
Trading sessions in a day is 3
Insurance pool commitment to session liquidity is 0.33%
The percentage of the insurance pool that covers excess realized profits in trading sessions
Session gains as a percent of losses is 90.90%
The average volume of gains realized given an average volume of losses realized.
The model uses TDXP actuals as the justification for 90.90%
Interest as a percent share of losses is 3%
Contributors to the insurance pool receive 3% of all realized losses
Session losses growth rate is 0.2%
Realized losses of each trading session will be 0.2% larger than the one preceding it
0.2% growth per trading session implies 3,700 active users 12 months from now. 0.2% growth per trading session implies 30,000 active users 24 months from now
TDXP currently has 418 active users
Session losses maximum is 1,000 BSV
A maximum of 1,000 BSV per trading session implies 30,000 active users (at a BSV price of $180)
Each active user generates 3 BSV in losses a month (TDXP actuals)
1,000 BSV (30,000 active users) is a conservative, arbitrary ceiling. I wanted to see what the model would spit out using conservative inputs
Funding rounds global interest rate is 158.99%
The interest payable on insurance pool contributions up to 37,800 BSV (table below):
Back to the inputs (we’re almost done):
Round 28 interest rate is 28%
Contributions to the insurance pool past 37,800 BSV yield this rate
The equilibrium implied annuity pay-out rate is 32%
The next section addresses this
Annuity pay-out rate?
Contributions to, and payments from the insurance pool are analogous to annuities.
An annuity is a financial product where an investor exchanges a lump sum for an income stream.
Insurance companies offer annuities to retirees. Retirees often wish to convert a pool of wealth into consistent payments.
The BSV insurance pool that TDXP plugs into is the same concept. The insurance pool commits to paying income every day in exchange for a lump sum of BSV (principal).
The annuity pay-out rate is the percent of your principal you receive back every year.
Here is an example of an annuity that has a pay-out rate of 32%:
You contribute 100 BSV principal to the insurance pool. You receive 32 BSV back each year until your principal and interest are extinguished.
32% is a best guess for an equilibrium pay-out rate. Unlimited BSV capital is deemed willing to invest at this rate of return.
The annuity lifetime is derived from the annuity pay-out rate. Consider an investor that wishes to commit 100 BSV into round 28 of the insurance pool:
The investor receives payments until their principal of 100 BSV is returned along with 28% interest (128 BSV total). If the annuity pay-out rate is 32%, the investor will receive 32 BSV each year for 4 years (128 BSV total):
You’re not used to evaluating investments in annuity terms. You’re used to evaluating investments by annual interest rate.
An annuity pay-out rate of 32% for 4 years implies an interest rate of 7% per annum.
Think of it like a term deposit. 100 BSV principal is deposited in a term deposit and receives 7 BSV each year for 4 years (28 BSV total interest). At the end of 4 years the principal of 100 BSV can be withdrawn.
You will come to find that the annuity pay-out rate of 32% is a key assumption in the model.
Is 32% conservative? Yes. Investment demand would pounce on an investment that yields 7% per annum (payable in BSV).
Insurance pool & liquidity
The yellow cells represent manual inputs. As of 1 February 2021, the insurance pool was 11,244.7 BSV in size.
10,886.4 BSV represents contributions by investors requiring interest and principal payments.
358.3 BSV is the part of the insurance pool that is ‘unowned’. There are no principal or interest obligations associated with this balance.
Of the 358.3 BSV that is ‘unowned’, 96 BSV is the result of early contribution withdrawals suffering the 30% penalty. Remember that early withdrawal also sacrifices any interest payments received.
The remaining 262.3 BSV of the 358.3 BSV 'unowned' are surplus trading sessions that have accumulated in the pool:
Session surplus = [(realized session losses * 0.97) - realized session gains]
The insurance pool allocates 0.33% to each trading session as liquidity:
Session liquidity = [0.33% * 10,886.4]
Interest & implied annuities
In each 8 hour trading session, traders can lock in gains or losses by closing positions.
Session loss assumptions drive the model. The model uses a starting value of 13.5 BSV session losses. This is the average session loss generated last month by 418 active users on TDXP.
Session losses grow every session by 0.2% to reflect the presumed growth of TDXP’s active user base.
Session interest payments are 3% of session losses.
Session gains are 90.90% of session losses.
Every session surplus accumulates in the insurance pool and is ‘unowned’. A session surplus does not have a principal or interest obligation:
Session surplus = [session loss - session interest payment - session gain]
The implied annuity pay-out rate is:
[(session interest payment * trading sessions in a day * 365) / (owned portion of the liquidity pool)]
The first row in the above screenshot is calculated as:
[(0.41 * 3 * 365) / 10,886.4] = 4.07%
An annuity pay-out rate of 4.07% implies that 100 BSV investment in the insurance pool would receive 4.07 BSV each year. Payments continue to be sent until principal and interest is repaid.
Principal, interest & unowned movements
Currently there are 10,886.4 BSV of ‘owned’ contributions in the insurance pool (principal). The insurance pool has an obligation to repay 10,886.4 BSV, along with interest.
The interest payable on 10,886.4 BSV of principal is 17,307.82. This is 158.99%:
[17,307.82 / 10,886.40] = 158.99%
Recall that one of the inputs in the model is: ‘funding rounds global interest rate’. 158.99% is the average interest rate payable on funding rounds 1 through 27 (up to 37,800 BSV committed). Beyond 37,800 BSV committed, interest is payable at 28%.
Unowned movements to the insurance pool is a field in the above screenshot. This is the amount added to the ‘unowned’ part of the insurance pool as a result of each session surplus.
When do contributions start flowing in?
The model predicts that after 1,033 trading sessions (344 days), session losses will grow from 13.5 BSV to 106.13 BSV. Session losses of 106.13 BSV implies 3,200 active TDXP users.
106.13 BSV in session losses generates 3.18 BSV in interest payments. This implies an annuity pay-out rate of 32.02%:
[(3.18 * 3 * 365) / 10,886.4 ] = 32.02%
The model deems an implied annuity pay-out rate of 32% as an acceptable return. BSV investment enters and holds the annuity pay-out rate at the equilibrium value of 32%. During session 1,033, there is a contribution of 24.37 BSV.
Contributions increase the ‘owned’ part of the insurance pool by the same amount.
When do contributions stop?
The model estimates that in approximately 2 years, session losses will reach 1,000 BSV. Recall that 1,000 BSV is hard coded as the max global appetite for BSV CFD trading.
1,000 BSV in session losses implies 30,000 active TDXP users that generate 30 BSV in session interest payments.
Yes, 1,000 BSV is arbitrary. Yes, 1,000 BSV is conservative. If you want to input your own variable I have linked the model at the bottom of this post.
Session losses have stopped growing. The associated interest payments do not imply an annuity pay-out rate more than 32%. Insurance pool contributions stop.
What if I extrapolate forward 10 years?
If the model continues as programmed for 10 years, it yields the below:
The owned portion of the insurance pool holds steady at 102,822 BSV
The unowned portion of the insurance pool grows in perpetuity, hitting 738,710 BSV
Session liquidity is 2,776 BSV
Session losses hold steady at 1,000 BSV
Associated interest is 30 BSV
Session gains continue to represent 90.90% of session losses
Associated surplus is 61 BSV (which grows the unowned portion of the insurance pool)
The amounts in terms of USD are given alongside. Session liquidity of $471,998 is pretty decent.
We expect the BSV price to be higher in 10 years right? Here’s what it looks like if you plug $10,000 per BSV into the table:
The insurance pool will grow in perpetuity?
That appears to be the case, yes.
Recall that the UK non-profit BTP Foundation will manage the insurance pool.
The insurance pool will grow in perpetuity. The BTP Foundation might have to become an expert in charitable giving.
The below graph shows the growth of the insurance pool under the model’s assumptions:
The graph visualises 10 years:
At the end of year 1, an implied annuity pay-out rate of 32% is achieved. This attracts additional BSV contributions
At the end of year 2, session losses reach their pre-programmed maximum. This halts additional BSV contributions
Around year 4, the entire interest burden is paid off. The slope of the size of the insurance pool increases
The insurance pool grows in perpetuity as each session surplus accumulates in the pool
My investment in the insurance pool
Will insurance pool contributions wait for an annuity pay-out rate of 32%? No.
It’s clear that investors have already been enticed to contribute to the pool to the tune of 10,886.4 BSV. Myself included.
Contributions will continue rapidly until funding rounds 1 through 27 are fully subscribed. This will be the case as rounds 1 through 27 offer higher rates of return:
My dashboard below will help illustrate my point that rounds 1 through 27 will fill rapidly:
I have contributed 28 BSV to the insurance pool. Below is a breakdown of my expectations:
I expect the annuity pay-out rate to find equilibrium at the 32% level (TDXP needs to continue growing). At this rate, 8.96 BSV will be returned to me each year.
My interest rate for being an early contributor is 290.54%. I will receive 81.35 BSV in interest payments over time. Considering the principal amount of 28 BSV, in total I will receive 109.35 BSV in payments.
The lifetime of my payments will be 12.2 years:
[109.35 / 8.96] = 12.2
The equivalent annual interest rate is 23.81% for each of these 12.2 years:
[290.54% / 12.2] = 23.81%
In summary, my thought process went something like this:
I’m holding BSV anyway in expectation of price appreciation
The BSV I’m holding is not generating any income
Contributing to the insurance pool offers income
Insurance pool income is denominated in BSV, so I won’t miss out on price appreciation
23.81% for 12.2 years is pretty attractive (even when adjusting for risk)
If I don’t feel positive about my contribution after 12 months I can withdraw my contribution in full (less the interest payments I have already received)
TDXP only needs 12,000 active users to support a contributions pool of 37,800 BSV at a 32% annuity pay-out rate (ensuring my returns above)
I think TDXP can capture at least 12,000 active users. Most likely within the next 24 months
I’m not forgetting the risks, nor should you:
The insurance pool could be hacked/stolen
The insurance pool could be drained (traders consistently win)
Depletion of the insurance pool caps out at 0.33% every 8 hours. It would take 300 consecutive losing trading sessions (100 days) to drain an insurance pool by 65%
Bid/ask spread, holding fees, leverage and market theory are all forces that ensure more traders lose than win
TDXP is not successful as a business and cannot attract traders
There would be no interest payments in this case
Liquidity cannot be withdrawn from the insurance pool for legal reasons
What if I contributed today?
If you tried to contribute 1 BSV today, you would be offered 226% interest:
I have broken this down in the below table:
A similar investment analogy is to look at the above as a term deposit.
Given the above assumptions, a 1 BSV commitment to the insurance pool today is equal to 1 BSV in a term deposit. Such a term deposit would pay 0.2218 BSV each year for 10.2 years as interest. At the end of the 10.2 years you have access to your 1 BSV principal.
No, I am not giving you investment advice. There are very obvious risks. Owning crypto is risky enough. Doubling down on crypto is not exactly clever.
Do your own thing, I just read the news.
Is TDXP making any money?
You recall that TDXP is a separate entity to the Bitcoin Trading Protocol (BTP). The BTP manages the insurance pool, not TDXP.
You also recall that TDXP doesn’t make money from the insurance pool. TDXP only makes money from holding fees.
TDXP’s monthly revenue stream is:
[Average open interest for the month * monthly holding fee rate]
* open interest is the total value (in BSV) of all open trading positions
In 24 months, if TDXP has 30,000 users and each user’s average open interest is 9 BSV (TDXP actuals), the total average open interest will be 270,000 BSV.
The average monthly holding fee is 1.28% (TDXP actuals).
TDXP monthly revenue (BSV) = [270,000 * 1.28%] = 3,456
TDXP monthly revenue (USD) = [3,456 * 180] = $622,080
TDXP won’t be going hungry.
Can I play with the liquidity model?
You can access the model here.
TDXP - Complete Explainer
The most comprehensive TDXP explainer on the market!
This post is outdated, the most up to date version is here.
TDXP is a market making CFD brokerage that uses BSV as its settlement asset.
What is a CFD?
A contract for difference (CFD) is a very popular type of financial derivative. A CFD is a contract between a buyer and a seller. The buyer agrees to pay the seller the difference in an asset's price. The difference is the change in asset price between opening and closing the contract.
CFDs are the most popular form of derivative among retail traders. CFDs allow for a trader:
To bet on price moves - up or down
To use leverage (borrow money to hold a larger position size)
To trade a huge range of markets
Additionally, CFDs are cheap to trade and do not have a termination date (like a swap).
What is a CFD brokerage?
A CFD brokerage is a middleman that allows buyers and sellers to speculate on the price of assets using CFDs.
Market making?
Many CFD brokers, including TDXP, are market makers. This means they are the counterparty for all trades on their platform.
The alternative is Direct Market Access (DMA) CFD brokers. When you trade through a DMA CFD broker, your trade executes on real-world markets (buying or selling real assets).
What is margin (collateral)?
Margin is the amount required by brokers to collateralize a position. If you want to take a risk and speculate on the price movement of an asset, you need to cough up some funds.
Your margin can be the same amount as the position you are opening. An example of this would be opening a 0.1 BSV long (buy) position on BSV/USD with 1x leverage. The broker holds 0.1 BSV as margin:
Compare this with using 10x leverage. The margin amount you need in this case is only 10% of your total position size:
How does a trade work? (no leverage)
Let me walk you through what happens when you trade on TDXP.
Clicking ‘market buy’ on the below screen goes long (buy) 0.1 BSV on the BSV/USD pair (at 1x leverage). This requires a margin of 0.1 BSV:
Next, you’re asked to confirm and swipe Money Button to pay the margin amount of 0.1 BSV to TDXP:
Swiping the button sends 0.1 BSV from your Money Button wallet to TDXP. This secures your BSV/USD position (note the 0.000005 BSV mining fee):
The actual transaction contains an OP_RETURN output with a data payload that describes the transaction with the tdxp.app flag:
The summary of the live position is below:
The summary of the closed position is below:
When the position is closed, the margin balance (less any loss) is returned to your Money Button wallet:
0.100005 BSV left the wallet and opened a long position on the BSV/USD pair. The BSV/USD long position was closed at a loss and the margin amount is returned to your wallet. Summarised below:
How does a trade work? (with leverage)
Using 10x leverage, the margin balance that is required to collateralize a 0.1 BSV position is 0.01 BSV (10% of the position size):
0.01 BSV (plus miner fee) is paid to TDXP from your Money Button wallet:
Here is the summary of the trade which was opened and manually closed moments later. Notice the ‘Liquidation Price’. This is the price at which the position would be closed automatically by TDXP. This is the price at which 80% of the committed margin of 0.01 BSV would have been eroded.
After closing the trade at a loss, the margin balance (less losses) is returned to your Money Button wallet:
The summary of all these movements is below:
BSV is the settlement asset?
You’re not used to this right? You’re used to a trading experience where USD (or similar) is the settlement asset.
Bitcoin is the unit of account on TDXP. Bitcoin secures positions and is the asset used to settle profits and losses. Every user on TDXP is profit seeking in bitcoin.
Could TDXP offer the same trading experience, allowing traders to profit-seek in USDC (or similar token)? Yes. I expect to see the emergence of such markets once BSV’s token ecosystem matures.
How does a trade work? (non BSV pair)
We’re profit seeking in BSV right? What does that mean when I want to speculate on an asset pair that doesn’t include BSV?
Take the BTC/USD pair for example. I predict the BTC/USD price is going to go down. I go short (sell) the BTC/USD pair with a position size of 2 BSV. I use 20x leverage, so the amount of margin required is 0.1 BSV:
Shortly after opening the trade, the market moves in my favour. The price decreases from $34,370.10 to 34,349.10. This is a 1.22% profit:
[(34,370.10 / 34,349.10) - 1] * 20 leverage = 0.0122
My profit is defined in % terms looking at the asset pair I traded. I made a 1.22% profit on my margin commitment of 0.1 BSV. As the settlement asset is BSV, my profit is 0.00122 BSV:
[0.1 * 0.0122] = 0.00122
This is summarised below:
There is one key difference between closing out a profitable trade vs closing out a losing trade.
When I make a loss, I get my margin returned to me immediately (less losses and holding fees).
When I make a profit, I get my margin returned to me immediately (less holding fees). I then have to wait until the end of the 8 hour trading session to receive my profit.
In the screenshot above, note that my profit payment of 0.001221 BSV is due for payment in 4hr 52min. This has to do with the rules of trading sessions and the liquidity pool (more further down).
Where are the prices coming from?
TDXP has price feeds from real-world markets. TDXP is receiving a feed of the mid-price from real-world markets. The mid-price is the midpoint between the lowest ask price and the highest bid price.
In the case of the BTC/USD pair below, the mid-price is coming from the BTC/USDT market on Huobi. TDXP takes this mid-price and derives a synthetic bid/ask (highest buy/lowest sell) spread. Shown below for the BTC/USD pair:
The synthetic highest buy is $34,121.20. If you want to go long (buy) this pair, this is the rate at which your trade executes. If you want to go short (sell) this pair, the highest sell is $34,093.10.
The bid/ask (buy/sell) spread ensures that every position opened starts out at a loss. Note that TDXP makes no profit from price spread, instead session liquidity gets all the benefits of a price spread. (More on session liquidity and the BTP further down).
If you buy the above pair at the buy rate and then close at the sell rate, you will make a small loss. The degree of this loss is relative to the size of the spread.
What are holding fees?
TDXP charges holding fees on the size of a position, irrespective of whether you go long or short:
Holding fees are deducted from trading position every 8 hours, counted individually for every position. No holding fees are charged for trades that are opened and closed within the first 8 hours.
Have a look at the below BSV/USD short trade. The trade was open for 45 trading sessions (15 days):
TDXP made 0.000805 BSV in holding fees on this trade. The summary is below:
If I had used 10x leverage in the above trade, my position size would have been 1 BSV (10x bigger). Holding fees are charged on position size, so in this scenario my holding fees would have been 0.00805 BSV.
What is the maximum position size?
In the market data section for each asset listed on TDXP there is a ‘Max Amount’ field:
This is the maximum position (in BSV) each individual account on TDXP can take on this particular market. Remember, position size includes leverage.
Expect this number to increase as the insurance pool grows (more on this further down).
Who loses when I win? (and vice versa)
TDXP is the counterparty for all trades. If you win on a trade, TDXP pays you. If you lose on a trade, you pay TDXP.
In any given 8 hour trading session, some traders close out positions in profit, and others at a loss.
In the case of a losing trade, margin less losses and holding fees is returned. In the case of a winning trade, margin less holding fees is returned. Winning traders must then wait until the end of the trading session for their profits to arrive.
TDXP nets session wins out against session losses and settles the difference. When gains of traders exceed losses, TDXP’s liquidity pool covers the shortfall. When losses of traders exceed gains, the liquidity pool pockets the difference. More on session liquidity in the next section.
What is session liquidity?
To understand what session liquidity is, we need to understand what the insurance pool is.
The insurance pool is a large pool of BSV. The insurance pool currently contains 10,624.21 BSV (valued at $1,910,666):
An insurance pool is necessary for trading sessions where gains of trades exceed losses. In these circumstances, losses of trades cannot completely offset gains. Liquidity needs to come in from the side-lines to ensure winning traders get their gains paid out.
As I have already stated, trades fall into 8 hour trading sessions. In the screenshot above, the current trading session is set to close in 1hr 43min. When the trading session closes, the gains of all realised winning positions are paid out in full. This is provided there is enough session liquidity.
Let’s look at that screenshot again:
Session liquidity handles paying out trades at the end of each 8 hour trading session. The calculation for session liquidity at any instant is:
[(0.97 * session losses) - session gains + (insurance pool * 0.33%)]
Looking at the screenshot above. The trading session would have started with $6,305.20 of liquidity ($1,910,666 * 0.33%). Session liquidity is now $2,610. That means, gains in this particular session must currently exceed 97% of losses by $3,695.20 (6,305.2 - 2,610).
Why 97% of losses in the formula above? This is because 3% of all realized losses are sent daily to the insurance pool’s contributors as interest. Interest payments are the incentive to fund the insurance pool. (more on providing liquidity further down)
What if session liquidity goes negative?
When there are many winners and few losers, session liquidity can go negative.
If a trading session closes with negative session liquidity, 'socialised profit deduction' occurs. Realised gains are proportionally reduced such that session liquidity is zero. The reduced profits are then paid out.
Liquidity crunches such as I’ve described are the reason that gains are not paid out immediately. Realised gains of trades are always held until the end of a trading session. This is protection in case a socialised profit deduction needs to occur.
When socialised profit deduction occurs, profit that is withheld stakes into the 28th funding round of the insurance pool. This allows for profit recovery. After the first 27 rounds are repaid, you begin to receive your proportional share of 3% of trading losses. This continues until your deducted profit is repaid, along with 28% interest. More on funding rounds in the next section.
Providing liquidity to the insurance pool
You might decide that 3% of realised losses from all trading activity on TDXP is appealing.
You'll be happy to know, anyone can contribute to the insurance pool. You will start receiving a proportional share of 3% of losses. My dashboard is below:
I contributed 28 BSV to the insurance pool (I was KYC’d - any amount over 17 BSV requires KYC). 5 days later, the sum total of my interest payments is 0.03021 BSV. This is a 7.9% annualised return. Not bad.
I will keep receiving payments from TDXP until my principal amount of 28 BSV is returned along with 291% interest (81.35 BSV). That is the same as saying I will receive BSV payments every day until I have received 109.35 BSV. Once I have received 109.35 BSV, my payments will stop.
Further details are below:
Notice in the above screenshot, my share of the insurance pool is 0.27%. I receive 0.27% of the total payments.
TDXP designed the funding of the insurance pool as 28 rounds. For each round there is an individual limit and a total limit. The individual limits attempt to allow many individual investors to fund earlier rounds.
Below are the details of the funding rounds as they stand today (30/1/21):
When rounds 1 through 27 are full, further insurance pool contributions go in round 28. Round 28 pays out 28% interest and has no size limit.
There are a few rules when it comes to contributing BSV to the insurance pool:
Contributions are locked for withdrawal for the first 30 days
After 30 days, you can withdraw your contribution. To do so, there is a 30% penalty, and the amount returned is less any interest payments already received
After 365 days, you can withdraw your contribution with no penalty. This is less any interest payments already received
After hearing all this, are you asking similar questions to me?
I mention ‘BTP’ in the above (more on this further down).
Think through the implications of the above screenshot further. You might come to the understanding that this ‘liquidity blob’ will be a self balancing force. Contributions to the pool will stabilise around the implied interest rate.
This is a fascinating, antifragile design and deserves its own post.
What are the risks of contributing to the insurance pool?
Contributing to the insurance pool sounds like a good deal for BSV holders right? You earn income on the amount contributed. If you want out, you can get all your BSV back after 365 days (less the interest payments you received).
Here are the risks to consider:
The insurance pool could be hacked/stolen
The insurance pool could be drained (traders consistently win)
Depletion of the insurance pool caps out at 0.33% every 8 hours. It would take 300 consecutive losing trading sessions (100 days) to drain an insurance pool by 65%
Bid/ask spread, holding fees, leverage and market theory are all forces that ensure more traders lose than win
TDXP is not successful as a business and cannot attract traders
There would be no interest payments in this case
Liquidity cannot be withdrawn from the insurance pool for legal reasons
What is the market theory that supports TDXP’s design?
The underlying market theory is pretty simple. Most traders lose:
Bid/ask spreads and holding fees immediately put any position opened by a trader at a loss. Throw human emotion and the use of leverage into the mix and you have a system where more trades will be losers.
A slight probability in the house’s favour is enough for the house to profit in the long run.
What is the Bitcoin Trading Protocol (BTP)
For simplicity of explanation I have described TDXP and the insurance/liquidity pool as one entity.
TDXP the trading application and the Bitcoin Trading Protocol (BTP) are two separate entities:
The activities of TDXP the trading application are executed through Saint Vincent and Grenadine entity where there is no need for licensing of trading/CFD operations. This jurisdiction is used by a number of bigger and longer established competitors in the exchange business (e.g. PrimeXBT or SimpleFX). Going forward, TDXP intends to expand the geography of services and set up structures in specific jurisdictions, allowing clients from additional countries to use TDXP without breaching existing regulations.
TDXP’s only source of revenue is charging holding fees. TDXP is simply a front-end plugged into the BTP back-end.
There are a number of intentions for the BTP stated by TDXP’s founders. The BTP is desired to be:
Independent
Unowned
Pre-programmed and autonomous
Transparent
There is an existing entity that will oversee the future function of Bitcoin Trading Protocol. The entity is the UK non-profit, ‘BTP Foundation’.
The BTP will be responsible for:
Price feeds and associated bid/ask spreads
Holding the margin positions of trades
Allocating liquidity to 8 hour trading sessions
Settling closed trades with traders
Carrying out socialised profit deductions during liquidity crunches
Paying 3% of losing trades proportionally to liquidity providers, at the appropriate interest rates
The BTP is not responsible for:
Setting holding fees
Brokerage services
TDXP and other companies plugging into the protocol in the future will compete to offer traders the best user experience (while complying with regulations)
An ‘unowned’ insurance/liquidity pool eh? This is a very DeFi concept. I think the implications are wildly interesting. Once again, a topic for a separate post. Another day.
What else is cool about the BTP?
The insurance pool and associated session liquidity are completely public, transparent and auditable
Anyone can contribute funds to the insurance pool
Price feeds are completely public, transparent and auditable
All trades are completely public, transparent and auditable
Brokerages don’t profit from you losing, brokers only profit from charging holding fees
Brokers never hold funds
Opening positions with margin is instant
Return of margin is instant
Settlement of profits occurs in 8 hours or less
Any broker can plug into the BTP and compete for users by offering the best user experience and holding fees
What is TDXP’s value proposition?
If you asked TDXP, they’d say something like:
Retail traders get rekt on real asset markets by institutional money
Retail traders are better served trading on derivatives markets, like TDXP. Trades are not entered on real asset market order books and do not form targets for big money to wipe out
TDXP does not profit when traders lose, unlike traditional market makers
The BTP protocol ensures unbiased market making
TDXP is likely to be a very low cost CFD brokerage. They don’t have to secure a source of liquidity (they plug into BTP). They don’t have to manage client balances or plug into the existing financial system.
Lower costs will manifest as cheaper trading for TDXP’s users
Effortless sign in with Money Button, RelayX or DotWallet (HandCash to come next month)
What does TDXP stand for?
Truly Distributed Exchange Protocol.
Is this post over yet?
Yeah, one more thought:
The day bitcoin could carry value - the game was over. With a little zero-latency derivative magic, bitcoin can now carry any value.
BSV has become much more powerful.
Take Profit!
I invested in Maidsafe’s crowd-sale in early 2014. Between then and now I have sold over 70% of my holdings.
I invested in Maidsafe's crowd-sale in early 2014. Between then and now I have sold over 70% of my holdings.
Why have I sold over 70% of my holdings?
Well, partly for the gains. Prices have always been at least 8x more than purchase price. But, primarily I have sold for these reasons:
Economics
I have only had time to expand upon my thoughts in the first bullet (follow link). If I get time in the future I will address the following two points in separate posts and link accordingly.
See this post where I outline some of my thoughts on the safenetforum.
GET requests are proposed to be free, despite the fact that a node incurs cost when responding to GETs.
10% of all existing safecoins are proposed to be allocated by the network to developers who create useful applications.
5% of all existing safecoins are proposed to be allocated by the Maidsafe foundation to developers who work on the core software.
Latency
Due to the outrageous number of hops needed to traverse the XOR address space when requesting and returning data, network latency will likely always be inferior to competing systems.
Yes, I understand caching plays a part here, at least for frequently requested chunks of data. What about infrequently requested chunks?
Number of hops and sybil resistance
Have a read of 'On Bitcoin and Red Balloons'
You didn't read it did you? Lazy! Here is the main take-away:
This suggests that greater than three hops cannot be secured.
Yes, I understand that PARSEC along with disjoint sections (sharding) and node ageing are the proposed solutions to this. I am not yet convinced these measures will be adequate.
Law
The Safe Network is proposed to be fully anonymous. As a node operator there will be no way to know if you are storing and/or delivering illegal content on behalf of other users.
Do you think governments (and society) will tolerate this?
Governments could shut this down if they wanted to.
The first thing you should ask yourself is: how do you propose to get value in and out of the system? If running a node is deemed illegal and all on and off ramps have been killed, how do the economic incentives come into play?
Network updates & protocol governance
Over the years, I've had the displeasure of watching BTC be slowly crippled by the core developers. See video.
Not a popular opinion, but I believe BTC is way off path, severely limited and ultimately destined for complete failure.
Its limiting alterations wouldn't have come to pass had there been resistance to arbitrarily tweaks of the protocol, and if there had been no realistic avenue to push these changes.
In order to remove the power to control the direction of a protocol, there needs to be a commitment that the protocol remains untouched.
Maidsafe the company is the gatekeeper of the Safe Network protocol, and will remain so into the future. They represent a single point of failure. How much power they will voluntarily relinquish in the future remains to be seen.
Socialist sentiment
It's a shame to see that the proponents of the Safe Network are so philosophically aligned with the BTC mentality.
By this I mean having immense distrust in corporations and the notion that every user should run a node (or be able to).
I've seen discussions in the forum advocating penalizing nodes that are earning above the average farm rate (responding to GET requests the fastest). Why should we want to penalize efficiency and competition?
Recent funding issues
David Irvine's recent post on office closures, redundancies and funding issues.
Maidsafe have run out of money (they were holding their funds in crypto?!). They will keep operating with a much reduced work force.
Well, shit happens I guess. I'm happy they are able to refocus on engineering and have been able to discard superfluous spend such as marketing and communication with exchanges.
What actually concerns me is the 'MaidSafeCoin Loan Scheme'
Maidsafe are doubling down and taking loans from the community (in their own token, which itself was a fundraising ICO in 2014).
Maidsafe comfortably raised the requested loan amount of 10,000,000 MaidSafeCoins from the community within 24 hours.
What you've just seen is a transfer of 10,000,000 MaidSafeCoins from die-hard believers (hodlers) to an entity that is committed to paying salaries in fiat.
Looks like a few more coins will be chewing into those buy walls chaps!
edit: perhaps not, MAID has since been delisted from Poloniex, Bittrex and Chainrift.
On top of this, the scheme looks rushed, informal and quite possibly illegal. Combine this with the heating up global crack down on ICOs and the fact that Maidsafe trail blazed the ICO space and things start to look a little sketchy.
David, please be careful out there. This is all fun and games for the rest of us, but you could be setting yourself up to have some legal issues. I hope you have given it thought.
Final thoughts
I have reduced my position considerably and I will continue to reduce my position.
I will hold a 'Hail Mary' position until Fleming is released, upon which time I will reassess.
Stay Safe out there.
Concerning Economics
My thinking in regard to the Safe Network’s proposed economics.
The following is a (partially edited) copy of a post I made on safenetforum.org in February 2018.
I want to have a copy to point to on this blog as it accurately outlines my thinking in regard to the Safe Network's proposed economics.
TL;DR
Any network that proposes to use economic incentives to store/deliver/secure data is an economic system first and a technical implementation second.
That means you better be sure you got the incentives right before you start building.
I'm not convinced Maidsafe's Safe Network has a clear, defined path moving forward when it comes to incentives. Read on to get my full thoughts.
The post
I’m keen to get some safecoin economics thoughts down on a page. Hopefully this encourages plenty of discussion.
Key assumptions
As soon as a node reaches sufficient age it is trusted with storing data. The amount of data this node stores will be approximately the same as any other node (of sufficient age) on the network.
We don't want storage per node to be too high.
Makes churn events and node relocation more burdensome.
More likely to result in some users having below the minimum storage requirements to run a node.
Less nodes are needed to store the network’s data, total node count is lower, less distribution.
We don't want storage per node to be too low.
More latency due to message traversal of larger XOR address space.
The only way to earn income is to fulfil a GET request.
The only ways for a node operator to earn more income are (in order of impact):
Increase the amount of data the node operator is storing for the network by bringing additional nodes online.
Be faster at responding to GET requests (fulfil GET request before other nodes holding the same chunks can).
Be close to the requester geographically.
Improve hardware, software and infrastructure.
The reward for fulfilling a GET request is the chance to claim ownership of a network owned safecoin (1 unit – not a fraction of).
The process for storing data on the network is:
User pays safecoin (can be a fraction of) to the network. The network will likely consolidate fractional safecoin into full units making them available for nodes to farm (depending on how divisibility of safecoin is implemented).
User is credited with storage space that they can then use whenever they like.
What's the resource?
The network needs to be aware of whether there is an abundance or scarcity of resources. There needs to be an incentive structure that adjusts towards (what the network considers to be) optimal supply of resource.
A node stores the same amount of data as any other node on the network, irrespective of whether the operator has the willingness or capacity to supply additional storage. If an operator wants to expand their offering to the network, they need to bring additional nodes online.
As additional nodes come online, the average amount of data stored per node will reduce. The opposite is true for taking nodes offline. Given this relationship, when considering abundance or scarcity of resources, would we be better served using a metric such as ‘data stored per node’ as opposed to over/under supply of storage space? Hypothetically (and I know we don’t like magic numbers) what if the network adjusted rewards to target storage of 100gb per node?
How should nodes be rewarded?
Nodes should be rewarded in a manner that most efficiently encourages resource supply to be at its optimum. Currently it is assumed that a node’s income will be comprised of fresh safecoins (formerly network owned and drip fed to nodes in a manner dictated by ratcheting the farming rate) and recycled safecoins (users have paid these to the network in order to be credited with storage allowance, these safecoins have once again become fresh safecoins).
There needs to be as little lag or disconnect as possible between value paid to the network (users paying for storage) and value paid by the network (nodes responding to GET requests). We want to minimize disconnect so that the established price per unit of storage at any given moment in time is as reflective as possible of the supply and demand of resources at that moment in time.
Does ratcheting the farming rate (based on abundance/scarcity of resources) achieve this?
Why are we also ratcheting price per PUT?
What’s the point of having two separate economic levers to pull to attempt to direct the network towards optimal supply of resources? I don’t have the brainpower to run the current scenario, there are too many shifting platforms.
Why does the network need to have a horde of safecoins? Why that exact amount? What makes this network owned amount optimal at launch?
What’s wrong with living hand to mouth on a value in = value out basis? I guess the argument against not living hand to mouth boils down to the assumption that variability of safecoin rewards to nodes would be too high. Node response to changing user demand conditions would be too rapid and we’d just oscillate around and make everyone seasick. The argument is that we need a network owned pool of safecoins that can smooth out these fluctuations.
What is the mechanism for distributing this pool of network owned safecoins? It is proposed that as the network deviates from its optimal supply of resources, the farming rate will be adjusted resulting in network owned safecoin being farmed by nodes more or less quickly.
I’m not convinced. Two economic levers make me wary. I believe the only economic lever the network should have influence on is the price per PUT. If that’s the case, how do I propose we distribute the network owned pool of safecoin in order to smooth node income fluctuations and encourage persistence and reliability of these nodes?
Good question. I’m not sure.
But what if this network owned pool was distributed in a manner similar to bitcoin issuance (logarithmically over a long period of time)?
What if this pool of coins is drip fed to nodes in a manner that is completely independent of the network’s abundance or scarcity of resources? Average node minimum income would then be both reliable and quantifiable. Hand to mouth recycling of safecoin can then be layered on top of this base.
So:
Network owned safecoin with no previous owner -> unlocked (made available to farm) according to issuance schedule.
Network owned safecoin with a previous owner (recycled coin) -> made available to farm immediately.
An interesting aside. If the network simply functioned hand to mouth (with no safecoin pool issuance) then value in would equal value out (with very little time lag). The price per PUT that would be established in this scenario would be the true market price of supplying x amount of storage (keep in mind this scenario assumes no farming rate and hence little to no lag between expense to the user and income to the node).
The point I’m getting at is that any income (from issuance of network owned safecoin pool) to the node in addition to this earned recycled safecoin would have the direct result of reducing the price per PUT below the true cost of supplying x amount of storage, making SAFE as a storage option for the masses more competitive.
Purchase of storage
Another thing that needs consideration that I haven’t seen too much discussion on is how will purchase of storage work?
Currently I understand a user can purchase storage space with safecoin at the current price per PUT. This storage is credited to their account to be used when they see fit.
In this scenario, income is earned by the network but there is yet to be any expense imposed. I think we need to be really careful not to break the connect (that I’m hoping to see) between expense to the user and income to the node.
Is it possible for this credited storage to be blank chunks actually stored on the network behind the scenes that the user can then overwrite with their actual data?