GENY را روی Base یکپارچه کنید.
سطح عملیاتی برای برنامههایی که باید موجودی GENY را بخوانند، انتقال آماده کنند، شبکه را اعتبارسنجی کنند و کاربر را در راهاندازی کیف پول هدایت کنند.
ثابتهای محیط عملیاتی
| شبکه | Base Mainnet |
|---|---|
| Chain ID | 8453 · 0x2105 |
| توکن gas بومی | ETH |
| نماد توکن | GENY |
| اعشار | 18 |
| قرارداد | 0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B |
دریافت قیمت BTC، ETH و GENY
جنیلیپ یک endpoint محافظتشده برای قیمت ارائه میکند که BTC، ETH و GENY را با هم برمیگرداند. دسترسی شخصی است و به هویت OpenProof شما متصل است.
پیش از ساخت توکن Bearer، دسترسی توسعهدهنده API برای حساب جنیلیپ شما باید توسط ادمین فعال شود. پس از تأیید، وارد حساب ← APIها شوید تا توکن خود را بسازید یا تعویض کنید. اگر دسترسی فعال نیست، با [email protected] تماس بگیرید و توضیح دهید چه چیزی میسازید، به کدام API نیاز دارید و حجم تقریبی درخواستها چقدر است.
| آدرس API | GET https://api.genyleap.com/v1/prices |
|---|---|
| احراز هویت | Authorization: Bearer <YOUR_TOKEN> |
| داراییها | BTC · ETH · GENY |
| منبع | جفتهای Base از طریق Dexscreener |
| روش تطبیق | تطبیق بر اساس symbol توکن؛ هرگز بر اساس جایگاه در آرایه پاسخ |
curl -H "Authorization: Bearer <YOUR_TOKEN>" \ https://api.genyleap.com/v1/prices
const response = await fetch("https://api.genyleap.com/v1/prices", {
headers: {
Authorization: `Bearer ${process.env.GENYLEAP_API_TOKEN}`
}
});
if (!response.ok) {
throw new Error(`Genyleap API returned ${response.status}`);
}
const prices = await response.json();
console.log(prices.GENY.usd);{
"BTC": { "usd": 85703.46, "change24h": 0.38 },
"ETH": { "usd": 2707.72, "change24h": 0.28 },
"GENY": { "usd": 0.001266, "change24h": -0.42 },
"meta": {
"source": "dexscreener",
"chain": "base",
"fetchedAt": "2026-10-06T14:30:00+00:00"
}
}توکنهای Bearer را سمت سرور یا در یک محیط اجرای مورد اعتماد نگه دارید. توکن شخصی را در JavaScript عمومی سمت کاربر، کد commitشده، اسکرینشات یا لاگها قرار ندهید. اگر فکر میکنید توکن افشا شده، آن را از حساب ← APIها تعویض کنید.
خواندن موجودی
GENY از سطح استاندارد موجودی ERC-20 استفاده میکند. درخواست را همیشه به Base Mainnet محدود کنید و عدد صحیح بازگشتی را با ۱۸ رقم اعشار قالببندی کنید.
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);آمادهسازی انتقال
انتقال یک تراکنش ERC-20 است که توسط کیف پول تأیید میشود. هرگز عبارت بازیابی یا کلید خصوصی کاربر را درخواست یا پردازش نکنید.
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();پیش از فعالکردن عملیات نوشتن، بررسی کنید زنجیرهٔ متصل Base Mainnet باشد (8453) و آدرس کامل مقصد را به کاربر نشان دهید.
راهاندازی کیف پول
کیف پول injected یا EIP-6963 را شناسایی کنید
بهجای انتخاب پنهانی، انتخاب فعلی کیف پول و provider کاربر را در اولویت قرار دهید.
Base Mainnet را درخواست کنید
از wallet_switchEthereumChain with 0x2105. فقط زمانی به wallet_addEthereumChain برگردید که کیف پول اعلام کند زنجیره ناشناخته است.
پیشنهاد افزودن توکن
wallet_watchAsset میتواند GENY را به کیف پولهای سازگار پیشنهاد دهد، اما مسیر دستی مبتنی بر آدرس قرارداد باید همیشه در دسترس بماند.
بهصورت مستقل اعتبارسنجی کنید
کاربران را به BaseScan هدایت کنید و پیش از هر عملیات انتقال ارزش، بررسی آدرس قرارداد را توصیه کنید.
قواعد یکپارچهسازی
- آدرس قرارداد را شناسهٔ اصلی توکن در نظر بگیرید؛ نام، نماد و لوگو فقط metadata نمایشی هستند.
- هرگز seed phrase یا کلید خصوصی درخواست نکنید.
- پیش از امضا، زنجیرهٔ فعال و مقصد را بهوضوح نمایش دهید.
- اگر وضعیت برنامه به تأیید وابسته است، منتظر receipt تراکنش بمانید.
- موجودی را از وضعیت cacheشدهٔ UI استنتاج نکنید؛ آن را از زنجیره یا indexer قابلاعتماد بخوانید.