<p>As far as I know, in principle, BRC-20, or something equivalent, only really needs to store about 60 bytes in some predictable location in a Bitcoin transaction. Nothing else.</p>
<p>There is a very long history of storing arbitrary data in the Bitcoin blockchain. From the earliest days people stored images etc as data &quot;in addresses&quot; which I guess means in places intended for public keys or hashes of keys, etc.</p>
<p>So far as I know, new features like OP_RETURN, Segwit, etc just made this less problematic and cheaper.</p>

CC BY-SA 4.0
2023-06-19T11:00:29.240Z
If I understood correctly, when data is stored "in addresses", it makes transactions unspendable, meaning that the UTXO set gets bloated unnecessarily. But in this case, if I understood the Dogecoin inscription code, transactions are still spendable - spending is in fact necessary to "reveal" the data, since the script contains the data (and this data is not visible from just the script hash). I suppose Taproot made this process more convenient/cheaper then, but it isn't "essential" as many sources claim.
leotron
CC BY-SA 4.0
2023-06-18T14:41:06.293Z
2023-06-18T15:35:38.403Z
2023-06-18T15:35:38.403Z
RedGrittyBrick
<p>BRC-20 currently relies on the Taproot upgrade. I'm wondering how blockchains such as Dogecoin, which have Bitcoin as their predecessor and did not upgrade to Taproot, manage to support BRC-20. More specifically, I'm wondering if Bitcoin was actually able to support BRC-20 without the Taproot upgrade.</p>
<p>I wasn't able to find much on how to implement BRC-20 <em>without</em> relying on Taproot. However, I did find an example implementation for Dogecoin <a href="https://github.com/verydogelabs/inscription-wallet/blob/main/doginals.js#L224" rel="nofollow noreferrer">here</a>. It seems to boil down to splitting chunks of inscription data among several chained transactions. Each chunk is included in an unlocking script.</p>
<p>Is there something I'm missing here? Was BRC-20 possible all this time on Bitcoin even without Taproot?</p>

<script><taproot><ordinals><tokens>
Is the Taproot upgrade really essential for BRC-20 tokens on Bitcoin?
leotron
# Is the Taproot upgrade really essential for BRC-20 tokens on Bitcoin?

(Asked by: username_0 on 2023-06-17)

BRC-20 currently relies on the Taproot upgrade. I'm wondering how blockchains such as Dogecoin, which have Bitcoin as their predecessor and did not upgrade to Taproot, manage to support BRC-20. More specifically, I'm wondering if Bitcoin was actually able to support BRC-20 without the Taproot upgrade.

I wasn't able to find much on how to implement BRC-20 *without* relying on Taproot. However, I did find an example implementation for Dogecoin [here](https://github.com/verydogelabs/inscription-wallet/blob/main/doginals.js#L224). It seems to boil down to splitting chunks of inscription data among several chained transactions. Each chunk is included in an unlocking script.

Is there something I'm missing here? Was BRC-20 possible all this time on Bitcoin even without Taproot?

**Tags:** script, taproot, ordinals, tokens


---

## 1 answers

### Answer by username_1 on 2023-06-18. Score: 2 | Accepted answer

As far as I know, in principle, BRC-20, or something equivalent, only really needs to store about 60 bytes in some predictable location in a Bitcoin transaction. Nothing else.

There is a very long history of storing arbitrary data in the Bitcoin blockchain. From the earliest days people stored images etc as data "in addresses" which I guess means in places intended for public keys or hashes of keys, etc.

So far as I know, new features like OP\_RETURN, Segwit, etc just made this less problematic and cheaper.

> **Comments:**
> **username_0**: If I understood correctly, when data is stored "in addresses", it makes transactions unspendable, meaning that the UTXO set gets bloated unnecessarily. But in this case, if I understood the Dogecoin inscription code, transactions are still spendable - spending is in fact necessary to "reveal" the data, since the script contains the data (and this data is not visible from just the script hash). I suppose Taproot made this process more convenient/cheaper then, but it isn't "essential" as many sources claim.  

---

