スキル一覧に戻る
hiromaily

btc-terminology

by hiromaily

btc-terminologyは、other分野における実用的なスキルです。複雑な課題への対応力を強化し、業務効率と成果の質を改善します。

120🍴 32📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


BTC Terminology Rules

🚨 CRITICAL: Bech32m vs Taproot

This is a common source of bugs. Do NOT confuse these terms:

TermWhat It IsWhere Used
bech32mEncoding format (HOW address is serialized)Bitcoin Core RPC, shell scripts
taprootAddress type (WHAT the address represents)Config files, domain model

Key Rule: bech32mtaproot — They are related but NOT interchangeable.

Quick Reference Table

ContextCorrect TermExample
Config YAML/TOML filestaprootaddress_type: "taproot"
Environment variablestaprootWALLET_ADDRESS_TYPE="taproot"
Bitcoin Core CLI/RPCbech32mbitcoin-cli getnewaddress "" bech32m
Shell scripts (receiver addresses)bech32mgetnewaddress "" bech32m
Go domain code (internal/domain/address/)taprootAddrTypeTaproot
Go Bitcoin Core interface (internal/domain/bitcoin/)bech32mAddressTypeTaproot = "bech32m"

Common Mistakes

❌ WRONG

# Config file - DON'T use bech32m
address_type: "bech32m"  # WRONG!
# Shell script - DON'T use taproot for Bitcoin Core RPC
bitcoin-cli getnewaddress "" taproot  # WRONG!

✅ CORRECT

# Config file - Use taproot
address_type: "taproot"  # CORRECT!
# Shell script - Use bech32m for Bitcoin Core RPC
bitcoin-cli getnewaddress "" bech32m  # CORRECT!

Technical Background

Why Two Different Terms?

  1. Taproot (BIP341) = SegWit version 1 address type (P2TR - Pay-to-Taproot)
  2. Bech32m (BIP350) = Encoding format that fixes checksum issues in original Bech32

All Taproot addresses are encoded using bech32m, but:

  • User-facing config uses "taproot" (what you want)
  • Bitcoin Core RPC uses "bech32m" (how it's encoded)

Address Format Comparison

EncodingSegWit VersionAddress TypePrefixConfig Value
Base58N/AP2PKH1...legacy
Base58N/AP2SH3...p2sh-segwit
Bech32v0P2WPKHbc1q...bech32
Bech32mv1P2TRbc1p...taproot

Codebase Mapping

The project has two different type definitions:

// internal/domain/bitcoin/address_type.go
// For Bitcoin Core RPC communication
AddressTypeTaproot AddressType = "bech32m"  // Bitcoin Core uses "bech32m"

// internal/domain/address/types.go
// For user-facing configuration
AddrTypeTaproot AddrType = "taproot"  // User sees "taproot"

Conversion between these is handled by mapper functions:

// internal/infrastructure/api/btc/btc/mapper.go
// FromAddressType: "bech32m" (Bitcoin Core) → "taproot" (user-facing)
// ToAddressType:   "taproot" (user-facing) → "bech32m" (Bitcoin Core)

Verification Checklist

When working with Taproot/Bech32m code:

  • Config files (YAML/TOML) use address_type: "taproot"
  • Environment variables use WALLET_ADDRESS_TYPE="taproot"
  • Bitcoin Core RPC calls in shell scripts use bech32m
  • Shell scripts generating receiver addresses use bech32m
  • Go code uses correct type for the layer:
    • Domain/config layer: AddrTypeTaproot (value: "taproot")
    • Bitcoin Core interface: AddressTypeTaproot (value: "bech32m")
FilePurpose
internal/domain/address/types.goUser-facing AddrType definitions
internal/domain/bitcoin/address_type.goBitcoin Core AddressType definitions
internal/infrastructure/api/btc/btc/mapper.goType conversion functions
docs/crypto/btc/taproot/user-guide.mdTaproot user guide
  • BIP350 - Bech32m specification
  • BIP341 - Taproot specification
  • BIP86 - Taproot key derivation (m/86'/...)

スコア

総合スコア

75/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

+5
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です