الانتقال إلى المحتوى الرئيسي
يتيح لك X402 استخدام مسارات Venice API المدفوعة عن طريق المصادقة بمحفظة والاحتفاظ برصيد USDC مدفوع مسبقًا. لا حاجة إلى مفتاح API أو حساب. وقّع رسالة، واشحن الرصيد على Base أو Solana، واستدعِ أي مسار مدعوم.

مصادقة المحفظة

صادِق باستخدام حمولة 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 مرتبط)
فكّر في استخدام محفظة مخصّصة للأتمتة بدلًا من محفظة الخزينة الرئيسية.

البدء السريع

يوفّر SDK venice-x402-client أدوات مساعدة لمصادقة المحفظة وشحن الرصيد وتتبّع الرصيد.
يولّد العميل ترويسة Sign-In-With-X جديدة لكل طلب ويتتبّع الرصيد تلقائيًا من ترويسات الاستجابة 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 مقبولين.
إرسال USDC مباشرةً إلى عنوان payTo لا يشحن رصيدك. لا يُضاف الرصيد إلا عندما تتم تسوية PAYMENT-SIGNATURE موقّعة عبر POST /x402/top-up. الشبكتان المدعومتان هما Base وSolana فقط، لذا لا تُحتسب أي USDC تُرسل على أي سلسلة أخرى، بما في ذلك الشبكة الرئيسية لـ Ethereum. تقرأ مسارات الرصيد والمعاملات سجلّ Venice وليس السلسلة، لذا لا تُظهر شيئًا بعد تحويل عادي.

بناء ترويسة PAYMENT-SIGNATURE لـ Base

ينشئ السكربت التالي دفعة x402 موقّعة على Base ويرسل طلب الشحن. يتطلّب حزمتي npm x402 و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

وثائق مرجعية ووصول إلى المواصفات الخام.