# BRC-30

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/1665056239036792832><https://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**

```json
{ 
  "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**

```json
{
  "p": "brc-30",
  "op": "deposit",
  "pid": "f7c515d6b7#01",
  "amt": "100"
}
```

* **Claim: mint BRC-30 earned token**

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

* **Unstake: withdraw BRC-20 token/btc from BRC-30 pool**

```json
{ 
  "p": "brc-30",
  "op": "withdraw",
  "pid": "f7c515d6b7#01",
  "amt": "100"
}
```

* **Transfer BRC-30 token**

```json
{ 
  "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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://patches-1.gitbook.io/ordinals-standards-discussions/ordinals-standards-proposals/brc-30.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
