Fabriik launches Simple Fabriik Protocol for Tokens

Fabriik launches Simple Fabriik Protocol for Tokens

Fabriik launched yet another token protocol atop Bitcoin SV, the Simple Fabriik Protocol for Tokens (SFP). The protocol intends to be simple, easily integrated into wallets and “particularly good for business use cases.”

SFP tokens are Paymail-based and require that each asset be assigned to a Paymail. Money Button is the largest platform for Paymail-based Bitcoin usage, and Fabriik, who recently acquired Money Button, launched this update with the ability to send SFP tokens among Paymail addressess. The ability to send tokens on BSV to human-readable names is a great advantage over other chains which still require the use of ugly addresses.

Source: Money Button

SFP is UTXO based, while being centralized at the same time. Tokens are tracked via custom locking scripts and addresses but can be implemented such that there is an authorizer for each transaction. Tokens though can be traded freely between MoneyButton.com Paymails without such restrictions. The ‘centralized’ aspect of SFP may turn some off as the DeFi boom continues to gain traction on other chains, but the benefits of the simplicity will appeal to a wide audience of users.

An authorizer does needs to approve each transaction; therefore, this token protocol does not suffer from the ‘Back to Genesis’ issue at the cost of disallowing open trade between participants.

Spoofing is not a concern since the authorizer must sign an input for each transaction.

Source: Money Button

The protocol does allow for additional rules to be imposed by the authorizer like blacklisting addresses, freezing tokens, and minting or burning tokens. These rules could be implemented atop SFP without changing its protocol—which is a strength compared to some others currently on Bitcoin SV that must have all rules established when the tokens are minted. 

Like other protocols, SFP embeds some metadata into the output script like protocol version, the asset Paymail ID, owner/authorizer addresses along with a custom locking script:

Source: WhatsonChain

SFP adopts the approach of the Simplified Payment Protocol for sending transactions, the same approach that Money Button and HandCash implemented for their peer-to-peer payments back in March 2020. With the ‘p2p’ approach, receivers must validate their transactions. A trade-off here is that tokens cannot be sent truly p2p without a trusted 3rd-party to assist in validation.

Source: Money Button

The documentation highlights how “no token protocol is enforced on the blockchain,” (i.e. enforced by miners) and it is important to reiterate this is the case without exception. I touched on this subject in my article on Naming conventions in the context of 2nd layer protocols.

The validation requirement does help with scalability as the ‘centralized’ server can quickly validate and know who is using their tokens without needing to scan the entire ledger. This architecture has an advantage for the issuer since they have full control and a bird’s eye view of the transactions. Other token protocols may take a similar approach by providing this software as a service.

This aspect is useful in the context of always knowing the Paymail of those who hold a given token, for the purposes of paying them out (dividends or revenue share), granting special access to services or issuing more tokens.

On that topic:

Source: Money Button

SFP is permissioned so Fabriik can disallow tokens for any reason which may be a risk to the issuer.

No user interface exists yet to create tokens (perhaps for the permissioned-ness), but Fabriik has updated the MoneyButton documentation on how to do so, so with a bit of coding anyone can mint their SFP tokens today. In fact, this is how I created $SHUA coin which I will cover on my next piece!

New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.

[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]