الانتقال إلى المحتوى الرئيسي

نظرة عامة

يثبت تسجيل المحفظة ملكية محفظة Solana لـ LaserSell API. التسجيل مطلوب قبل توصيل المحافظ ببث ذكاء الخروج. يتحقق البث من أن كل محفظة في رسالة configure مسجلة لحسابك. يستخدم التسجيل توقيعات Ed25519 لذا لا حاجة لمعاملة على السلسلة.

POST /v1/wallets/register

سجّل محفظة بإثبات الملكية بتوقيع Ed25519.

الطلب

{
  "wallet_pubkey": "YourWalletPubkey...",
  "signature": "base58-encoded-ed25519-signature",
  "message": "lasersell-register:YourWalletPubkey...:1706000000",
  "label": "My Trading Wallet"
}
FieldTypeRequiredDescription
wallet_pubkeystringYesالمفتاح العام لمحفظة Solana للتسجيل.
signaturestringYesتوقيع Ed25519 للرسالة مشفر بـ base58.
messagestringYesرسالة منظمة: lasersell-register:<pubkey>:<unix_timestamp>. يجب أن يكون الطابع الزمني ضمن 5 دقائق.
labelstringNoتسمية مقروئة اختيارية للمحفظة.

الاستجابة

{
  "wallet_pubkey": "YourWalletPubkey...",
  "registered": true
}

المصادقة

يتطلب ترويسة x-api-key بمفتاح API صالح.

الأخطاء

StatusCodeDescription
400Bad Requestتنسيق مفتاح عام غير صالح أو رسالة مشوهة أو طابع زمني منتهي (>5 دقائق).
403Forbiddenمفتاح API مفقود أو غير صالح أو فشل التحقق من التوقيع.

DELETE /v1/wallets

إلغاء تسجيل محفظة.

الطلب

{
  "wallet_pubkey": "YourWalletPubkey..."
}

الاستجابة

{
  "wallet_pubkey": "YourWalletPubkey...",
  "removed": true
}

استخدام حزمة التطوير

توفر حزم التطوير الأربع طرقاً مساعدة لتسجيل المحافظ.

proveOwnership / prove_ownership

إنشاء WalletProof محلياً باستخدام زوج المفاتيح. هذه عملية تشفير بحتة بدون استدعاء شبكة.
import { proveOwnership } from "@lasersell/lasersell-sdk";

const proof = proveOwnership(keypair);
// proof = { walletPubkey, signature, message }

registerWallet / register_wallet

إرسال الإثبات إلى الواجهة البرمجية لتسجيل المحفظة.
const client = ExitApiClient.withApiKey(apiKey);
await client.registerWallet(proof, "My Wallet");

connectWithWallets / connect_with_wallets

طريقة مختصرة تسجل المحافظ وتتصل بالبث في خطوة واحدة.
import { StreamClient, proveOwnership } from "@lasersell/lasersell-sdk";

const proof = proveOwnership(keypair);
const client = new StreamClient(apiKey);
const session = await client.connectWithWallets(
  [proof],
  { target_profit_pct: 50, stop_loss_pct: 10 },
  120, // deadline_timeout_sec
);