[brc-20] Self Issuance Mechanism Proposal

Self Issuance Mechanism

The default BRC-20 standard uses a public issuance method for deployment and distribution of assets. After the asset is deployed, anyone can begin to mint their own portion. We need a new way that allows only the deployer to participate in minting after the asset deployment.

Changes to Deploy Inscription

A new field called (self_mint) can be added to the original BRC-20 protocol’s deploy operation. This setting ensures that only the deployer can issue the current asset. The meanings of the other fields remain the same as in the original BRC-20 rules, such as setting (max) for the maximum issuance and (lim) for the limit per issuance, etc.
Under this mode, when issuing the mint inscription, the deploy inscription must be used as the parent of the mint inscription; otherwise, the mint is invalid.

  • BRC-20 deploy inscription content:
{
  "p": "brc-20",
  "op": "deploy",
  "tick": "ordi",
  "max": "21000000",
  "lim": "1000"
}
  • Inscription content for assets that can only be issued by the deployer:
{
  "p": "brc-20",
  "op": "deploy",
  "self_mint": "true",
  "tick": "ordi",
  "max": "21000000",
  "lim": "1000"
}
  • When (max=0), BRC-20 rules do not allow this situation, but it is reasonable to define (max=0) as allowing an unlimited maximum issuance for self_mint. (BRC-20 itself requires the maximum asset limit to be max_uint64, which we continue to use here.)

For BRC20, the meaning of max is the total upper limit of all mints. BRC20 assets cannot truly disappear. No matter if the assets are transferred to any non-spendable address, it will not affect the max restriction rule for mints.

{
  "p": "brc-20",
  "op": "deploy",
  "self_mint": "true",
  "tick": "ordi",
  "max": "0",
  "lim": "1000"
}

Adopting 5-bytes Tickers

Thanks to @SeeSharp’s suggestion, we propose self-issuing an asset with a 5-bytes ticker to isolate existing assets. In this way indexers not prepared yet will simply ignore these assets.

FAQ

Alternative Option B:

Assets with self_mint could also be created by adding a new operation (op) instead of a new field. The inscription format would be:

{
  "p": "brc-20",
  "op": "deploy-self-mint",
  "tick": "ordi",
  "max": "21000000",
  "lim": "1000"
}

Advantages:

Introducing a new operation will isolate it from the current indexing, and indexers that don’t upgrade will not recognize this deploy inscription, which to some extent reduces confusion.

Disadvantages:

Adding a new operation involves a significant change.

Option A with the self mint function on a deploy makes more sense.

I also think it would be good if instead of true/false, it uses a number that you want to self mint, ie,

{
“p”: “brc-20”,
“op”: “deploy”,
“self_mint”: “10000000”,
“tick”: “ordi”,
“max”: “21000000”,
“lim”: “1000”
}

In this case it would deploy the token AND mint 10000000 ordi to the deployer, as well as allow people to start minting the remainder 1000 at a time.

If you dont want to do a self mint then you would just leave the self_mint field out.

{
“p”: “brc-20”,
“op”: “deploy”,
“tick”: “ordi”,
“max”: “21000000”,
“lim”: “1000”
}

This would be a fair public mint with no allocation to the deployer.

1 Like

If this option is going to come in to play, then you could also introduce no “lim” to automatically deploy all of the tokens directly to the wallet without the need of a second inscription

{
“p”: “brc-20”,
“op”: “deploy”,
“self_mint”: “true”,
“tick”: “ordi”,
“max”: “21000000”
}

Which would claim all 21M to the deploy wallet while reducing bloat inscriptions

But in the case that you want to self mint a certain amount of tokens and allow public mint for the rest, they way I have written it makes more sense than a true/false statement.

It allows more options to the deployer.

1 Like

Could they make that line a hexadecimal code while remaining the same for the other lines? So could return any value for integer or true/false

any idea if this works as you mentioned above? or it’s only self issuance and that’s all for 5 tickers?

No they ignored my proposal. Its just self mint so you can only mint if you hold the deploy inscription. Not an upgrade. Just another way to gatekeep the best names and profit from them

1 Like

This is misinformation, what they suggested is not technically possible due to indexers not able to communicate.