> For the complete documentation index, see [llms.txt](https://docs.bitcoinos.build/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bitcoinos.build/technical-documentation/grail-pro-charms-zkbtc/technical-overview/zkbtc.md).

# zkBTC

In order to provide a gateway to the ecosystem of decentralized applications made possible by Grail Pro and Charms, a token must be provided that has real-world value by locking BTC in the Grail Pro vault and allowing anybody to redeem this token for BTC in a trustless fashion without relying on counter-parties or liquidity providers.

To this end, we created zkBTC, a token pegged to BTC, that can be issued on Bitcoin mainnet (programmable BTC on Bitcoin) and is transferable to other chains.&#x20;

zkBTC can be “pegged-in” by locking BTC in a Grail Pro vault and minting zkBTC in equal amounts, or “pegged-out” by burning zkBTC and redeeming BTC from the vault.&#x20;

Logical View of a Typical Transaction&#x20;

A Grail Pro transduction that performs these operations will typically look like this:&#x20;

<figure><img src="/files/lKlJw0q460jVDGR4Q3Gj" alt=""><figcaption></figcaption></figure>

In this diagram crossed circles represent the Grail vault, and small circles represent user wallets. N represents the zkBTC NFT, T represents the fungible token, and B represents BTC.&#x20;

Dotted box 1 shows the zkBTC NFT, which is controlled by Grail Pro. Minting of zkBTC is only allowed to the owner of the NFT, thus allowing Grail Pro to maintain the total supply of zkBTC at exactly 1:1 ratio with the amount of locked BTC.&#x20;

Dotted box 2 shows a peg-in transaction, where a user sends BTC from his wallet and receives the same amount of zkBTC. The BTC is then sent to the Grail vault, locking it for later peg-out transactions.&#x20;

Dotted box 3 shows a peg-out transaction, where a user sends his zkBTC token to be burned. An equal amount of BTC is taken from the vault and sent to the user’s wallet.&#x20;

Every Grail Pro transaction can have multiple peg-in and peg-out transactions at once, thus batching together multiple user operations for the sake of efficiency and cost reduction.&#x20;

\ <br>
