Genyleap/Docs
GENY Token / Develop

Integrate GENY on Base.

The practical surface for applications that need to read GENY balances, prepare transfers, verify the network and guide users through wallet onboarding.

Production constants

NetworkBase Mainnet
Chain ID8453 · 0x2105
Native gas tokenETH
Token symbolGENY
Decimals18
Contract0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B

Read a balance

GENY uses the standard ERC-20 balance surface. Always bind the request to Base Mainnet and format the returned integer using 18 decimals.

ethers v6balance
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);

Prepare a transfer

A transfer is a wallet-authorized ERC-20 transaction. Do not request or handle a user's recovery phrase or 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();
Network check

Before enabling a write action, verify the connected chain is Base Mainnet (8453) and show the full destination address to the user.

Wallet onboarding

01

Detect an injected or EIP-6963 wallet

Prefer the user's existing wallet and provider choice instead of silently selecting one.

02

Request Base Mainnet

Use wallet_switchEthereumChain with 0x2105. Only fall back to wallet_addEthereumChain when the wallet reports the chain is unknown.

03

Offer token import

wallet_watchAsset can suggest GENY to compatible wallets, but a manual contract-address path should always remain available.

04

Verify independently

Link users to BaseScan and encourage contract-address verification before any value-moving action.

Integration rules

  • Treat the contract address as the primary token identifier; names, symbols and logos are display metadata.
  • Never ask for a seed phrase or private key.
  • Surface the active chain and destination before signing.
  • Wait for transaction receipts when the application state depends on confirmation.
  • Do not infer balances from cached UI state; read from chain or a trusted indexer.