๐Ÿ”ธBRC-30

Improvement proposal for BRC20 tokens to allow staking and liquidity pools

BRC30 Proposal: https://www.okx.com/web3/build/docs/bitcoin-ecosystem/brc30-proposal

BRC30 Explanation Twitter threads: https://twitter.com/okx/status/1664295775159853057 https://twitter.com/0xAbhiP/status/1665056239036792832https://twitter.com/Jiurn/status/1664674583855636481 OKX Press Release: https://www.okx.com/learn/okx-proposes-industry-first-brc-30-token-standard-to-enable-bitcoin-and-brc?channelid=ACEAP6502255

BRC-30 Proposal

Summary

OKX have introduced BRC-30, an extended version of the BRC-20 proposal (a fungible token standard made explicitly for the Bitcoin blockchain) that incorporates BRC-20 design principles while introducing functionalities for staking operations such as depositing, minting, and withdrawing.

BRC-30 allows users to stake their own BRC-20 tokens or bitcoin and receive BRC-30 tokens in return. The BRC-30 protocol is open-source and available for all developers to build upon.

Motivation

The introduction of BRC-30 and its staking functionalities provide BRC-20 token holders and projects with expanded design space and additional opportunities to engage with their communities.

Specifications

User scenarios

  • Project team: Can issue their own BRC-30 tokens by creating a staking pool, thus gaining seed users.

  • Users: Can stake BTC or BRC-20 tokens to earn BRC-30 tokens like abcd.

Interaction flow

  1. Project Party: Carries out the deploy operation, defining the attributes of the staking pool, following which the user's deposit operation will be recognized and recorded (following the BRC-20).

  2. User: Executes staking activities such as depositing, minting (claiming), and withdrawing.

  3. Server: Performs a comprehensive interpretation of the BRC-20 and BRC-30 proposal, providing an open-source interface for profit calculation.

Instructions

Operations

  • Deploy BRC-30 pool

{ 
  "p": "brc-30",
  "op": "deploy",
  "t": "pool",
  "pid": "f7c515d6b7#01",
  "stake": "btc",
  "earn": "abcd",
  "erate": "10",
  "dmax": "12000000",
  "total": "21000000",
  "only": "1"
}
  • Stake: deposit BRC-20 token/btc into BRC-30 pool

{
  "p": "brc-30",
  "op": "deposit",
  "pid": "f7c515d6b7#01",
  "amt": "100"
}
  • Claim: mint BRC-30 earned token

{ 
  "p": "brc-30",
  "op": "mint",
  "tick": "abcd",
  "pid": "f7c515d6b7",
  "amt": "100"
}
  • Unstake: withdraw BRC-20 token/btc from BRC-30 pool

{ 
  "p": "brc-30",
  "op": "withdraw",
  "pid": "f7c515d6b7#01",
  "amt": "100"
}
  • Transfer BRC-30 token

{ 
  "p": "brc-30",
  "op": "transfer",
  "pid": "f7c515d6b7",
  "tick": "abcd",
  "amt": "100"
}

Note: Please be careful when using inscription service. Ensure to send tokens to the address that holds the balance, especially in the situation where some ordinal compatible wallet generates a different address each time.

Last updated