So it appears that each time I try to register my username the cost of doing so goes up
A user sends some bitcoin to their wallet to register an address. Say they send 0.01 bitcoins. When they try to register an address, it turns out that because of miner fees, they actually need 0.0110 bitcoins. They send an additional 0.0010 bitcoins to their wallet and try registering a name again. Now it says, sorry, you have 0.0110 bitcoin but actually need 0.0120 bitcoins.
What’s happening here? Is this some kind of bad joke where Blockstack decides to tell you you need more Bitcoins than you have?
Unfortunately, it’s not a bad joke. The explanation comes from the way Bitcoin transaction fees work.
Let me explain.
A Bitcoin transaction is made up of 1 or more unspent transaction outputs, which are the original transactions that sent bitcoin to the address you’re trying to spend that have not yet been used. If you started with a new Bitcoin address and sent 1 Bitcoin to it in one transaction, there will be one unspent transaction output. If you started with a new Bitcoin address and sent 1 Bitcoin to it using two transactions of 0.5 Bitcoins each, there will be two unspent transaction inputs.
When you spend Bitcoin from the address, you are actually spending Bitcoin from one or more unspent transaction outputs available at the address. The more unspent transaction outputs in a transaction, the larger the transaction. The larger the transaction, the higher the fee you need to pay to get miners to process the Bitcoin transaction.
Each time you send more Bitcoin to your Blockstack wallet to increase the balance, you are adding an additional unspent transaction output. If the balance of the address is less than the amount of money you need to process the registration, you are also increasing with the number of unspent transactions the registration transactions will need.
In other words, each time you send more bitcoin to increase your balance, you’re also increasing the overall cost of the registration. It’s a vicious circle from it’s hard to escape if you’re trying to send no more bitcoin to your wallet than you absolutely need.
The solution is to send a lot more Bitcoin to your wallet than you think you’ll need. And then withdraw the remaining balance after the registration is processed.