BNT-15 Runes Launchpad

As far as I know:

  1. Etching (deploying a token) where you pick your own name requires a commit and a reveal. In this case, you need p2tr.
  2. Etching (deploying a token) where you add an image for your ticker requires inscribing an ordinal, meaning you need p2tr.
  3. Etching (deploying a token) where you don’t do either of those things, may not require p2tr (strictly op_return). In this case, you can pick a symbol but no image, and you are assigned a random reserved name.
  4. Minting tokens does not require p2tr. Just op_return.
  5. Transferring tokens does not require p2tr. Just op_return.

This is my current understanding. Digging a bit deeper now to see what else I can find.

1 Like

Both mint and transfer need to put your token to the first op return output, then you can point to a specific address that you want to send as the non-op-return output.

Yeah, mint and transfer, in either case, just needs op_return. All edicts (transfer instructions) show up in the op_return. All minting instructions show up in the op_return. No additional data, scripts, or signatures are needed anywhere else.

Go search the Bitcoin mempool right now and you’ll see 10-20% of all runes transactions right now are valid runes transactions that are not p2tr.

But, basically, we need a t-schnnor signature.

No you don’t. Not for mint or transfer. Any old op_return BTC transaction is fine. tECDSA can be used for any Bitcoin transaction type other than p2tr.

1 Like

Thank you @Zedonboy.

Could you demonstrate that the rune token is etched and can be minted using ord ?
I can’t find any reference to the commit/reveal transactions used to reserve the name.

1 Like

Do you know how that would work? How is the assignment done?

There are a set of reserved names (27 characters and 28 characters). When you etch without commit/reveal, the protocol takes your block number and your etching number (the 1-based index of your etch in a block) and it converts those to base26 → letters and that becomes the automatically assigned ticker.

1 Like

Hello everyone,

I’m very excited to share out my work.
I was finally able to etch a runestone.

Here is the link to my repo: etcher

I do some some works left, but I’m facing trouble with them.
i: To be a valid runestone, runestone’s name must be below than a runestone, that is calculated with the help of block number. I couldn’t find a way to get the blocknumber.
ii. I was also trying to add in the CKBTC payment feature, I had created a local CkBTC test setup, but it didn’t worked out. ( If someone would help me understanding the CkBTC thing, I can complete this too)

I’ll be sharing a video tutorial out soon.
And I’ll also be deploying the app on mainnet with Bitcoin’s Testnet blockchain.

1 Like

Also thanks to @domwoe , without his schnorr canister repo and inscription canister repo. I wouldn’t have been able to complete the task.

Great progress @icnerd!

If you receive a BTC payment, you can get the block height, i.e. block number via the the bitcoin_get_utxos API. But I’d say it’s also fine to submit the current block height from the frontend or use an HTTPS outcall to some Bitcoin blockexplorer etc.

There’s no need to setup the entire ckBTC system. ckBTC is just an ICRC-1 token. You don’t need to setup a minter and KYT canister. You can use the same setup as in the ckBTC PoS sample dapp:

Don’t I need to convert the CkBTC to Bitcoin for the runes transaction?

Ah, you’re correct, that’d be very useful and would require the minter. However, it would be ok if this flow would only be possible on an ICP mainnet deployment.


here is the video tutorial of showing how to etch rune locally

I’ve also deployed the application on mainnet with testnet support.
link to the frontend

Have you seen the omnity networks rune dex tool? Seems like it is along the lines of this.

Nice! Could you add some explanation to the readme of the repo about the different fields (cap, height, offset…) and buttons (premine, turbo mode)?

Yes. This is great. However, there is no launchpad (yet) and, as of now, the code is not open source.

1 Like

I’ve updated the frontend and readme file too.

Hello everyone, I’ve updated the code again.

I’ve added the CkBTC payment.
I’ve updated the frontend.

Here is the link to the new tutorial: LINK

1 Like

Hello @domwoe ,
I found out that, reveal transaction can be send after 5 blocks, So I have change the timer check from 1 hour to 50 mins. I have also added about this thing in the README file.