المتطلبات
- محفظة EVM على Base يتحكم بها الوكيل (مفتاح خاص في متغير بيئة أو مدير أسرار).
- كمية صغيرة من ETH على Base للـ gas (الـ staking يتطلب معاملتين:
approveثمstake). - أي كمية غير صفرية من VVV للـ stake. تتطلب endpoint الإصدار فقط أن يكون لدى المحفظة رصيد sVVV غير صفري، لذا VVV واحد يكفي لإصدار مفتاح. راجع الدفع للاستدلال لمعرفة ما تحتاجه لاستدعاء endpoints مدفوعة فعليًا.
الخطوات
قم بـ stake لـ VVV مع Venice
قم بـ stake لـ VVV في Venice Staking Smart Contract عند 
عندما تؤكَّد المعاملة الثانية، ينخفض رصيد VVV للمحفظة ويزداد رصيد sVVV الخاص بها بنفس المقدار. تقرأ endpoint الإصدار رصيد sVVV لتأكيد أن المحفظة قد قامت بـ stake.
0x321b7ff75154472B18EDb199033fF4D116F340Ff. هذه معاملتان:approve(spender, amount)على token VVV، حيثspenderهو عقد الـ staking.stake(amount)على عقد الـ staking.

اطلب token تحقق
استدعِ تحتوي الاستجابة على حقل
GET /api/v1/api_keys/generate_web3_key للحصول على token قصير الأمد موقّع من Venice. الـ endpoint غير مُصادَقة.token. ينتهي الـ token بعد 15 دقيقة من إصداره، لذا وقّعه وأرسله قبل ذلك بكثير.وقّع الـ token بمحفظة الـ staking
وقّع سلسلة الـ token الخام بالمحفظة التي تحمل VVV المُكدَّس. هذا
personal_sign قياسي على بايتات الـ token. كلا ethers.Wallet.signMessage(token) و account.signMessage({ message: token }) من viem يُنتجان التوقيع الصحيح.أصدر مفتاح API
POST العنوان والتوقيع والـ token إلى نفس الـ endpoint، بالإضافة إلى نوع المفتاح الذي تريده.address و signature و token و apiKeyType (INFERENCE أو ADMIN).الحقول الاختيارية: description و expiresAt و consumptionLimit (يحد من إجمالي الإنفاق على هذا المفتاح، بالعملة usd أو vcu أو diem).عند النجاح، تحتوي الاستجابة على سلسلة apiKey المُصدَرة. خزّنها في مخزن أسرار الوكيل واستخدمها كـ Bearer token عادي (Authorization: Bearer <key>).مثال شامل
يستخدم المثال أدناه محفظة حقيقية من متغير بيئة بدلًا من محفظة مُولَّدة عشوائيًا. المحفظة العشوائية ليس لديها VVV مُكدَّس وسيتم رفض الإصدار بخطأWallet has no staked VVV on Base.
مرجع الأخطاء
تُعيد الـ endpoint رسائل خطأ محددة وقابلة للتنفيذ. عيّن هذه في الوكيل حتى يتمكن من تقرير ما إذا كان سيعيد المحاولة أم يطلب token جديدًا أم يتوقف.| الحالة | تحتوي رسالة الخطأ | ما يعنيه | ما يجب فعله |
|---|---|---|---|
400 | Invalid wallet address | حقل address ليس عنوان EVM صالحًا. | صحّح العنوان وأعد الإرسال. |
400 | JWT has expired | انتهى صلاحية token التحقق قبل أن توقّعه وترسله. | اطلب token جديدًا، ووقّعه، وأرسله فورًا. |
400 | JWT signature is invalid | لم يتم توقيع الـ token من قِبَل Venice (على الأرجح تم العبث به أو تلفيقه). | استخدم دائمًا token جديدًا من endpoint GET. |
400 | JWT claims are invalid | مُصدر الـ token أو الجمهور لا يتطابق مع ما تتوقعه Venice. | استخدم الـ token غير المعدَّل المُعاد من endpoint GET. |
400 | JWT is malformed | الـ token المُرسَل ليس JWT. | تأكد من أنك ترسل سلسلة الـ token بالضبط المُعادة من endpoint GET. |
400 | Wallet signature does not match | الـ signature لا يطابق address للـ token المُعطى. | وقّع بايتات الـ token الخام بالمحفظة التي تملك address. |
400 | Could not verify wallet signature | فشل استدعاء RPC للتحقق من التوقيع (مؤقت). | أعد المحاولة مع backoff. |
400 | Wallet has no staked VVV on Base | المحفظة لديها رصيد sVVV صفر. | قم بـ stake لـ VVV أولًا، ثم أعد المحاولة. |
الدفع للاستدلال
إصدار مفتاح والقدرة على استدعاء endpoints مدفوعة به شيئان منفصلان. المفتاح المُصدَر حديثًا يصادق بشكل صحيح لكنه لا يستطيع استدعاء endpoints مدفوعة (مثل/chat/completions) حتى يكون لدى حساب المحفظة رصيد قابل للإنفاق.
يمكن للمفتاح المُصدَر الإنفاق من حساب المستخدم بترتيب الأولوية هذا: DIEM، ثم الاعتمادات المُجمَّعة، ثم الدولار الأمريكي.
| مصدر التمويل | مستقل؟ | كيف |
|---|---|---|
| DIEM من VVV staking | نعم | حصة DIEM اليومية للمحفظة تتناسب مع حصتها في تجمع الـ staking. يحتاج الحساب إلى 0.1 على الأقل من DIEM المُكدَّسة ليكون أي DIEM قابلًا للإنفاق. الـ stakes الأكبر تكسب DIEM يومية أكثر بشكل متناسب، تُحدَّث كل epoch (00:00 UTC). |
| USD عبر Stripe | لا (متصفح) | سجّل الدخول إلى venice.ai بنفس المحفظة (Sign-In-With-Ethereum). تجد اللوحة سجل المستخدم الموجود. أضف اعتمادات في Settings، API. |
| اشتراك Coinbase crypto | لا (متصفح) | تسجيل دخول بنفس المحفظة، ثم اشترك عبر اللوحة. يعيد التدفق التوجيه إلى Coinbase Commerce للدفع الفعلي، لذا لا يمكن تشغيله من سكريبت. |
| Coinbase onramp | لا (متصفح) | تسجيل دخول بنفس المحفظة، ثم استخدم widget onramp في اللوحة. مُستضاف على واجهة Coinbase. |
- قم بـ stake لمزيد من VVV بحيث تغطي حصة DIEM اليومية إنفاق الوكيل. يلتقط المفتاح المُصدَر هذا تلقائيًا.
- استخدم تدفق محفظة x402 بدلًا من مفتاح API. مع x402 يوقّع الوكيل رسالة Sign-In-With-X لكل طلب، ويشحن مباشرة بـ USDC على Base أو Solana عبر
POST /api/v1/x402/top-up، ويدفع لكل طلب. رصيد x402 USDC مرتبط بالمحفظة وليس بالمستخدم، لذا فهو لا يظهر كرصيد لمفتاح Bearer المُصدَر، لكنه يسمح لنفس المحفظة بدفع الاستدلال برمجيًا.
موارد ذات صلة
Crypto والوكلاء
استخدم Venice كموفّر للنموذج وكطبقة RPC للبلوكشين معًا للوكلاء المستقلين.
مصادقة محفظة x402
ادفع لكل طلب بـ USDC على Base أو Solana، دون الحاجة إلى مفتاح API.
Endpoint إنشاء مفتاح Web3 API
مرجع endpoint لـ endpoint الإصدار.
دليل مفتاح API القياسي
للمستخدمين الذين يفضلون إصدار مفتاح من اللوحة.