المتطلبات
- محفظة EVM على Base يتحكم بها الوكيل (مفتاح خاص في متغير بيئة أو مدير أسرار).
- كمية صغيرة من ETH على Base للـ gas (الـ staking يتطلب معاملتين:
approveثمstake). - أي كمية غير صفرية من VVV للـ stake. تتطلب endpoint الإصدار فقط أن يكون لدى المحفظة رصيد sVVV غير صفري، لذا VVV واحد يكفي لإصدار مفتاح. راجع الدفع للاستدلال لمعرفة ما تحتاجه لاستدعاء endpoints مدفوعة فعليًا.
الخطوات
1
2
قم بـ 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.

3
اطلب رسالة تحدٍّ للمحفظة
استدعِ تحتوي الاستجابة على تنتهي صلاحية رسالة التحدي بعد 15 دقيقة من إصدارها وهي للاستخدام مرة واحدة — تُستهلك عند إصدار أول مفتاح بها. اطلب رسالة جديدة لكل مفتاح.
GET /api/v1/api_keys/generate_web3_key?address=<wallet address> للحصول على رسالة تحدٍّ EIP-4361 (Sign-In with Ethereum) قصيرة الأمد. الـ endpoint غير مُصادَقة، لكن رسالة التحدي مرتبطة بالعنوان الذي ترسله ولا يمكن استخدامها إلا بتلك المحفظة.message و nonce و expiresAt:4
وقّع رسالة التحدي بمحفظة الـ staking
وقّع سلسلة
message كما هي بالمحفظة التي تحمل VVV المُكدَّس. هذا personal_sign قياسي. كلا ethers.Wallet.signMessage(message) و account.signMessage({ message }) من viem يُنتجان التوقيع الصحيح.لا تُعِد تنسيق الرسالة أو تغيير أسطرها أو توليدها من جديد. تتحقق Venice من التوقيع على البايتات نفسها التي أصدرتها، وتعيد فحص domain و URI و Chain ID ونص البيان والعنوان داخلها بشكل مستقل.5
أصدر مفتاح API
POST العنوان والتوقيع ورسالة التحدي إلى نفس الـ endpoint، بالإضافة إلى نوع المفتاح الذي تريده.address و signature و message و apiKeyType (INFERENCE أو ADMIN).الحقول الاختيارية: description و expiresAt و consumptionLimit (يحد من إجمالي الإنفاق على هذا المفتاح، بالعملة usd أو vcu أو diem).عند النجاح، تحتوي الاستجابة على سلسلة apiKey المُصدَرة. خزّنها في مخزن أسرار الوكيل واستخدمها كـ Bearer token عادي (Authorization: Bearer <key>).مثال شامل
يستخدم المثال أدناه محفظة حقيقية من متغير بيئة بدلًا من محفظة مُولَّدة عشوائيًا. المحفظة العشوائية ليس لديها VVV مُكدَّس وسيتم رفض الإصدار بخطأWallet has no staked VVV on Base.
مرجع الأخطاء
تُعيد الـ endpoint رسائل خطأ محددة وقابلة للتنفيذ. عيّن هذه في الوكيل حتى يتمكن من تقرير ما إذا كان سيعيد المحاولة أم يطلب رسالة تحدٍّ جديدة أم يتوقف.لماذا ترتبط رسالة التحدي بالمحفظة وتُستخدم مرة واحدة
رسالة التحدي هي رسالة EIP-4361 مقروءة للبشر وليست token غامضًا، وتوفّر ثلاث حمايات مهمة إذا طُلب يومًا من محفظة توقيع واحدة خارج وكيلك الخاص:- الارتباط بالعنوان. تذكر رسالة التحدي المحفظة التي صدرت لها. لا يمكن لمحفظة أخرى توقيع رسالة تحدٍّ حصل عليها طرف مختلف واستخدامها.
- nonce للاستخدام مرة واحدة. تتتبع Venice الـ nonce على الخادم وتستهلكه عند أول إصدار ناجح. التوقيع الواحد يُصدر مفتاحًا واحدًا بالضبط، لذا لا يمكن إعادة استخدام توقيع مُلتقَط للحصول على مفاتيح إضافية.
- بيان مقروء. تنص الرسالة صراحةً على أن التوقيع يُصرّح بإنشاء مفتاح Venice API، فتُظهر واجهة المحفظة مثل MetaMask للموقّع ما يوافق عليه بدلًا من كتلة بيانات ثنائية.
الدفع للاستدلال
إصدار مفتاح والقدرة على استدعاء endpoints مدفوعة به شيئان منفصلان. المفتاح المُصدَر حديثًا يصادق بشكل صحيح لكنه لا يستطيع استدعاء endpoints مدفوعة (مثل/chat/completions) حتى يكون لدى حساب المحفظة رصيد قابل للإنفاق.
يمكن للمفتاح المُصدَر الإنفاق من حساب المستخدم بترتيب الأولوية هذا: DIEM، ثم الاعتمادات المُجمَّعة، ثم الدولار الأمريكي.
إذا احتاج الوكيل إلى مسار تمويل crypto-native بالكامل وبدون رأس، فإن الخيارات الأنظف هي:
- قم بـ 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 القياسي
للمستخدمين الذين يفضلون إصدار مفتاح من اللوحة.