Intégrer GENY sur Base.
La surface pratique pour les applications qui doivent lire les soldes GENY, préparer des transferts, vérifier le réseau et guider les utilisateurs dans l’onboarding portefeuille.
Constantes de production
| Réseau | Base Mainnet |
|---|---|
| Chain ID | 8453 · 0x2105 |
| Jeton de gas natif | ETH |
| Symbole du jeton | GENY |
| Décimales | 18 |
| Contrat | 0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B |
Lire un solde
GENY utilise l’interface standard de solde ERC-20. Associez toujours la requête à Base Mainnet et formatez l’entier retourné avec 18 décimales.
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);Préparer un transfert
Un transfert est une transaction ERC-20 autorisée par le portefeuille. Ne demandez ni ne manipulez jamais la phrase de récupération ou la clé privée d’un utilisateur.
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();Avant d’activer une action d’écriture, vérifiez que la chaîne connectée est Base Mainnet (8453) et affichez à l’utilisateur l’adresse complète de destination.
Onboarding portefeuille
Détecter un portefeuille injecté ou EIP-6963
Préférez le portefeuille et le provider déjà choisis par l’utilisateur plutôt que d’en sélectionner un silencieusement.
Demander Base Mainnet
Utilisation wallet_switchEthereumChain with 0x2105. Ne passez à wallet_addEthereumChain que lorsque le portefeuille indique que la chaîne est inconnue.
Proposer l’import du jeton
wallet_watchAsset peut proposer GENY aux portefeuilles compatibles, mais une voie manuelle par adresse de contrat doit toujours rester disponible.
Vérifier indépendamment
Orientez les utilisateurs vers BaseScan et encouragez la vérification de l’adresse du contrat avant toute opération déplaçant de la valeur.
Règles d’intégration
- Considérez l’adresse du contrat comme identifiant principal du jeton ; noms, symboles et logos sont des métadonnées d’affichage.
- Ne demandez jamais de seed phrase ni de clé privée.
- Affichez la chaîne active et la destination avant la signature.
- Attendez les reçus de transaction lorsque l’état de l’application dépend de la confirmation.
- N’inférez pas les soldes depuis un état UI en cache ; lisez-les depuis la chaîne ou un indexeur de confiance.