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"}
ParamIsRequiredDescription
pYBNBScription, strictly to 'bsc-20'
opYOperation type: deploy
tickYToken name
maxYTotal token supply
limYMint 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"}
pYBNBScription, strictly to 'bsc-20'
opYOperation type: deploy
tickYToken name
maxYTotal token supply
amtYMint 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:

  1. The emitting contract owns the BNBScription with id ethscriptionId when it emits the event
  2. 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:

ParamDefinitionExample
Topic[0]evm.ink smart contract transfer topic0x0a3b61559cc1b716b82a3a2cb81bda1628e302db3e5f7a6e95932fb4851f4362
Topic[2]Buyer address0xf887d8e469f136a0d374fa9bb1477a1ed92f1184
Topic[3]Seller address0x0030bdf14e53acbdb16282cef82c4b5f6d7079da
Data[0]BNBScription Id0x81af78259d6cb26e509347ce81e5a01c0fa2e692621d9c1b4cad95e0db12ef1f
Data[1]Purchase Currency, zero address represents BNB0x0000000000000000000000000000000000000000000000000000000000000000
Data[2]Purchase currency amount in wei100000000000000