{"id":22231126,"url":"https://github.com/youngqqcn/ord-brc20","last_synced_at":"2025-10-13T08:30:41.926Z","repository":{"id":238828942,"uuid":"643874245","full_name":"youngqqcn/ord-brc20","owner":"youngqqcn","description":"ordinal and brc20","archived":true,"fork":false,"pushed_at":"2023-08-09T09:59:44.000Z","size":449,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-20T13:41:43.911Z","etag":null,"topics":["bitcoin","brc20","btc","launchpad","ordinals"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/youngqqcn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-22T10:38:06.000Z","updated_at":"2025-02-27T04:27:46.000Z","dependencies_parsed_at":"2024-05-08T11:45:06.223Z","dependency_job_id":null,"html_url":"https://github.com/youngqqcn/ord-brc20","commit_stats":null,"previous_names":["youngqqcn/ord-brc20"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/youngqqcn/ord-brc20","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youngqqcn%2Ford-brc20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youngqqcn%2Ford-brc20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youngqqcn%2Ford-brc20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youngqqcn%2Ford-brc20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/youngqqcn","download_url":"https://codeload.github.com/youngqqcn/ord-brc20/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youngqqcn%2Ford-brc20/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014326,"owners_count":26085492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","brc20","btc","launchpad","ordinals"],"created_at":"2024-12-03T01:18:37.350Z","updated_at":"2025-10-13T08:30:41.597Z","avatar_url":"https://github.com/youngqqcn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ord-brc20\nordinal and brc20\n\n- 铭刻教程：\n  - https://www.panewslab.com/zh/articledetails/27ojhj8a.html\n\n- Taproot升级\n  - https://gamma.io/learn/blockchain/bitcoin/taproot-upgrade\n- Tapscript\n  - https://docs.ordinals.com/inscriptions.html\n  - 深入理解： https://medium.com/@bun919tw/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3-bitcoin-nft-ordinals-3811b0eb9fed\n  - 深度解析：https://mirror.xyz/quentangle.eth/zRV-TCg62FGhee89fTgAYUqywcc6x9wpTG6gVdMrEp0\n    - **由于taproot脚本的花费只能从现有的taproot输出中进行**\n      - 第一步： 将铭文写进taproot的交易输出（TXO）作为UTXO，这一步叫做commit\n      - 第二步： 花掉第一步产生的UTXO，铭文内容被揭示（如果不花费UTXO,那么铭文内容一直在UTXO中，不能算真正的上链）\n  - ordinals的tapscript脚本\n    ```\n    \u003csignature\u003e\n    OP_FALSE\n    OP_IF\n        OP_PUSH \"ord\"\n        OP_1\n        OP_PUSH \"text/plain;charset=utf-8\"\n        OP_0\n        OP_PUSH \"Hello, world!\"\n    OP_ENDIF\n    \u003cpublic key\u003e\n    ```\n  - `OP_FALSE` 會 push 一個 empty array 到 stack，注意這邊是有 push 東西的，只是它是空的。\n  -  `OP_IF` 檢查 stack 頂部，如果為 true 才會做接下來的事情，因為前面 OP_FALSE 的動作，導致這個 if 不會成立。\n    接下來 `OP_PUSH` … 等一系列操作都會被忽略，因為上一個 if 條件沒有達成。\n  - `OP_ENDIF` 結束這個 if 區塊。\n  - 可以看出來中間這些操作因為 `OP_IF` **一定不會成立**，所以等於什麼狀態都沒改變，於是就可以把圖片的完整資料都放在 OP_IF 裡面而**不影響本來 Bitcoin script 的 validation**，多虧了 taproot 升級，script 現在是沒有大小上限了，所以只要 transaction 的大小小於 block 的大小 (4 MB)，script 你要多大都可以，也就是說我們可以達到**類似 OP_RETURN 的效果**，把無關的資料放上去 Bitcoin 卻還沒有 80 bytes 的大小限制了。\n  - 其中 `OP_0`后面跟随的是incribe的内容，每个块不能超过`520 bytes`\n\n  - https://medium.com/@bun919tw/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3-bitcoin-nft-ordinals-3811b0eb9fed\n- BTC生态全景\n- 主流平台和钱包分析\n- ordinal协议分析\n  - 源码解析： https://github.com/unisat-wallet/unisat-docs/blob/master/docs/guide/unisat-api.md\n  - https://unchainedcrypto.com/how-to-create-a-bitcoin-ordinal/\n  - https://github.com/casey/ord/\n  - https://docs.ordinals.com/\n    - 自己部署铭刻：https://docs.ordinals.com/guides/inscriptions.html\n    - https://learnblockchain.cn/article/5376\n  - ordinal主网浏览器： https://ordinals.com/\n  - 搭建节点： https://zhuanlan.zhihu.com/p/612394795\n  - 测试网： https://signet.ordinals.com/\n  - regtest: https://github.com/casey/ord/issues/1638\n    - regtest使用：  https://gist.github.com/System-Glitch/cb4e87bf1ae3fec9925725bb3ebe223a\n- 代码实现\n  - https://learnblockchain.cn/article/5782\n- BTC NFT生态分析\n  - BTC NFT API: https://docs.nftscan.com/reference/btc/model/asset-model\n- BRC20分析\n- 工具平台\n  - https://gamma.io/collections\n  - https://ordinalswallet.com/\n  - https://unisat.io\n  - https://idclub.io/index\n\n- 开源铭刻：\n  - https://looksordinal.com/\n    - https://medium.com/@rarity.garden/inscriptions-with-looksordinal-cfa2d635f720\n\n- 区块浏览器：\n  - https://mempool.space/zh/\n\n- 解决 ord  连接 bitcoin rpc 400错误：\n  - truncate -s -1 ./bitcoin.cookie\n\n\n```\nbitcoin-cli -chain=regtest -rpcuser=qiyihuo -rpcpassword=qiyihuo1808 createwallet test1\n\nbitcoin-cli -chain=regtest -rpcuser=qiyihuo -rpcpassword=qiyihuo1808 getnewaddress\n```\n\n\n\nmnemonic:\n```\nwish daring pottery stuff project laundry finish impact mind hover actress slogan\n```\n\nreceive\n{\n  \"address\": \"bcrt1px4ffhmxsmcdzjqkcmd3e3nec0n8ha9z3cqzfnxwhske5w3pmx0gs6ygf3m\"\n}\n\nbcrt1qkd522aj7hyevsa7mv2893wqtm7ey0v6se83fzn\n\n\n```\n$ make ordinscribe\nord --regtest --cookie-file /home/yqq/mine/ord-brc20/bitcoin.cookie wallet inscribe --fee-rate 10 ./helloworld.txt\n{\n  \"commit\": \"a62c8132698e80c96ef1db32230080790b678cd49c8b3f4ad1143687a8d2c3ab\",\n  \"inscription\": \"88057a76b3b5b58c80162785472f99f52906495111c4774480838f56c6edcd5ai0\",\n  \"reveal\": \"88057a76b3b5b58c80162785472f99f52906495111c4774480838f56c6edcd5a\",\n  \"fees\": 2940\n}\n```\n\n\n\n----\n\n\nbitcoin testnet  faucet\n\nhttps://testnet-faucet.com/btc-testnet/\n\n\n\n\n----\n\n# BitcoinEagle技术方案设计\n\n## 账户模型设计\n\n基于BIP44为每个用户（订单）生成唯一的 P2TR格式的BTC充币地址\n\n\n## 如何检测用户充值？\n\n调用mempool的API接口扫描区块，匹配地址\n\n或者直接监听内存池中的交易\n\n\u003e 如果时间允许，可以获取内存中的交易，提升用户体验\n\n\n## 如果铭刻？\n\n- 需要记录每笔订单的费率，以及铭刻内容，异步铭刻\n- 当收到用户的充值后 直接使用用户充值交易的那个`UTXO`构造`commit_tx`,并用`commit_tx`的输出构造`reveal_tx`\n- 充值交易在内存中，是否可以直接铭刻，按理说是可以的！\n\n\n## 如何抽水？\n\n构造`commit_tx`的时候，插入我们的抽水输出即可\n\n\n\n# 模块划分\n\n- 后台任务模块：\n  - BTC地址生成模块，基于BIP44规范(已完成)\n  - BTC区块（内存池）扫描模块，监听用户充值交易\n  - 异步铭刻模块\n\nAPI服务：(已完成)\n  - 预约接口（已完成）\n  - 链上实施费率查询（前端定时直接查mempool的接口）\n    - https://mempool.space/api/v1/fees/recommended\n  - 费用估算接口（服务费）\n    - 返总费用（美元）: 前端通过 api.coincap.io/v2/assets/bitcoin 获取btc的实时 乘以 btc的数量\n  - 订单创建接口\n    - 返回\n      - 订单id,\n      - 充值地址： 前端根据充值地址生成二维码\n      - btc价格\n      - 字节大小\n      - 铭刻费用\n      - 服务费用\n      - 总费用\n\n  - 获取用户接收地址的详情：\n    - 提示用户： 请不要使用存在未确认转出交易的账户进行付款\n    - https://blockstream.info/api/address/bc1phjsyw73de6ap8nfjzg4erxmdw7lzlfgvm447v82fytn78nm0mwnsq654e7\n\n  - 订单查询接口\n    - 根据订单号查询\n    - 或根据接收地址查询\n    - 或根据付款地址查询\n\n  - 盲盒查询接口\n    - 盲盒id\n    - 盲盒名称\n    - 描述\n    - 价格(BTC)\n    - 价格(USD)\n    - 支付币种\n    - 总数量\n    - 剩余数量\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungqqcn%2Ford-brc20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoungqqcn%2Ford-brc20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungqqcn%2Ford-brc20/lists"}