Genyleap/Docs
GENY Token / 开发

在 Base 上集成 GENY。

面向需要读取 GENY balance、准备 transfer、验证网络并引导用户完成 wallet onboarding 的应用。

生产常量

网络Base Mainnet
Chain ID8453 · 0x2105
Native gas tokenETH
Token symbolGENY
小数位18
合约0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B

读取余额

GENY 使用标准 ERC-20 balance surface。始终将请求绑定到 Base Mainnet,并按 18 位 decimals 格式化返回的整数。

ethers v6余额
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。

ethers v6transfer
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();
网络检查

启用写操作前,请确认已连接的 chain 是 Base Mainnet(8453),并向用户显示完整的目标地址。

Wallet onboarding

01

检测 injected 或 EIP-6963 wallet

优先使用用户已有的钱包与 provider 选择,不要静默替用户做决定。

02

请求 Base Mainnet

用途 wallet_switchEthereumChain with 0x2105. 仅在必要时回退到 wallet_addEthereumChain ,并且只在 wallet 报告 chain 未知时使用。

03

提供 token 导入

wallet_watchAsset 可以向兼容 wallet 建议 GENY,但通过 contract address 的手动路径应始终可用。

04

独立验证

将用户链接到 BaseScan,并在任何价值转移操作前鼓励其验证 contract address。

集成规则

  • 将 contract address 视为 token 的主要标识;名称、符号与 logo 只是显示 metadata。
  • 绝不要索取 seed phrase 或 private key。
  • 签名前显示 active chain 与 destination。
  • 当应用状态依赖确认时,等待 transaction receipt。
  • 不要从缓存的 UI state 推断 balance;应从 chain 或可信 indexer 读取。