# Bitroot 開発者ガイド

Bitroot は 100% EVM 互換のチェーンです。つまり、すでにお使いのイーサリアム向けツール——ウォレット、SDK、コントラクトフレームワーク——は、ほぼそのまま利用できます。ネットワーク設定を Bitroot のパラメータに向けるだけです。本ガイドでは、ネットワークへの接続、コントラクトのデプロイとデバッグ、そして3つのエンジン・アーキテクチャのうち開発者向けの部分の使い方を説明します。

## 1. 概要

本ガイド全体で繰り返し参照することになる、いくつかの入口を挙げます。

- **ブロックエクスプローラー（BRTSCAN）**: <https://devnet.bitroot.co/overview> — ブロック、トランザクション、コントラクトの状態を確認できます。また、現在の RPC URL と Chain ID の正式な情報源でもあります。これらはネットワークの進化に伴って変わりうるため、他の場所に記載された値（本ページの古い版を含む）は古くなっている可能性があるものとして扱ってください。
- **テストネットフォーセット**: <https://devnet.bitroot.co/faucet> — コントラクトのデプロイとデバッグに使えるテストネット BRT を無料で受け取れます。
- **ブリッジ**: <https://bridge.bitroot.co/> — 資産を出し入れできます。
- **プロトコルリポジトリ**: <https://github.com/brt-chain/bitroot> — ノードのセットアップ、プロトコル実装の詳細、AI エージェント呼び出しインターフェースの正確な ABI はここにあります。

最も一般的な作業向けの、より短いステップバイステップガイド:

- [MetaMask に Bitroot を追加する: RPC URL と Chain ID](/ja/developers/add-network)
- [フォーセットからテスト BRT を入手する](/ja/developers/testnet-faucet)
- [Hardhat、Foundry、Remix でスマートコントラクトをデプロイする](/ja/developers/deploy-contract)

## 2. Bitroot ネットワークへの接続

Bitroot は標準的な JSON-RPC を話すため、カスタム EVM ネットワークに対応したウォレット（MetaMask、Rabby、OKX Wallet など）であれば直接追加できます。ここでは MetaMask を例に説明します。

1. MetaMask を開き、ネットワークセレクター →「Add network」→「Add a network manually」をクリックします。
2. BRTSCAN（<https://devnet.bitroot.co/overview>）を開きます。ページのヘッダーまたはネットワーク情報パネルに、現在の**ネットワーク名、RPC URL、Chain ID、通貨シンボル、ブロックエクスプローラー URL** が表示されています。これらの値を、表示されているとおりに MetaMask のフォームへ入力してください。
3. 保存して Bitroot ネットワークに切り替えます。アカウントの残高が表示されるはずです（フォーセットからテストネットトークンを受け取るまでは 0 BRT で問題ありません）。

> 本ページでは、あえて RPC URL や Chain ID を固定していません。テストネットのパラメータはアップグレードのたびに変わりうるため、古い固定値は正しいネットワークへの接続を助けるよりも、誤ったネットワークに接続させてしまう恐れのほうが大きいからです。常に BRTSCAN が現在表示している値を使用してください。

## 3. テストネットトークンの取得

フォーセット（<https://devnet.bitroot.co/faucet>）にアクセスし、ウォレットアドレスを送信すると、コントラクトのデプロイやガス代の支払いに使えるテストネット BRT を受け取れます。平均的なガス代は約 $0.00007 なので、少量のフォーセット請求でも開発中の多数のデプロイと呼び出しをまかなえるのが一般的です。

## 4. スマートコントラクト開発：使い慣れたツールをそのまま活用する

Bitroot は 100% EVM 互換なので、以下はいずれもアダプター層を必要としません。ネットワーク設定を Bitroot に向けるだけです。

**Hardhat**（`hardhat.config.js`）:

```js
module.exports = {
  solidity: "0.8.24",
  networks: {
    bitrootTestnet: {
      url: process.env.BITROOT_RPC_URL, // get the current RPC URL from BRTSCAN
      chainId: Number(process.env.BITROOT_CHAIN_ID), // get the current Chain ID from BRTSCAN
      accounts: [process.env.DEPLOYER_PRIVATE_KEY],
    },
  },
};
```

**Foundry**（`foundry.toml` と環境変数）:

```toml
[rpc_endpoints]
bitroot_testnet = "${BITROOT_RPC_URL}"
```

デプロイは他の EVM チェーンとまったく同じように動作します。

```bash
forge create src/MyContract.sol:MyContract \
  --rpc-url $BITROOT_RPC_URL \
  --private-key $DEPLOYER_PRIVATE_KEY
```

**Remix**: 「Deploy & Run」パネルで「Injected Provider - MetaMask」を選択します。MetaMask が Bitroot に接続されていれば、コンパイル、デプロイ、コントラクト呼び出しはイーサリアムメインネットに対する場合とまったく同じように動作します。

## 5. ethers.js / viem からネットワークを操作する

```ts
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider(process.env.BITROOT_RPC_URL);
const wallet = new ethers.Wallet(process.env.DEPLOYER_PRIVATE_KEY!, provider);

const balance = await provider.getBalance(wallet.address);
console.log(`Balance: ${ethers.formatEther(balance)} BRT`);
```

並列化されたインテリジェント実行エンジンは、互いにコンフリクトしないトランザクションを同時に実行するため、独立したトランザクションのバッチ（エアドロップ、一括ミントなど）を、1件ずつ確認を待って手動で直列化することなく安全に送信できます。どのトランザクションを並列実行できるかは、ネットワーク側が自動的に判断します。

## 6. ブロックエクスプローラーとコントラクトの検証

コントラクトをデプロイしたら、BRTSCAN でソースコードを検証してください。これにより、あなた自身や他のユーザーがコントラクトの挙動を確認でき、デバッグ中にエクスプローラーから直接読み取り専用メソッドを呼び出せるようになります。検証の手順と必須項目は、BRTSCAN のページに表示されているとおりに進めてください。

## 7. AI ネイティブ EVM の利用

Bitroot と通常の EVM チェーンとの最大の違いは、組み込みの AI エージェント呼び出しインターフェースです。スマートコントラクトから、別途オラクルやオフチェーンリレーを介することなく、AI モデルの推論を直接呼び出せます。この領域は今も急速に進化しているため、**正確なコントラクトインターフェース、プリコンパイルアドレス、ABI はプロトコルリポジトリ（<https://github.com/brt-chain/bitroot>）にあります**。古くなる可能性のあるシグネチャをここに重複して記載することはしません。概念的には、Solidity から直接 `call` できる「AI 推論プリコンパイル」のようなものだと考えてください。入力と出力はゼロ知識検証可能な監査レイヤーを通じて記録されるため、推論結果は、基盤となるモデルの重みを公開することなく、オンチェーンまたはオフチェーンの第三者によって検証できます。

## 8. セキュリティとベストプラクティス

- **鍵の管理**: テストネットでのデバッグであれば平文の `.env` ファイルでも問題ありませんが、本番デプロイではハードウェアウォレットや MPC ベースのカストディ構成を使用してください。秘密鍵をリポジトリにハードコードしてはいけません。
- **コントラクト監査**: ゼロ知識検証可能な監査レイヤーは、あなた自身のコントラクトロジックの監査を代替するものではありません。このレイヤーが保証するのは、ある計算とその結果が信頼できるということであり、ビジネスロジックにバグがないかどうかまでは教えてくれません。
- **ガス見積もり**: ガス代はイーサリアムメインネットよりはるかに低いものの、本番でのバッチ処理ではガス見積もりを一度通しておく価値があります。トランザクションごとのガスリミットが低すぎると、一部だけが失敗する原因になります。
- **ネットワークパラメータの確認**: 実行時に Chain ID を検証し（`provider.getNetwork()` と比較するなど）、設定ファイルのタイプミスによってデプロイ先が気づかないうちに別のチェーンになることを防いでください。

## 9. FAQ

**既存のイーサリアムコントラクトをそのまま Bitroot にデプロイできますか？**
ほとんどの場合は可能です。イーサリアム固有のプリコンパイルアドレスを前提としていない標準的な Solidity コントラクトであれば、コードを変更せずにコンパイルおよびデプロイできます。

**テストネットとメインネットは同じネットワークパラメータを共有していますか？**
いいえ。対象としている環境を必ず BRTSCAN で確認してください。RPC URL と Chain ID は、テストネットと将来のメインネットで異なります。

**AI ネイティブ EVM モジュールの呼び出しに追加手数料はかかりますか？**
正確な手数料モデルはプロトコルリポジトリと公式アナウンスで定義されています。本ページではどちらとも断定しません。

## 10. リソース

| リソース | リンク |
| --- | --- |
| ブロックエクスプローラー（BRTSCAN） | <https://devnet.bitroot.co/overview> |
| テストネットフォーセット | <https://devnet.bitroot.co/faucet> |
| ブリッジ | <https://bridge.bitroot.co/> |
| プロトコルリポジトリ | <https://github.com/brt-chain/bitroot> |
| テクニカルホワイトペーパー | 本サイトの Research → Whitepaper |

本ガイドで扱っていない問題に直面した場合は、メディアお問い合わせページまたはコミュニティチャンネルからご連絡ください。
