Tangemウォレットにネットワークやトークンが追加されるまでの流れ
Tangem Walletには毎日、人気・マイナーを問わずさまざまなWeb3プロジェクトの新しいトークンやチェーン追加リクエストが数多く寄せられています。新しいブロックチェーンネットワークやトークンをTangem Walletに追加するには、ブロックチェーンアナリストと開発チームが連携し、体系的なプロセスに従って進めます。
この記事では、分析・開発からテスト・バグ修正までの一連の流れをご紹介します。お気に入りの仮想通貨がTangem Walletで使えるようになるまで時間がかかる理由も、きっとご理解いただけるでしょう。
まず、Tangemがどのように新しいトークンやネットワークのリクエストを受け付けているかをご説明します。
一部プロジェクトのコミュニティがソーシャルチャネルで大量のリクエストを送るケースがあるため、どのネットワークやトークンをウォレットに統合するかはTangemが最終的に判断することを、あらかじめご理解ください。
トークン・ネットワーク追加リクエストの受付
ユーザーの皆様は、新しいトークンの追加リクエストを、Telegramチャット、X(Twitter)、Discordなどの公式チャネルを通じてお送りいただけます。
このリクエスト方式は一見便利そうですが、複数のプラットフォームから寄せられるリクエストを一つのファイルにまとめるのはサポートチームにとって大きな負担となります。
とはいえ、私たちは内部でリクエスト内容を整理し、ユーザーからの要望数に基づいてトークンの優先順位をつけたファイルを管理しています。
その後、上位にランクインしたブロックチェーンとそのエコシステムについて、以下の技術的観点から詳細に検討します。
- アーキテクチャ、コンセンサスメカニズム、トランザクション速度、ブロックサイズ、その他独自の特徴などの詳細情報
- スマートコントラクトの対応状況、スクリプト言語、サポートされているトークン規格のドキュメント
- 外部サービスと連携するためのプロトコルやAPI
- サードパーティ製ツールやウォレット、関連サービスとの互換性
また、追加統合の目的や範囲も確認します。
- 統合の明確な目標やゴール
- 統合する具体的な機能やサービス
- カスタマイズ要件や特定のパラメータなど
パートI:ブロックチェーンネットワークの分析
リスト上位のトークンやチェーンを統合する前に、以下の点を徹底的に分析します。
リクエストされたネットワークは既存ネットワークのクローンか?
クローンのブロックチェーンネットワークとは、既存のブロックチェーンと同じコードベース・ルール・構造を持つ複製のことです。クローンを作成することで、既存プロジェクトの別バージョンを生み出すことができます。
たとえば、開発チームが成功したブロックチェーンをクローンし、一部のアルゴリズムやブロック時間、トークノミクスなどを変更して新しい暗号資産を作るケースもあります。
クローンの場合、統合作業は比較的スムーズに進みます。逆に、クローンでない場合は次の分析ステップに進みます。
署名アルゴリズムは何か?
署名アルゴリズムとは、デジタル署名を生成・検証するためのルールや手順のことです。デジタル署名は、トランザクションの真正性・完全性・否認防止を保証します。一般的な署名アルゴリズムの流れは以下の通りです。
- 鍵生成:秘密鍵と公開鍵のペアを生成します。秘密鍵は署名者のみが保持し、公開鍵は他者と共有します。
- 署名:秘密鍵を使い、署名対象メッセージから生成したハッシュ値に対して数学的な処理を行いデジタル署名を作成します。
- 検証:公開鍵を使って署名を検証します。受信したメッセージのハッシュ値に同様の演算を行い、署名と一致すれば正当性が確認されます。
- ハッシュ化:ハッシュ関数で入力(メッセージ)から固定長のハッシュ値を生成します。ハッシュは元データの一意な表現です。
- アルゴリズムパラメータ:鍵生成・署名・検証で用いる具体的な数学的アルゴリズムやパラメータを定義します。
標準的なアルゴリズムにはRSA(Rivest-Shamir-Adleman)、DSA(Digital Signature Algorithm)、ECDSA(Elliptic Curve Digital Signature Algorithm)、EdDSA(Edwards-curve Digital Signature Algorithm)などがあります。
ブロックチェーンで使われる暗号署名アルゴリズムはネットワークごとに異なります。Tangemカードがそのネットワークの署名アルゴリズムに対応していない場合は、統合できません。
ネットワークのノード・サービスAPIは?
ノードやAPI(Application Programming Interface)は、ネットワークの維持・トランザクション検証・外部アプリとの連携に不可欠な役割を果たします。
開発者が公開ノードやサービスAPIを提供している場合(特にEVM系ネットワークで多い)は、分散型ウォレットとの接続が容易になり、統合もしやすくなります。また、GetBlockなどのプレミアムノードプロバイダーが既に対応していれば、さらにスムーズです。
一方、新たなサービスへの加入や自前ノードの構築が必要な場合は、統合が複雑化します。信頼性を確保するため、各ネットワークで最低2社以上のノードプロバイダーと連携し、単一プロバイダー依存によるリスクを回避しています。
ノードとAPIの組み合わせにより、ネットワークの正常な稼働とアクセス性が保たれます。ノードは分散台帳の整合性を維持し、APIは開発者がブロックチェーンの機能を活用するアプリを構築するのに役立ちます。
ネットワークのドキュメントは十分か?
主要なブロックチェーンやトークンは、開発者・ユーザー・ノード運用者向けにAPIやコンセンサスメカニズム、スマートコントラクト、ノード設定、セキュリティガイド、アップグレード・移行手順などを網羅したドキュメントを公開しています。
この段階のドキュメント充実度によって、開発チームの作業負担が大きく変わります。残念ながら、ブロックチェーン技術はまだ新しく、すべてのWeb3プロジェクトで十分な技術ドキュメントを用意できる人材が揃っているわけではありません。
特に、ユーザーやスマートコントラクト開発者向けに作成されたドキュメントでは、署名用ハッシュ生成やAPI連携の詳細が省略・不十分なことも多く、その場合はTangem開発者が既存実装のコードを調査する必要があります。
利用可能なSDKやライブラリはあるか?
SDK(Software Development Kit)は、特定のソフトウェアやハードウェア、OS向けアプリ開発を可能にするツール群です。
SDKにはライブラリやドキュメント、サンプルコード、デバッガやエミュレータなどが含まれる場合もあります。
TangemアプリはiOSやAndroidなど特定OS向けのネイティブアプリのため、ほとんどの開発者が提供するSDKは利用できません。
また、JavaScript SDKなどマルチプラットフォーム向けのものも、コールドウォレットでは秘密鍵を外部に渡せないため適しません。Tangem Walletの秘密鍵はチップ内で生成・保管され、外部に出ることはありません。
ただし、適切なプログラミング言語のSDKがあれば、コードの一部やエンコード関数(アドレス計算・検証など)を活用し、必要に応じてカスタマイズすることも可能です。その場合でも、ライブラリ活用には時間がかかります。
ライブラリとは、他のプログラムが利用できる事前作成済みのコードやルーチン、関数群のことです。
独自の特徴を持つネットワークか?
一部のネットワークには、リザーブ(予備資産)や送金時にMEMO指定が必要など、特殊な仕様があります。その場合はTangemアプリのUI/UXを調整する必要があります。
また、手数料の計算方法が複雑なネットワークもあり、開発・サポートチーム間の連携やデザインチームによるUI調整が必要です。これらの工程は工数増加や期間延長につながります。
パートII:ブロックチェーンネットワークの統合
分析・承認後、開発チームが以下の手順で統合作業を進めます。
1. 適切なAPIの選定
適切なAPIを見つけたら、トランザクション作成に必要なデータが取得できるか確認します。トランザクションの詳細情報をまとめたデータ構造を作成し、認証用デジタル署名を付与し、ブロックチェーンごとの形式やルールに従います。
2. 公開鍵からアドレスをエンコード
公開鍵からアドレスをエンコードするとは、公開鍵を人が扱いやすいアドレス形式に変換することです。BitcoinではBase58、Ethereumでは16進数形式など、ネットワークごとにアドレスのエンコード方式が異なります。
3. APIから必要データ取得・トランザクション送信
既存の受信トランザクションに加え、送信トランザクションにも対応します。必要なデータは残高のほか、ブロックチェーンごとにUTXO、Nonce、最新ブロックのハッシュ、受取アカウントの有無などがあります。成功するトランザクションのため、これら重要パラメータを正確に取得し、細心の注意を払います。
- 残高:アカウントにある仮想通貨や資産の残高。十分な残高があるか確認します。
- UTXO(Unspent Transaction Output):過去トランザクションで未使用の暗号資産。新たな送金に利用できます。
- Nonce:各トランザクションに割り当てられる一意の番号。順序管理やリプレイ攻撃防止に使われます。
- 最新ブロックのハッシュ:直近ブロックのハッシュ値。トランザクションとブロックチェーン全体の履歴をつなげ、改ざんを防ぎます。
- 受取アカウントの状態:受取アカウントが作成済みか検証し、有効なアカウントか確認します。未作成や無効な場合の送金リスクを防ぎます。
4. トランザクションの組み立て
トランザクション組み立てとは、必要な情報やパラメータを集め、ブロックチェーン上で実行可能なトランザクションを作成することです。ブロックチェーンごとに異なりますが、一般的な流れは以下の通りです。
- APIやユーザー入力(受取アドレス、金額、手数料など)から未署名トランザクションを作成
- このトランザクションに署名するためのハッシュ値を計算し、Tangemカードに送信
- カードから署名が返却されたら、それをトランザクションに追加し、署名付きトランザクションをAPI経由で送信します。
テストネットでの入金・送金テスト
テストネットでアカウントに資金を入れ、送金テストを実施します。最初は失敗することも多く、トランザクションが「wrong signature algorithm」などの理由で拒否される場合もあります。
その際は、失敗したトランザクションと他の動作例を比較し、バイト単位で分析することもあります。
送金に成功したら、手数料計算を最終調整します。初期段階では固定手数料を設定することも多いです。
最終段階では、追加パラメータや特殊ケース(空アカウントへの送金、リザーブ対応など)にも対応します。
その後、デザインチームがアプリのバックエンドにネットワークやトークンのビジュアルを追加します。
パートIII:新ネットワーク対応アプリのテスト・リリース
この長い統合作業の仕上げとして、新機能を搭載したアプリの動作検証を徹底的に行います。テスト工程の概要は以下の通りです。
ユニットテスト
個々の機能(特に新規ブロックチェーン統合部分)が単体で正しく動作するかを徹底的に検証します。
統合テスト
ウォレットがブロックチェーンと正しく通信し、トランザクションの署名やデータ処理ができるかを確認します。Android・iOS両方で新ネットワーク対応アプリが正常に動作するかもテストし、セキュリティ面の脆弱性もチェックします。
ユーザー受け入れテスト(UAT)
大きな新機能を含む場合は、選ばれたユーザーやテストチームによるUATを実施し、実際の使い勝手や見落としがちな不具合を確認します。
バグ修正・アプリストア公開
テストで発見した不具合やフィードバックを修正し、開発・マーケティング・サポートチームでリリース準備を進めます。最終的にGoogle Playストア(Android)やApple App Store(iOS)にアップデートを公開し、皆様にご利用いただけるようになります。
まとめ
ネットワークやトークンの統合プロセスと、その裏側で資産の安全性や使いやすさを重視していることをお伝えできれば幸いです。
Tangem Walletは現在30以上のブロックチェーンネットワークと数千種類のコイン・トークンに対応しており、開発・サポート体制の拡充とともに毎月対応数が増えています。技術面だけでなく、使いやすさやアクセス性も重視した統合戦略を徹底しています。
大切な仮想通貨の管理・保管にTangem Walletをお選びいただき、誠にありがとうございます。今後も安心してご利用ください。