BSC-20
The Basics
BSC-20 is an inscription protocol on the Binance Smart Chain. The protocol's state is
determined by sequentially indexing all BSC transactions. This standard is a modified version of
the Ethscription protocol, adapted to account for the unique circumstances and history of
inscription activities on the BSC.
BNBScription start block height: 29508755
Deploy
Note: Only deploy operations initiated by Externally Owned Accounts (EOAs) are considered valid.
Deploy From EOAs
https://bscscan.com/tx/0x469bb5ec5d87c590875689321c1f1d2ba0737756e47a9e548190c142ad669411
data:,{"p":"bsc-20","op":"deploy","tick":"bnbs","max":"21000000","lim":"1000"}
Param | IsRequired | Description |
---|---|---|
p | Y | BNBScription, strictly to 'bsc-20' |
op | Y | Operation type: deploy |
tick | Y | Token name |
max | Y | Total token supply |
lim | Y | Mint token quantity limit max%lim=0 |
Mint
Note: Only mint operations initiated by Externally Owned Accounts (EOAs) are considered valid.
Mint From EOAs
The transaction hash of the transaction in which a BNBScription was created is that BNBScription's unique inscription id.
The recipient of the creation transaction is the BNBScription's initial owner. The sender of the creation transaction is the BNBScription's creator.
https://bscscan.com/tx/0xf75c2bdd38b81d2b15b3398b2a61ae2230fcce8184302dfce246bc7391f15673
data:,{"p":"bsc-20","op":"mint","tick":"bnbs","amt":"1000"}
p | Y | BNBScription, strictly to 'bsc-20' |
---|---|---|
op | Y | Operation type: deploy |
tick | Y | Token name |
max | Y | Total token supply |
amt | Y | Mint lim, must equal to the lim of deploy operation |
Transfer
The protocol defines for each BNBScription a list of valid BNBScription transfers. This list is ordered first by block number, then transaction index, then log index (in the case the transfer was triggered by an event).
Single Transferring From EOAs
Any Ethereum transaction whose input data is a BNBScription id as defined above is a valid BNBScription transfer, provided the transaction sender is the BNBScription's owner. Because internal transactions from smart contracts do not have input data, this method only works for EOAs.
https://bscscan.com/tx/0x742c0165e4b866c73fe4ca89763d86fa5ba84035db6c98b24ee070ce742431e1
0xf037dbf3aa5638fd41ac2b564abcc0b5622f09c1a070606e9ae6a7acf7b77365
Batch Transferring From EOAs, Under ESIP-5
The first batch transfer on chain:
https://bscscan.com/tx/0x813c7bde7d38b0d1dfa1f819aed238c087808df6a7ad91754bc1e2fcc26c81b3
If the input data of a transaction (without its leading 0x
) is a sequence of 1 or more valid BNBScription ids (without their leading 0x
), that transaction will constitute a valid transfer for each BNBScription that is owned by the transaction's creator. The transaction must have occurred in 37025411
or a later block. Read more.
Transferring From Smart Contracts, Under ESIP-1
If a contract emits ethscriptions_protocol_TransferEthscription
(signature below), the protocol should register a valid BNBScription transfer from the emitting contract to recipient
of the BNBScription with id ethscriptionId
, provided the emitting contract owns that BNBScription when emitting the event.
Transferring From Smart Contracts, Under ESIP-2
If a contract emits ethscriptions_protocol_TransferEthscriptionForPreviousOwner
, the protocol should register a valid BNBScription transfer from the emitting contract to recipient
of the BNBScription with id ethscriptionId
, provided:
- The emitting contract owns the BNBScription with id
ethscriptionId
when it emits the event - The BNBScription's previous owner was
previousOwner
.
Transferring From Smart Contracts, Under evm.ink (deprecated)
Example: https://bscscan.com/tx/0x53ca04f9b10598dc450b2b86745db5fd3d3ef1ac16d49284ec570bb372d48502
If a contract emits event log with topics[0] = 0x0a3b61559cc1b716b82a3a2cb81bda1628e302db3e5f7a6e95932fb4851f4362
, should register a valid BNBScription transfer from the emitting contract to recipient
of the BNBScription with id ethscriptionId
The evm.ink smart contract transfer event is described as follows:
Param | Definition | Example |
---|---|---|
Topic[0] | evm.ink smart contract transfer topic | 0x0a3b61559cc1b716b82a3a2cb81bda1628e302db3e5f7a6e95932fb4851f4362 |
Topic[2] | Buyer address | 0xf887d8e469f136a0d374fa9bb1477a1ed92f1184 |
Topic[3] | Seller address | 0x0030bdf14e53acbdb16282cef82c4b5f6d7079da |
Data[0] | BNBScription Id | 0x81af78259d6cb26e509347ce81e5a01c0fa2e692621d9c1b4cad95e0db12ef1f |
Data[1] | Purchase Currency, zero address represents BNB | 0x0000000000000000000000000000000000000000000000000000000000000000 |
Data[2] | Purchase currency amount in wei | 100000000000000 |
Updated 8 months ago