GENY を Base に統合する。
GENY balance の読み取り、transfer の準備、network の検証、wallet onboarding の案内を必要とするアプリケーション向けの実践的なインターフェースです。
プロダクション定数
| ネットワーク | Base Mainnet |
|---|---|
| Chain ID | 8453 · 0x2105 |
| Native gas token | ETH |
| Token symbol | GENY |
| 小数桁 | 18 |
| コントラクト | 0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B |
残高を読む
GENY は標準 ERC-20 の balance interface を使用します。リクエストは常に Base Mainnet に固定し、返却された整数を 18 decimals でフォーマットしてください。
import { JsonRpcProvider, Contract, formatUnits } from "ethers";
const provider = new JsonRpcProvider("https://mainnet.base.org");
const token = new Contract(
"0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B",
["function balanceOf(address) view returns (uint256)"],
provider
);
const raw = await token.balanceOf(userAddress);
const balance = formatUnits(raw, 18);transfer を準備する
transfer はウォレットで承認される ERC-20 transaction です。ユーザーの recovery phrase や private key を要求・処理しないでください。
import { BrowserProvider, Contract, parseUnits } from "ethers";
const provider = new BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
const token = new Contract(
"0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B",
["function transfer(address,uint256) returns (bool)"],
signer
);
const tx = await token.transfer(recipient, parseUnits("12.5", 18));
await tx.wait();ネットワーク確認
write 操作を有効にする前に、接続チェーンが Base Mainnet (8453) であることを確認し、完全な宛先アドレスをユーザーに表示してください。
Wallet onboarding
01
injected または EIP-6963 wallet を検出
暗黙に選択せず、ユーザーが既に選んでいる wallet と provider を優先してください。
02
Base Mainnet を要求
用途 wallet_switchEthereumChain with 0x2105. 次の値へのフォールバックは wallet_addEthereumChain wallet が chain 未知を返した場合だけにしてください。
03
token import を案内
wallet_watchAsset 対応 wallet に GENY を提案できますが、contract address を使う手動経路は常に残してください。
04
独立して検証する
ユーザーを BaseScan に案内し、価値を移動する操作の前に contract address の検証を促してください。
統合ルール
- contract address を主たる token identifier として扱い、名称・symbol・logo は表示用 metadata とみなしてください。
- seed phrase や private key を要求しないでください。
- 署名前に active chain と destination を表示してください。
- アプリケーション状態が確認に依存する場合は transaction receipt を待ってください。
- cache された UI state から balance を推測せず、chain または信頼できる indexer から読み取ってください。