📈 The BitSong Liquid NFT: bs721-curve..How does this work?
Music NFTs on BitSong Studio use the bs721-curve system...let's get into a deeper overview of it!
The curve is based on the mathematical formula sum of squares of first n natural numbers, i.e., [n(n+1)(2n+1)]/6
. With each purchase (buy), the availability (supply) increases, and with each sale (sell), the availability decreases.
Based on the current availability (supply) of the music NFT, the desired mint or burn quantity, and adding a parameter we call ratio, you will obtain the base_price
.
Additionally, the creator specifies a royalty fee to retain; the fee will be added to the base_price
and applied to both mint and burn.
Let's go through an example: Suppose the creator specified a seller fee of 5%
and the base_price
is 100 BTSG, then we get the following royalties: 100 * 0.05
= 5 BTSG.
The creator can also specify a referral fee; the fee will be deducted from the creator's royalties and assigned to the referral.
Suppose the creator specified a referral fee of 1%; we get the calculation: 100 * 0.01
= 1 BTSG.
Therefore, if there is a referral, the creator will earn 4 BTSG, and the referral will earn 1 BTSG (5 BTSG - 1 BTSG
).
To make the protocol self-sustainable, a protocol fee
was introduced (currently customizable by the BitSong team and later customizable through governance proposals). The current protocol fee is 0.30% of each mint/burn (base price * protocol fee).
Let's consider an example: The base_price
was 100 BTSG, so 100 * 0.003
= 0.3 BTSG. The fee will be deposited into the community pool through the MsgFundCommunityPool
message.
The protocol fee was created to allow the ecosystem to be self-sustaining and to incentivize the community with new proposals.
Based on the example mentioned, we get a final price of 100 + 5 + 0.3
= 105.30 BTSG.
The same reasoning applies when a burn is performed.
Where are the 100 BTSG of the base_price
transferred to? Well, the curve creates a liquid NFT (a value reserve in BTSG); in fact, the NFT Genesis Collection currently holds 1,400,000 BTSG ($26,000). If you want to verify for yourself, you can check the balance here: NFT Genesis Collection Balance
How do I make a buy or sell?
On bitsong.studio, you will find two buttons, "buy" and "sell"; clicking on either button will open a new window. In the case of buy, the window will show the desired quantity to purchase (mint) and the Bid Price.
What is the bid price?
The bid price allows you to enter the amount you are willing to spend for that quantity of NFTs you want to buy.
Let's go through an example: If you want to buy 10 NFTs, and the price of each NFT is 100 BTSG, you should set a minimum amount of 1000 BTSG.
However, in times of high traffic, the price could change rapidly, and your transactions might fail. To avoid this, the bid price was introduced, allowing you to specify the amount you are willing to spend to get the 10 NFTs (e.g., 2500 BTSG). This way, the smart contract will attempt to purchase 10 NFTs for a maximum of 2500 BTSG; if the smart contract manages to buy 10 NFTs at a lower amount (e.g., 1200 BTSG), it will refund the unused amount. In the example mentioned, we decided to offer a maximum of 2500 BTSG; the smart contract bought them at 1200 BTSG, obtaining the 10 NFTs and the 1300 BTSG difference. If the smart contract had failed to execute the order, I would have been refunded the 2500 BTSG, and I would only have incurred transaction fees.
To perform a sell (burn), the reasoning is the opposite, setting the minimum amount you are willing to receive.
Website | BitSong Studio| Sinfonia | FanToken | Github | Mainnet | $BTSG on Osmosis | Discord | Telegram |
La curva si basa sulla formula matematica sum of squares of first n natural numbers, ovvero [n(n+1)(2n+1)]/6. Ad ogni acquisto (buy), la disponibilità (supply) aumenta e ad ogni vendita (sell), la disponibilità diminuisce.
Basandoci sull'attuale disponibilità (supply) del music NFT, sul quantitativo che si desidera mintare o burnare, e aggiungendo un parametro da noi denominato ratio, si otterrà quindi il base_price.
Il creatore, inoltre, specifica una royalty fee da trattenere; la fee andrà aggiunta al base_price. La fee sarà applicata sia al mint che al burn.
Facciamo un esempio:
Supponiamo che il creator abbia specificato una seller fee del 5% e che il base_price sia 100btsg, otterremo così le seguenti royalties 100 * 0.05 = 5btsg.
Il creatore può inoltre specificare una referral fee; la fee verrà detratta dalle royalties del creatore ed assegnata al referral.
Supponiamo che il creator abbia specificato una referral fee dell'1%; otterremo il seguente calcolo 100 * 0.01 = 1btsg.
Quindi, se sarà presente il referral, il creatore guadagnerà 4btsg ed il referral 1btsg (5btsg - 1btsg).
Al fine di rendere il protocollo auto-sostenibile, è stata introdotta una protocol fee (al momento customizzabile dal team di bitsong e successivamente customizzabile tramite governance proposal). L'attuale protocol fee è pari al 0.30% di ogni mint/burn (base price * protocol fee).
Facciamo un esempio:
Il base_price era 100btsg, quindi 100*0.003 = 0.3btsg. La fee verrà depositata nella community pool tramite il messaggio MsgFundCommunityPool.
La protocol fee è stata creata per permettere all'ecosistema di autosostenersi e di incentivare la community con nuove proposal.
In base all'esempio riportato otterremo un prezzo finale di 100+5+0.3 = 105.30btsg.
Lo stesso identico ragionamento va applicato quando viene effettuato un burn.
Dove vengono trasferiti i 100btsg del base_price? Bene, la curva crea un NFT liquido (ovvero una riserva di valore in btsg); infatti, il NFT Genesis Collection custodisce (in questo momento) 1.400.000btsg ($26.000). Se volete verificare voi stessi, potete controllare il balance qui: https://www.mintscan.io/bitsong/address/bitsong1zwv6feuzhy6a9wekh96cd57lsarmqlwxdypdsplw6zhfncqw6ftqgwk2ea
Come faccio a fare buy o sell?
Su bitsong.studio troverai due pulsanti “buy” e “sell”; cliccando su uno dei pulsanti si aprirà una nuova finestra. Nel caso in cui hai scelto buy, la finestra mostrerà la quantità desiderata da acquistare (quindi mintare) ed il Bid Price.
Cos’è il bid price?
Il bid price ti consente di inserire l’importo che sei disposto a spendere per quella quantità di nft che vuoi acquistare.
Facciamo un esempio:
Se vuoi acquistare 10 nft e l’importo di ogni singolo nft è di 100btsg, dovresti impostare un importo minimo di 1000btsg.
Tuttavia, in momenti di alto traffico, il prezzo potrebbe variare rapidamente e quindi le tue transazioni potrebbero fallire. Per evitare ciò, è stato introdotto il bid price, ovvero specificare l’importo che tu sei disposto a spendere per ottenere i 10 nft (esempio 2500btsg). In questo modo, lo smart contract proverà ad acquistare 10 nft per un massimo di 2500btsg; nel caso in cui lo smart contract riesca ad acquistare 10 nft ad un importo inferiore (esempio 1200btsg) ti rimborserà l’importo non utilizzato. Nell’esempio riportato, ho deciso di offrire max 2500btsg; lo smart contract li ha acquistati a 1200btsg, ottenendo i 10 nft ed i 1300btsg di differenza. Nel caso in cui lo smart contract non fosse riuscito ad eseguire l’ordine, mi sarebbero stati rimborsati i 2500btsg e avrei papato solamente le fee di transazione.
Per effettuare un sell (burn) il ragionamento è inverso, impostando quindi l’importo minimo che sei disposto ad ottenere.