ادمج GENY على Base.
الواجهة العملية للتطبيقات التي تحتاج إلى قراءة أرصدة GENY وتجهيز التحويلات والتحقق من الشبكة وإرشاد المستخدمين أثناء إعداد المحافظ.
ثوابت الإنتاج
| الشبكة | Base Mainnet |
|---|---|
| Chain ID | 8453 · 0x2105 |
| رمز gas الأصلي | ETH |
| رمز التوكن | GENY |
| المنازل العشرية | 18 |
| العقد | 0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B |
الحصول على أسعار BTC وETH وGENY
يوفّر Genyleap نقطة نهاية محمية للأسعار تعيد BTC وETH وGENY معًا. الوصول شخصي ومرتبط بهوية OpenProof الخاصة بك.
يجب أن يفعّل مسؤول وصول المطور إلى API لحساب Genyleap الخاص بك قبل إنشاء رمز Bearer. بعد الموافقة، افتح الحساب ← واجهات API لإنشاء الرمز أو تدويره. إذا لم يكن الوصول مفعّلًا، فتواصل مع [email protected] واشرح ما الذي تبنيه، وأي API تحتاج إليه، وحجم الطلبات المتوقع.
| نقطة النهاية | GET https://api.genyleap.com/v1/prices |
|---|---|
| المصادقة | Authorization: Bearer <YOUR_TOKEN> |
| الأصول | BTC · ETH · GENY |
| المصدر | أزواج Base عبر Dexscreener |
| المطابقة | المطابقة حسب رمز token، وليس حسب موضع العنصر في مصفوفة الاستجابة |
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 عام على جهة العميل أو في الشيفرة المودعة أو لقطات الشاشة أو السجلات. قم بتدوير الرمز من الحساب ← واجهات API إذا كنت تعتقد أنه انكشف.
قراءة الرصيد
يستخدم GENY واجهة الرصيد القياسية لـ ERC-20. اربط الطلب دائمًا بـ Base Mainnet ونسّق العدد الصحيح الناتج باستخدام 18 منزلة عشرية.
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
فضّل اختيار المستخدم الحالي للمحفظة والمزوّد بدل اختيار واحد بصمت.
اطلب Base Mainnet
الاستخدام wallet_switchEthereumChain with 0x2105. انتقل فقط إلى wallet_addEthereumChain عندما تبلغ المحفظة أن السلسلة غير معروفة.
اعرض استيراد الرمز
wallet_watchAsset يمكنه اقتراح GENY للمحافظ المتوافقة، لكن يجب أن يبقى المسار اليدوي عبر عنوان العقد متاحًا دائمًا.
تحقق بشكل مستقل
وجّه المستخدمين إلى BaseScan وشجّع التحقق من عنوان العقد قبل أي عملية تنقل قيمة.
قواعد التكامل
- اعتبر عنوان العقد هو المعرّف الأساسي للرمز؛ الأسماء والرموز والشعارات بيانات عرض.
- لا تطلب أبدًا seed phrase أو مفتاحًا خاصًا.
- اعرض السلسلة النشطة والوجهة قبل التوقيع.
- انتظر إيصالات المعاملات عندما تعتمد حالة التطبيق على التأكيد.
- لا تستنتج الأرصدة من حالة UI مخزنة؛ اقرأها من السلسلة أو من indexer موثوق.