If you are from the US and run a business that accepts bitcoin, it's getting harder and harder to avoid the IRS. These days it seems every merchant account that exists is doing some sort of KYC practice.
It doesn't seem to matter which payment processor you want to use, they all do some sort of KYC practice. This is true whether you want to use coinbase, bitpay or now even coinpayments.
What’s worse is bitpay also recently made an announcement to merchants upon logging in that even customers will now be required to go through a KYC process if they are making a large transaction - meaning not only will merchants be required to do KYC but also their customers.
These types of practices completely spit in the face of Satoshi and his vision for bitcoin and leave one wondering, is there any way to accept bitcoin, as a company, that is even remotely anonymous?
This is where Blockonomics enters the scene.
Blockonomics Payment Processor
Although I use the term payment processor, Blockonomics actually doesn't handle any wallets or payments. Rather, they are nothing more than an API provider for monitoring transactions.
Blockonomics works very differently than any other payment processor I have used to date. The hardest part of using their service is understanding what your public key is.
The way Blockonomics works is fairly simple. You add your public key; also referred to as an xpub, ypub or zpub key; and they use your key to generate wallet addresses on your behalf. Every time a customer opts to make a purchase in bitcoin, a new wallet address is generated for the buyer to use. Blockonomics then monitors that address and reports back to your IPN any activity it sees.
So say for example a customer is going to make a purchase that costs .001 BTC. First a wallet address is generated for them using your public key, then when they pay that fee - Blockonomics reports back to your IPN that a payment has been made. Blockonomics tells you the address that was paid to, the amount that was sent to that address, the txid of the transaction and the status code of the transaction.
The status codes they send back are 0, 1 or 2. A status code of 0 means there has been a transactions recorded on the blockchain with 0 confirmations. A status code of 1 means 1 confirmation and a status code of 2 means 2 confirmations.
This is all the data that is required to make a successful sale.
How does one find their public key?
Every wallet works differently and not all wallets give you the proper information they should. One wallet specifically that does and has a proven track record is that of electrum. Electrum is available on all platforms but I am going to show how to find the public key specifically on the windows version.
As shown in the screenshot above, your public key can be found by simply clicking on the "wallet" drop-down. A window will popup showing you a Maser Public Key. That key will start with either xpub, ypub, or zpub depending on the type of wallet you have created.
If you plan to use the Blockonomics system for multiple different websites, you will need a unique wallet for each website.
As this is a Master PUBLIC key, there should be nothing dangerous that can come from this, as it is after all a public key.
How to complete a Blockonomics transaction?
One might be wondering with only 4 pieces of information, how to finalize a purchase after payment as been made. Since Blockonomics is actually correctly following the guidelines set by Satoshi and never reusing an address - tracking the payment to the purchase is relatively simple.
When an address is created on a website - one simply needs to add the address, the service(s) or item(s) being purchased, and the amount of the purchase in bitcoin to their database. This information can then be used to match the purchaser to the items being purchased.
When status 0 is returned by Blockonomics, one would change the status of the purchase to pending.
I should also make a note here that all values returned by Blockonomics are whole numbers so they must be divided by 100000000. So if someone purchased an item for 1000 sats the number 1000 will be returned by Blockonomics. You would need to divide 1000 by 100000000 to get 0.00001000.
The Blockonomics API is incredibly simple to understand for anyone who is familiar with PHP. However, for those who are not fluent in PHP there are also plugins available for the most common platforms including Wordpress, Joomla, Magento, Opencart and several other of the most popular shopping carts and CMS platforms.
The best part about using Blockonomics, is there is no branding requirements. All plugins are 100% open source and the developers seem to have no issues with you removing branding as you see fit.
When it comes to security I am not overly thrilled with how Blockonomics handles things. For the most part they have you add a secret key to your IPN. They then have you ensure that the page is not processed unless the url contains your secret key. This effectively means ipn.php?secret=whatever
In today's world, hackers are clever and a simple secret key like that is not protection enough for me. As an added measure one could also check the referring website from header files to ensure that the website calling the ipn is in fact Blockonomics, however this information can also be spoofed by a hacker.
So I go the extra mile.
What I do is when the IPN is called, I get the txid returned by Blockonomics and verify the TXID actually exists on a bitcoin block explorer, that the block explorer returns the proper address matching the order, and that the correct amount was spent.
If the information is on the blockchain, it's pretty well impossible it is a spoofed purchase.
How does Blockonomics make money?
Blockonomics allows you your first few transactions for free. After that they require a fee of 1% of the total transaction cost.
However because they never touch your funds, they cannot directly take the fee from you. Instead it's up to you to log into your account and make sure you have added enough funds to cover your transactions.
This is actually exactly how merchant accounts should work in a trustless system. If you fail to make the payment to cover your funds, you will receive an email reminder and your access to their service will get revoked until you do send funds.
One can find the details of sending funds, account upgrades, and other limits by logging into their account and visiting the upgrades page.
This service is an absolute must have for everyone doing bitcoin transactions who actually cares about their privacy, the privacy of their users and for anyone who does not wish to go through KYC checks.
The truth is all hope is not lost for bitcoin just yet - it just takes some digging and avoiding the corporate brands one sees these days in the crypto industry.
Hopefully you enjoyed this post and learned a few things from it. Tips and comments are welcome and encouraged!