مصادقة المحفظة
صادِق باستخدام حمولة Sign-In-With-X موقّعة في ترويسة
SIGN-IN-WITH-X.ادفع بـ USDC
احتفظ برصيد قابل للإنفاق باستخدام USDC على Base أو Solana.
DIEM أولًا
إذا كانت المحفظة مرتبطة بحساب Venice يمتلك رصيد DIEM، فيُنفَق ذلك أولًا.
ما هو X402؟
X402 هو معيار دفع مفتوح يسمح للتطبيقات والوكلاء بالدفع مقابل الخدمات برمجيًا باستخدام العملة المشفّرة. تدعم Venice X402 بحيث يمكن للمحافظ المصادقة والدفع مقابل الاستدلال مباشرة بـ USDC على Base أو Solana.المتطلبات المسبقة
- محفظة على Base أو Solana
- عملة أصلية للغاز على السلسلة المختارة، مثل ETH على Base أو SOL على Solana
- USDC على السلسلة المختارة (أو رصيد مدعوم بـ DIEM قائم من حساب Venice مرتبط)
البدء السريع
يوفّر SDKvenice-x402-client أدوات مساعدة لمصادقة المحفظة وشحن الرصيد وتتبّع الرصيد.
X-Balance-Remaining.
مع الأدوات المتوافقة مع OpenAI
إذا كنت تستخدم أداة تقبلfetch مخصّصًا، استخدم createAuthFetch لإضافة مصادقة المحفظة إلى أي طلب:
الأدوات المساعدة المتاحة
يتضمّن الـ SDK أدوات مساعدة من الدرجة الأولى لأكثر مسارات Venice x402 شيوعًا. لما هو غير مغطّى، استخدمrequest() أو createAuthFetch() مباشرة.
التدفّق اليدوي
إذا كنت لا تستخدم الـ SDK أو تحتاج إلى فهم البروتوكول الأساسي، فإليك التدفّق خطوة بخطوة. لمحفظة جديدة، افترض أنك تحتاج إلى شحن الرصيد أولًا ما لم تكن تمتلك بالفعل رصيد DIEM قابلًا للإنفاق.الخطوة 1: إنشاء ترويسة SIGN-IN-WITH-X
تتوقع Venice برهان sign-in-with-x الخاص بـ x402 في ترويسةSIGN-IN-WITH-X: وهو JSON مُرمَّز بـ Base64 يحتوي على حقول الرسالة الموقّعة (domain وaddress وuri وversion وchainId وtype وnonce وissuedAt، إضافةً إلى الحقول الاختيارية expirationTime وnotBefore وstatement وresources) مع signature. تعيد Venice بناء الرسالة الموقّعة من هذه الحقول. توقّع محافظ EVM رسالة SIWE وفق EIP-4361 على Base وتضبط type على eip191، بما في ذلك محافظ العقود الذكية. توقّع محافظ Solana رسالة تسجيل الدخول الخاصة بـ Solana باستخدام Ed25519. في JSON، تكون قيمة chainId هي معرّف CAIP-2 (eip155:8453)، بينما يحمل سطر Chain ID في الرسالة الموقّعة المرجع المجرّد (8453). لا يزال اسم الترويسة القديم X-Sign-In-With-X مقبولًا، وكذلك الحمولات الأقدم التي ترسل message الموقّعة نفسها.
لا يمكن استخدام كل رسالة موقّعة إلا مرة واحدة. وقّع رسالة جديدة بـ nonce جديد لكل طلب، سواء كان من إنشائك أو قيمة nonce من أحدث تحدٍّ 402، وأرسلها خلال 5 دقائق من وقت issuedAt الخاص بها. تؤدي إعادة استخدام رسالة إلى إرجاع 401 (nonce already used)، وكذلك الرسالة الصادرة قبل أكثر من 5 دقائق.
بالنسبة لـ Solana، اضبط chainId على solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp، وضمّن type: "ed25519" في حمولة JSON المشفّرة، وقدّم توقيع Ed25519 كـ base58 أو base64. تبدأ الرسالة الموقّعة بـ <domain> wants you to sign in with your Solana account:، يتبعها عنوان المحفظة والحقول القياسية URI وVersion وChain ID وNonce وIssued At وExpiration Time الاختياري.
createSiwxHeader() مباشرةً قبل كل طلب. في أمثلة curl أدناه، يجب أن تكون X402_AUTH ترويسة موقّعة حديثًا لكل استدعاء.
الخطوة 2: التحقق من الرصيد
قبل إجراء طلب مدفوع، تحقّق من أن المحفظة تمتلك رصيدًا قابلًا للإنفاق:canConsume: ما إذا كانت المحفظة قادرة على إجراء طلبات مدفوعةbalanceUsd: الرصيد القابل للإنفاق الحاليminimumTopUpUsdوsuggestedTopUpUsd: إرشادات لشحن الرصيدdiemBalanceUsd: الرصيد المدعوم بـ DIEM، إن وُجد
walletAddress إما عنوان EVM (0x...) أو عنوان Solana بصيغة base58.
الخطوة 3: شحن الرصيد
اشحن باستخدام USDC على Base أو Solana:402 Payment Required مع ترويسة PAYMENT-REQUIRED تحتوي على مصفوفة accepts. كل عنصر يصف خيار دفع مقبولًا واحدًا، بما في ذلك network وasset وpayTo وamount. اختر خيار Base أو Solana الذي تريد الدفع به، واستخدم تلك التفاصيل الدقيقة لبناء ترويسة PAYMENT-SIGNATURE، ثم أعد إرسال نفس المسار. لا يزال اسما الترويستين القديمين X-402-Payment وX-PAYMENT مقبولين.
بناء ترويسة PAYMENT-SIGNATURE لـ Base
ينشئ السكربت التالي دفعة x402 موقّعة على Base ويرسل طلب الشحن. يتطلّب حزمتي npmx402 وviem.
استخدم أحدث استجابة
PAYMENT-REQUIRED / accepts كمصدر للحقيقة في الإنتاج بدلًا من تثبيت هذه القيم برمجيًا. لشحنات Solana، ابنِ الدفعة من عنصر Solana المُرجَع في accepts. تستخدم عناصر Solana network: "solana"، وعملة USDC mint كـ asset، وقد تتضمّن بيانات وصفية خاصة بالشبكة مثل extra.feePayer.الخطوة 4: إجراء طلب
بمجرد أن تمتلك المحفظة رصيدًا قابلًا للإنفاق، استدعِ أي نقطة نهاية مدعومة باستخدام ترويسةSIGN-IN-WITH-X موقّعة حديثًا:
X-Balance-Remaining.
الخطوة 5: فحص المعاملات (اختياري)
راجع سجلّ معاملات المحفظة:TOP_UP وCHARGE وREFUND.
يقبل معامل المسار walletAddress إما عنوان EVM (0x...) أو عنوان Solana بصيغة base58.
المسارات المدعومة
مسارات الاستدلال المدفوعة
تدعم مسارات Venice المدفوعة العامة التالية مصادقة محفظة x402 حاليًا.مسار شحن الرصيد
مسارات المحفظة فقط
تستخدم هذه المساراتSIGN-IN-WITH-X للهوية لكنها لا تخصم من الرصيد.
الأخطاء
للوكلاء
التدفّق هو نفسه. خزّن المفاتيح الخاصة في متغيرات البيئة أو في مدير أسرار، ووقّع رسالة Sign-In-With-X جديدة لكل طلب، وتحقّق من الرصيد قبل الطلبات لتجنّب رحلات402 غير الضرورية.
مصادر ذات صلة
SDK عميل x402
عميل Venice x402 الرسمي لـ Node.js/TypeScript.
تسعير API
تحقّق من تسعير النماذج وكيفية احتساب Venice للاستخدام.
Chat Completions
مسار مدفوع شائع للوصول القائم على المحفظة.
مواصفات API
وثائق مرجعية ووصول إلى المواصفات الخام.