I've been introduced to SLP almost two years ago when I was tipped the Spice token. It was fun everyone was gifting others with nice emojis that turned into Spice balance in your wallet. Time passes and I've participated in efforts to spread adoption of BCH and it's token system. I've been in multiple channels where people query about SLP and look for solutions like channels of the following projects:
Simple Ledger Protocol (SLP)
Electron Cash
SLPDB operators
BCHD operators
GoCrypto
Sideshift.ai
SLP validation and lack of exchanges support were the biggest reasons behind users complaint.
SLP Validation Issues
SLP transaction - as of the time of writing - are instructions or data attached to a bitcoin transaction inside an operation code called OP_RETURN
which can hold any message.
In normal BCH transaction when you ask to spend a coin to an address, wallet will check the previous transaction and see that it was included in a block and that balance is correct.
In SLP if you say in the message "spend 500 spice to address simpleledger:abcdedf1234...
the software can't check the previous transaction, because nodes usually don't know anything about SLP. What an application supporting SLP will have to do is to crawl all the OP_RETURN
messages since the creating of the token, collect them and and validate the token information they got.
This is a process that should be done to each token, and while smart developers have worked on solution to the issue they also knew that with the growth of SLP a more solid solution is needed.
How big of an issue is it?
Here is a list of some user complaints, mostly about validation issues that I've collected from telegram just by searching for the keyword "valid", those are people who looked for help to solve their issue in the last year or so, imagine how many tested and left without reporting.
Simple Ledger Protocol Group
More:
Electron Cash Group
More:
Implementing difficulties
Many businesses have suffered from the lack of support for SLP in exchanges and difficulty of implementing. As SLP isn't recognized by miners it requires additional indexers on top of other tools that is normally used to get transaction information. Wallets needed to download transaction data to device to verify it locally or they will depend on an external trusted indexer for all the information.
Business suffering
Here is of a few business that have suffered from some of SLP issues.
GoCrypto
It was one of the first few company to depend on SLP for business after having issues with high Ethereum fees but after struggling to find Exchanges willing to support SLP tokens, the ysaw that it's important to have another option so they recently chose to release on the Binance smart chain (BSC)
Few of SLP related problem in their telegram channel:
Sideshift.ai
Was one with first exchanges to support SLP, it was not easy. Seems it's more stable recently but it was a very hard ride and they suffered from downtime.
Bitcoin.com services and wallets
Users complaint about issues with SLP in wallets, in exchange and with the mint tool are known to the community members. Here are a few I got in a hurry.
Burn Problem
As SLP data are stored in op_return
and it's not looked up by miners. Many wallet and tools can spend the BCH and burn the token because they simply removed token data from the transaction when they spend it.
This create a very big risk as it means if you move your tokens to any wallet that doesn't recognize SLP it will burn it, However if SLP tokens were miner validated the wallet wouldn't allow you to spend it as the transaction wouldn't be valid if it didn't handle SLP data probably.
Issue with SLPDB
SLPDB is one of the main tools used to index SLP transactions. With time it's getting heavy and harder to handle. AFAIK it's not actively maintained.
More issues:
BCHD with SLP Indexer
BCHD have brought one of the best nodes to support SLP as the software it self can provide SLP data but AFAIK, it was just released few months ago. it's not in a very active development and in my personal experience the graph search used in Electron Cash SLP wallet which depends on it didn't solve the issue with validation completely.
UPDATE: I've tested the graph search with development version and validations seems faster, but only 3 BCHD servers available vs 24 preferred SPV servers and it's downloading large amount of tx data for coins with high transactions number.
Add your Story
If you are a business that had your share of troubles with the current system please share it in the comment section.
Solution
I've created this article to show you how important it's to find a solution for the current SLP problems. I find it so necessary to bring those issues into attention as I've seen some arguments that SLP is working fine and no need to change things. I don't think ignoring all those problems would be beneficial to the BCH community. I suggest people take a look at the proposed solutions or come with a better one.
Also SmartBCH is cool but when you bring your tokens back to the main chain you shouldn't worry about security, validation or burns.
I use electron cash slp version, but I fear it has backed itself into a corner. The devs would have to keep backporting from the main ec branch.
Thought of doing it as a plugin, but I'm sure there are going to be limitations, if feasible at all.
So having a stable future proof poweruser slp wallet is another thing i would love to see.
Another point is good dividend payment tools. Zapit wallet has one, but bitcoin.com infrastructure seems to be going away. Implementing in ec slp would be good, but with unsure future of that, who's going to?