SafeBrowz Detection API
كشف التصيد الاحتيالي واستنزاف المحافظ لأي رابط. ادفع لكل طلب بـ USDC على Solana أو Base عبر x402 — بدون تسجيل. يحصل المستخدمون ذوو الحجم العالي على مفتاح Bearer واشتراك شهري ثابت.
ملف مهارة جاهز للإضافة
هل تبني وكيل Claude أو ChatGPT Custom GPT أو قاعدة Cursor أو أي تطبيق يعتمد على نماذج اللغة؟ الصق ملف المهارة في قواعد وكيلك وسيعرف متى وكيف يستدعي الواجهة البرمجية.
ملف مهارة الوكيل (markdown)
تعريف كامل للمهارة مع المحفزات وتدفق الدفع وتفسير الإشارات وأمثلة الكود. جاهز للإضافة إلى أي إطار عمل للوكلاء.
تنزيل skill.mdمواصفة OpenAPI 3.1
مخطط نقاط النهاية قابل للقراءة آليًا. يُستخدم مع ChatGPT Actions أو Postman أو Insomnia أو أي مولّد SDK.
عرض openapi.jsonوثائق صديقة لنماذج اللغة
مرجع نصي كامل محسّن لزواحف الذكاء الاصطناعي ونوافذ سياق الوكلاء. يتضمن إرشادات الاستشهاد.
عرض api-llms.txtملف بيانات الإضافة في /.well-known/ai-plugin.json
سعر واحد. بدون طبقات.
لكل طلب
ادفع بـ USDC على شبكة Solana أو Base الرئيسية. بدون اشتراك ولا التزام. النتائج المخزّنة مؤقتًا تُحسب بنفس السعر — لتبسيط التكامل وتغطية البنية التحتية.
مساوٍ للإضافة
كل إشارة يكشفها امتداد متصفح SafeBrowz — التصيد الاحتيالي للبيانات، pastejacking، ClickFix، استنزاف المحافظ، انتحال الهوية التجارية، و18 إشارة أخرى — يعيدها الـ API. لا اختصار للروابط فقط.
علامة تجارية مُتتبَّعة
يشمل المحافظ (MetaMask، Phantom، Ledger، Trezor)، البورصات (Binance، Coinbase، OKX)، خدمات الدفع (PayPal، Venmo، Stripe)، والعلامات التجارية العالمية الكبرى.
شغّل تدفق x402 الكامل في متصفحك
ربط أي محفظة، الصق رابطًا، انقر اختبار. ادفع 0.001 USDC على Solana أو Base، أو 0.00001 SOL كبديل Solana أصلي. يعمل مع أي محفظة SPL أو EVM.
اختر سلسلة أدناه — يبقى السعر ثابتًا.
أو جرّبه بـ curl في 30 ثانية
كل طلب يستلزم دفعة x402. الاستدعاء الأول يعيد 402 مع تعليمات الدفع. ادفع، ثم أعد المحاولة مع توقيع المعاملة.
الخطوة 1 — احصل على nonce من 402
curl -s -X POST https://api.safebrowz.com/v1/detect \
-H "Content-Type: application/json" \
-d '{"url":"https://app.trezor-io.us.com/"}'
الاستجابة (402)
اختر أي خيار داخل payment أو payment.alternatives. المدخل الأساسي هو Solana USDC؛ البدائل تشمل Solana SOL وBase USDC.
{
"status": 402,
"error": "payment_required",
"payment": {
"amount": "0.001",
"token": "USDC",
"token_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"chain": "solana",
"recipient": "FLQyppmJYbvQvEPAB4Mv8ZGmxkSXmXUwMACeJ79kdozW",
"nonce": "ed548e77-719f-4f13-9f01-32dc8ed4e213",
"memo_format": "safebrowz:ed548e77-719f-4f13-9f01-32dc8ed4e213",
"alternatives": [
{ "token": "SOL", "amount": "0.00001", "chain": "solana", "nonce_binding": "memo", "memo_format": "safebrowz:..." },
{ "token": "USDC", "amount": "0.001", "chain": "base", "chain_id": 8453,
"token_contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"recipient": "0xf3bc3a04646F1D721992AeDC07c98FC52FdFC358",
"nonce_binding": "eip191",
"sign_message": "safebrowz:ed548e77-719f-4f13-9f01-32dc8ed4e213" }
]
}
}
الخطوة 2أ — ادفع على Solana
حوّل 0.001 USDC (أو 0.00001 SOL) للمستلم مع مذكرة safebrowz:<nonce>. أي محفظة Solana أو واجهة spl-token تعمل. تنتهي صلاحية nonces في 10 دقائق.
spl-token transfer EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.001 \
FLQyppmJYbvQvEPAB4Mv8ZGmxkSXmXUwMACeJ79kdozW \
--fund-recipient \
--with-memo "safebrowz:ed548e77-719f-4f13-9f01-32dc8ed4e213"
الخطوة 2ب — ادفع على Base (محافظ EVM)
أرسل تحويل USDC ERC-20 قياسي على Base إلى المستلم، ثم وقّع رسالة nonce خارج السلسلة. تفتقر Base إلى حقل مذكرة أصلي، لذا يستخدم ربط nonce توقيع EIP-191 personal_sign لـ safebrowz:<nonce>. يجب أن يرتد التوقيع إلى المحفظة التي دفعت.
// viem / ethers pseudocode
const txHash = await wallet.writeContract({
address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Base
abi: erc20Abi, functionName: "transfer",
args: [ "0xf3bc3a04646F1D721992AeDC07c98FC52FdFC358", 1000n ], // 0.001 USDC (6 dec)
});
const walletSig = await wallet.signMessage({
message: "safebrowz:ed548e77-719f-4f13-9f01-32dc8ed4e213",
});
الخطوة 3 — أعد المحاولة مع الإثبات
لـ Solana، أرسل توقيع المعاملة فقط. لـ Base، أرسل أيضًا توقيع المحفظة EIP-191 وعيّن X-402-Chain: base.
# Solana
curl -s -X POST https://api.safebrowz.com/v1/detect \
-H "Content-Type: application/json" \
-H "X-402-Signature: <your_tx_signature>" \
-H "X-402-Nonce: ed548e77-719f-4f13-9f01-32dc8ed4e213" \
-d '{"url":"https://app.trezor-io.us.com/"}'
# Base
curl -s -X POST https://api.safebrowz.com/v1/detect \
-H "Content-Type: application/json" \
-H "X-402-Chain: base" \
-H "X-402-Signature: <tx_hash>" \
-H "X-402-Wallet-Sig: <eip191_signature>" \
-H "X-402-Nonce: ed548e77-719f-4f13-9f01-32dc8ed4e213" \
-d '{"url":"https://app.trezor-io.us.com/"}'
الاستجابة (200)
{
"verdict": "danger",
"trust_score": 5,
"brand": "Ledger",
"confidence": 0.95,
"reason": "Fake Ledger Live login page - potential phishing and crypto scam",
"threat_types": ["brand_impersonation", "crypto_scam", "credential_phishing"],
"signals": {
"brand_impersonation": true,
"credential_phishing": true,
"crypto_scam": true,
"no_contact_info": true,
"domain_mismatch": true,
"wallet_drainer": false,
"seed_phrase_phishing": false,
"fake_captcha": false,
"pastejacking": false,
"tech_support_scam": false
// ...remaining signals (all booleans) omitted for brevity
},
"details": {
"matched_brand": "Ledger",
"official_domain": "ledger.com",
"domain_matches_brand": false,
"target_country": "Global",
"page_language": "English"
}
}
trust_score هو درجة ثقة بسيطة من 0 إلى 100 (100 = آمن، 0 = احتيال).
confidence هو مدى يقيننا من الحكم نفسه — بالنسبة لحكم danger،
0.95 تعني "نحن متأكدون 95% بأن هذا احتيال"، وليس "مزيف بنسبة 95%."
عملاء برمجيون كاملون
انسخ أحدها، أضف محفظة، وانتهيت. كل مثال يتولى تدفق x402 كاملًا من البداية للنهاية: الاستدعاء الأولي، تحليل تحدي 402، الدفع على السلسلة، إعادة المحاولة مع رأس X-PAYMENT. يمكن خلط اللغات — الـ API متطابق بغض النظر عن العميل.
TypeScript + viem (Base)
عميل بـ ~45 سطرًا يغطي الرحلة الكاملة على Base mainnet. يستخدم viem لتحويل USDC + توقيع EIP-191 nonce.
import { createWalletClient, http, parseUnits, erc20Abi } from "viem";
import { base } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
const USDC_BASE = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
const URL = "https://api.safebrowz.com/v1/detect";
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const wallet = createWalletClient({ account, chain: base, transport: http() });
export async function detect(target: string) {
// 1. First call — expect 402
const first = await fetch(URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ url: target }),
});
if (first.status !== 402) return first.json();
const challenge = await first.json();
const baseEntry = challenge.accepts.find((a: any) => a.network === "base");
// 2. Pay USDC onchain to the configured receiver
const txHash = await wallet.writeContract({
address: USDC_BASE, abi: erc20Abi, functionName: "transfer",
args: [baseEntry.payTo, parseUnits("0.001", 6)],
});
// 3. Sign the off-chain nonce binding (EIP-191 personal_sign)
const walletSig = await wallet.signMessage({
message: baseEntry.extra.sign_message_template,
});
// 4. Retry with the spec-compliant X-PAYMENT header
const xPayment = Buffer.from(JSON.stringify({
x402Version: 1, scheme: "exact", network: "base",
payload: {
txHash, walletSig,
nonce: baseEntry.extra.sign_message_template.split(":")[1],
},
})).toString("base64");
const verdict = await fetch(URL, {
method: "POST",
headers: { "Content-Type": "application/json", "X-PAYMENT": xPayment },
body: JSON.stringify({ url: target }),
});
return verdict.json();
}
Python + solana-py (Solana)
نفس التدفق على Solana. يستخدم solders لبناء keypair والمعاملة وتعليمة SPL-memo لربط nonce.
import base64, json, httpx, os
from solana.rpc.api import Client
from solders.keypair import Keypair
from solders.pubkey import Pubkey
USDC_MINT = Pubkey.from_string("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v")
rpc = Client("https://api.mainnet-beta.solana.com")
kp = Keypair.from_base58_string(os.environ["SOLANA_SECRET"])
def detect(target: str) -> dict:
# 1. Challenge
r = httpx.post("https://api.safebrowz.com/v1/detect",
json={"url": target})
if r.status_code != 402:
return r.json()
sol_entry = next(a for a in r.json()["accepts"] if a["network"] == "solana")
# 2. Build USDC transferChecked + spl-memo binding the nonce
memo = sol_entry["extra"]["memo_template"] # "safebrowz:<nonce>"
tx = build_usdc_transfer_with_memo(
payer=kp.pubkey(),
receiver=Pubkey.from_string(sol_entry["payTo"]),
amount_atomic=int(sol_entry["maxAmountRequired"]),
memo_text=memo,
)
tx.sign([kp], rpc.get_latest_blockhash().value.blockhash)
tx_sig = rpc.send_transaction(tx).value
# 3. Retry with X-PAYMENT
x_payment = base64.b64encode(json.dumps({
"x402Version": 1, "scheme": "exact", "network": "solana",
"payload": {"txSignature": str(tx_sig), "nonce": memo.split(":")[1]},
}).encode()).decode()
return httpx.post(
"https://api.safebrowz.com/v1/detect",
headers={"X-PAYMENT": x_payment},
json={"url": target},
).json()
بدون إعداد — agentcash CLI
إذا كنت لا تريد بناء تدفق دفع خاص بك، فإن agentcash يتولى كامل عملية x402. يكشف 402، يوقّع ويبث الدفع، يعيد المحاولة مع الرأس المتوافق مع المواصفة، ويطبع الحكم. سطر واحد:
npx agentcash fetch https://api.safebrowz.com/v1/detect \
--body '{"url":"https://trezor-support.com"}' \
--network solana
يعمل على كلٍّ من --network solana و--network eip155:8453. يستخدم محفظة يديرها agentcash — أضف USDC وهو يعمل تلقائيًا.
أطر عمل الوكلاء — Claude, GPT, LangChain, MCP
يمكن لكل إطار عمل وكيل رئيسي تحميل ملف المهارة المنشور واستخدام واجهة الكشف كأداة دون أي كود تكامل يدوي:
# Claude Code / Claude Desktop
# - Save /safebrowz-api.skill.md locally
# - Add to your ~/.claude/skills/ directory
# - Claude loads it automatically
# MCP server config (Claude Desktop, etc.)
# - Point at the OpenAPI spec: https://api.safebrowz.com/v1/openapi.json
# - MCP auto-generates a detect() tool
# LangChain
from langchain.tools import OpenAPIToolkit
from langchain.utilities.openapi import OpenAPISpec
spec = OpenAPISpec.from_url("https://api.safebrowz.com/v1/openapi.json")
toolkit = OpenAPIToolkit.from_llm_and_spec(llm, spec)
مصادقة Bearer للمؤسسات (تجاوز x402)
يمكن للمتكاملين ذوي الحجم العالي — تطبيقات المحافظ ومنصات الذكاء الاصطناعي ذات الملايين من المستخدمين — طلب مفتاح Bearer طويل الأمد. لا توقيع لكل استدعاء؛ مرّر المفتاح كرأس Authorization واحصل فورًا على استجابة 200 عادية. الفوترة شهرية عبر اشتراك USDC ثابت.
curl -X POST https://api.safebrowz.com/v1/detect \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-d '{"url":"https://example.com"}'
راسل info@safebrowz.com مع حجمك المتوقع (طلبات/دقيقة + الإجمالي الشهري) لتوفير مفتاح. الطبقة المعتادة هي 10,000 إلى 100,000 طلب في الدقيقة، بحد معدل لكل مفتاح حتى يكون معدل النقل الخاص بك معزولًا عن كل عميل مؤسسي آخر.
نقاط النهاية
يعيد حكم احتيال/تصيد لرابط URL. يتطلب دفع x402.
جسم الطلب
{"url": "https://example.com"}
الاستجابة (200)
| الحقل | النوع | الوصف |
|---|---|---|
verdict | string | safe / caution / danger |
trust_score | integer | درجة ثقة من 0-100 (100 = آمن، 0 = احتيال) |
brand | string / null | العلامة التجارية المنتحَلة إن وُجدت (مثال: "Ledger"، "Trezor"، "PayPal") |
confidence | number | 0.0-1.0. مدى يقيننا من الحكم. ليس "نسبة الزيف." |
reason | string | شرح مقروء للإنسان |
threat_types | string[] | الفئات الرئيسية: wallet_drainer، seed_phrase_phishing، brand_impersonation، crypto_scam، crypto_airdrop_scam، credential_phishing، account_phishing، delivery_scam، government_impersonation، invoice_scam، tech_support_scam، fake_captcha، pastejacking |
signals | object | جميع أعلام 22 منطقي (تشمل domain_mismatch، no_contact_info، fake_urgency، too_good_prices، suspicious_payment، إلخ) |
details | object | matched_brand، official_domain، domain_matches_brand، target_country، page_language، tld، domain_age_days، matched_patterns |
فحص صحة الخدمة. لا يتطلب دفعًا.
{"status": "ok", "version": "1.0.0", "chain": "solana"}
الأخطاء
| الحالة | الخطأ | المعنى |
|---|---|---|
| 400 | missing_url | جسم الطلب لم يتضمن حقل url. |
| 400 | invalid_url | الرابط مشوّه أو طويل جدًا أو يشير إلى IP خاص. |
| 402 | payment_required | لا توجد رؤوس دفع. الجسم يحتوي على تعليمات لجميع السلاسل المدعومة. |
| 402 | payment_invalid | تم توفير رؤوس الدفع لكن التحقق فشل. احصل على nonce جديد وأعد المحاولة. جسم الاستجابة يعيد إصدار تعليمات الدفع الكاملة. |
| 409 | nonce_already_used | هذا الـ nonce استُخدم بالفعل. أعد المحاولة مع nonce جديد من 402. |
| 429 | rate_limited | طلبات كثيرة جدًا في الدقيقة. أعد المحاولة بعد توقف. |
أسئلة شائعة
لماذا x402 بدلًا من مفاتيح API؟
بالنسبة لنقطة النهاية العامة، x402 تعني لا نماذج تسجيل، لا طبقات معدل، لا رسائل بريد للفوترة، لا تذاكر دعم. تدفع 0.001 USDC وتحصل على نتيجة. لا علاقة مطلوبة. بالنسبة لتطبيقات المحافظ ومنصات الذكاء الاصطناعي التي تخدم ملايين المستخدمين خلف وكيل، نُصدر مفاتيح Bearer مؤسسية عند الطلب (راجع سؤال الأسعار المؤسسية أدناه).
ما هو زمن الاستجابة؟
الأحكام المخزنة مؤقتًا تعود في 50-150 مللي ثانية. تطابقات نمط URL مماثلة. الروابط الجديدة التي تحتاج جلب الصفحة + مسح AI تستغرق عادةً 2-4 ثوانٍ من البداية للنهاية. التحقق من الدفع عبر Solana أو Base RPC يضيف ~300-500 مللي ثانية فوق ذلك، بغض النظر عن عمق المسح.
كيف يقارن هذا بامتداد المتصفح؟
كل إشارة يكشفها الامتداد — credential_phishing، pastejacking، fake_captcha (ClickFix)، wallet_drainer، no_contact_info، fake_urgency، و17 أخرى — يعيدها هذا الـ API. خط أنابيب الكشف الأساسي مشترك: ذاكرة تخزين مؤقت، قواعد URL، ثم مسح AI كامل للصفحة عند غياب التخزين المؤقت. تحصل على نفس trust_score، ونفس تحديد brand، ونفس كائن signals.
هل يمكنني طلب استرداد؟
لا استرداد. الدفع غير قابل للعكس بالتصميم (التسوية على السلسلة). إذا أعاد الـ API خطأ خادم 5xx، أعد المحاولة بنفس nonce — لا نستهلك nonces عند أعطال جانب الخادم.
هل تقدمون أسعارًا مؤسسية / بسعر ثابت؟
نعم. نوفر مفاتيح Bearer API طويلة الأمد لتطبيقات المحافظ ومنصات وكلاء AI وغيرها من المتكاملين ذوي الحجم العالي حيث التوقيع على السلسلة لكل استدعاء غير عملي. كل مفتاح له حد معدل خاص به (عادةً 10,000 إلى 100,000 طلب في الدقيقة) ويُفوتر شهريًا بـ USDC. مرّره كـ Authorization: Bearer sk_live_... وسيُتخطى تدفق x402. راسل info@safebrowz.com مع حجمك المتوقع وسنضمك.
ما البيانات التي تراها؟
فقط الرابط الذي ترسله. لا نسجّل محتويات الصفحة، أو ملفات تعريف الارتباط، أو الرؤوس، أو معرّفات المستخدم. توقيع المعاملة على السلسلة (Solana أو Base) يُخزن لحماية من إعادة التشغيل ومحاسبة الإيرادات.
هل أنت مستعد للتكامل؟
لا نماذج لملئها. وجّه أي محفظة Solana أو EVM إلى api.safebrowz.com/v1/detect وابدأ المسح.