Blockchain RPC และ docs MCP สำหรับ AI Agent

เชื่อมต่อ AI Agent เข้ากับ Blockchain RPC และ docs MCP: ค้นหาความสามารถโดยไม่ต้องใช้คีย์, ลงทะเบียนผ่าน HTTP, แล้วเรียกใช้ RPC และ Data API ด้วย API key

เริ่มต้นด้วย docs MCP endpoint แบบไม่ต้องใช้คีย์เพื่อค้นหาเมธอด Blockchain RPC, ชุดข้อมูล Data API, ราคา และเอกสารประกอบ AI Agent ถือเป็นผู้ใช้งานชั้นหนึ่ง (first-class users): นักพัฒนาและ AI Agent ใช้ API, กฎ, ขีดจำกัด และราคาเดียวกัน

  1. ค้นหา (Discover): ใช้ docs MCP, llms.txt, OpenAPI และ JSON สาธารณะเพื่อเลือกเชนและเมธอด การเรียก RPC แบบไม่ใช้คีย์จะจำกัดเฉพาะ public.methods ของเชนนั้นๆ
  2. เปิดบัญชีผ่าน HTTP: ทำตาม การลงทะเบียนแบบเป็นโปรแกรม เพื่อเข้าสู่ระบบด้วยลายเซ็นกระเป๋าเงินและสร้าง API key โดย how_to_get_api_key ของ MCP จะส่งคืนคำแนะนำสำหรับโฟลว์ HTTP แยกต่างหากนี้
  3. เรียกใช้ Data API: จัดเก็บคีย์ไว้ใน BLOCKVECTRA_API_KEY และใช้สำหรับคำขอ RPC หรือ Data API ที่ต้องยืนยันตัวตน สำหรับเครื่องมือ MCP ที่ต้องใช้คีย์ ให้กำหนดค่าส่วนหัว x-api-key ของไคลเอนต์ โดยการดำเนินการที่อนุญาตของแต่ละเครื่องมือมีรายละเอียดอยู่ด้านล่าง

1. บริบทและข้อกำหนดที่เครื่องอ่านได้

BlockVectra เผยแพร่ไฟล์สำหรับ LLM agent และเครื่องมือของนักพัฒนา:

ดัชนี llms.txt

ตามรูปแบบมาตรฐานของ llmstxt.org ไฟล์เหล่านี้จะสรุปข้อมูลของเว็บไซต์และ endpoint ต่างๆ อย่างมีโครงสร้างสำหรับ agent:

  • ดัชนีเว็บไซต์หลัก: Main site llms.txt — ภาพรวมของเว็บไซต์หลัก, เชนที่รองรับ, ราคา และ API สาธารณะ
  • ดัชนีเอกสาร: Documentation llms.txt — แคตตาล็อกของหน้าเอกสารทั้งหมดพร้อมชื่อเรื่องและคำอธิบาย

ไฟล์เอกสารฉบับเต็ม (llms-full.txt)

  • เอกสารฉบับสมบูรณ์: llms-full.txt — ข้อความฉบับเต็มของหน้าเอกสารภาษาอังกฤษทุกหน้าในไฟล์ Markdown ข้อความล้วนไฟล์เดียว เหมาะสำหรับการโหลดลงใน system prompt ของ agent หรือนำเข้าสู่ไปป์ไลน์ Retrieval-Augmented Generation (RAG)

ข้อกำหนด OpenAPI 3.1 ที่ดาวน์โหลดได้

เว็บไซต์เอกสารให้บริการไฟล์ YAML ของ OpenAPI 3.1 ซึ่งสามารถนำเข้าสู่เฟรมเวิร์กของ agent, เครื่องมือสร้าง tool หรือไคลเอนต์ API ได้โดยตรง:

  • ข้อกำหนด JSON-RPC API: /openapi/json-rpc.yaml — เมธอดที่รองรับ, นโยบายเมธอดต่อเชน, การตอบกลับข้อผิดพลาด และการวัดปริมาณ Compute Unit
  • ข้อกำหนด Data API: /openapi/data.yaml — นิยาม REST endpoint สำหรับบล็อกที่จัดทำดัชนีแล้ว, ธุรกรรม, การโอน, ยอดคงเหลือ, ผู้ถือครอง และชุดข้อมูลที่เกี่ยวข้อง
  • ข้อกำหนด Push API: /openapi/push.yaml — การจัดการการสมัครรับข้อมูลผ่าน HTTP, ที่อยู่กระเป๋าเงินที่เฝ้าดู, อีเวนต์ webhook, ลายเซ็น และการเล่นซ้ำ

สำหรับกิจกรรมที่อยู่กระเป๋าเงิน โปรดทำตาม คู่มือ Blockchain Webhook API สำหรับการแจ้งเตือนการชำระเงิน ERC-20 USDT / USDC ให้ใช้ ตัวอย่างตัวรับการชำระเงิน นักพัฒนาและ AI agent สามารถสร้างและจัดการการสมัครรับข้อมูลผ่าน HTTP Push API ด้วย x-api-key; โดย docs MCP จะช่วยค้นหาและอ่านคู่มือเหล่านี้

สำหรับการกำหนดเวอร์ชันของพาธ, กฎความเข้ากันได้ย้อนหลัง และคำแนะนำสำหรับ agent ตลอดจนผู้พัฒนา SDK โปรดดู การกำหนดเวอร์ชันและความเข้ากันได้ของ API สำหรับสูตรสำเร็จที่พร้อมใช้งานในเฟรมเวิร์กยอดนิยม (ElizaOS, viem, wagmi, Coinbase AgentKit) โปรดดู สูตรการใช้งานสำหรับเฟรมเวิร์ก Agent

เซิร์ฟเวอร์ Model Context Protocol (MCP)

BlockVectra ให้บริการเซิร์ฟเวอร์ MCP แบบ stateless และไม่ต้องใช้คีย์ผ่าน Streamable HTTP:

  • Endpoint: MCP endpoint (HTTP POST รับ JSON-RPC 2.0; GET จะส่งคืน 405)
  • Transport: MCP Streamable HTTP (stateless ไม่จำเป็นต้องใช้ API key)

เครื่องมือที่พร้อมใช้งาน

  1. read_doc(path, lang?): ส่งคืนเนื้อหา Markdown ดิบสำหรับหน้าเอกสารใดๆ จาก /md/{lang}/{path}.md รับพาธสัมพัทธ์ภายใน (เช่น quickstart, guides/ai-agents, api/json-rpc, chains)
  2. search_docs(query, lang?, limit?): ค้นหาหน้าเอกสารจากชื่อเรื่อง, พาธ และบทสรุป
  3. list_chains(): อ่านเครือข่ายบล็อกเชนที่รองรับ, พารามิเตอร์คงที่ และนโยบายเมธอดจาก GET /v1/chains
  4. get_status(): อ่านความพร้อมของบริการแบบเรียลไทม์, สถานะเครือข่าย, ความสูงบล็อกล่าสุด และความล่าช้าในการซิงค์จาก GET /v1/status
  5. get_pricing(): อ่านน้ำหนัก Compute Unit (CU), พารามิเตอร์ของแพ็กเกจฟรี และขีดจำกัดคีย์เริ่มต้นจาก GET /v1/plans
  6. estimate_usage(lines?, method?, calls_per_day?): ประเมิน Compute Units (CU), ค่าบริการตามราคาป้ายรวม และค่าบริการสุทธิหลังจากหักโควตาฟรีตามรอบสำหรับหนึ่งเมธอดขึ้นไป (รองรับหลายรายการ lines: [{method, calls_per_day}] หรือแบบเดี่ยว method และ calls_per_day) พร้อมทั้งรายงานขีดจำกัดอัตราต่อคีย์จาก key_defaults และแนะนำจำนวน API key ที่ต้องใช้เมื่อทราฟฟิกเกินขีดจำกัดของคีย์เดี่ยว
  7. how_to_get_api_key(lang?): ส่งคืนขั้นตอนการรับ API key และรูปแบบการยืนยันตัวตนคำขอสำหรับ JSON-RPC และ Data API
  8. get_method_info(method, chain?): ส่งคืนความพร้อมใช้งานของเชน, น้ำหนัก Compute Unit (CU), ราคาต่อหนึ่งล้านการเรียก และลิงก์เอกสารสำหรับเมธอดนั้น ความพร้อมใช้งานของ JSON-RPC เป็นไปตาม methods.allow และ deny ใน GET /v1/chains; ความครอบคลุมของชุดข้อมูล Data API เป็นไปตาม data_features ใน GET /v1/status โดยมี data: true ในแคตตาล็อกเชน
  9. explain_error(reason?, code?, http_status?): ค้นหาคำอธิบายข้อผิดพลาด, ผลกระทบต่อการเรียกเก็บเงิน, ความสามารถในการลองใหม่ และการดำเนินการกู้คืนจากแคตตาล็อกข้อผิดพลาด
  10. list_docs(lang?): แสดงรายการหน้าเอกสารทั้งหมดพร้อมพาธสัมพัทธ์และชื่อเรื่องจากดัชนีเอกสาร
  11. rpc_call(chain, method, params?): ดำเนินการเรียก JSON-RPC 2.0 แบบอ่านอย่างเดียวบนเชนที่รองรับด้วย API key ของคุณ (readOnlyHint: true) เมธอดการเขียน (เช่น eth_sendRawTransaction) จะถูกปฏิเสธ; ให้ใช้ send_raw_transaction แทน ต้องมีส่วนหัว x-api-key ในการกำหนดค่าไคลเอนต์ MCP สำหรับการเข้าถึงแบบเต็มรูปแบบ หรือใช้ endpoint สาธารณะแบบไม่ใช้คีย์หากมีให้บริการ
  12. data_api_get(chain, path, query?): ส่งคำขอ GET ไปยัง Data API สำหรับเชนและพาธที่รองรับด้วย API key ของคุณ (readOnlyHint: true) ต้องมีส่วนหัว x-api-key ในการกำหนดค่าไคลเอนต์ MCP
  13. get_account(): สอบถามยอดคงเหลือในบัญชี, Compute Units (CU), การจำกัดอัตรา และพารามิเตอร์ของคีย์จาก GET /v1/account ด้วย API key ของคุณ (readOnlyHint: true) ต้องมีส่วนหัว x-api-key ในการกำหนดค่าไคลเอนต์ MCP
  14. get_deposit_address(): สอบถามที่อยู่สำหรับฝากบนเชนเฉพาะของบัญชี, เครือข่าย และโทเค็นที่เปิดให้บริการจาก GET /v1/topup/deposit-address ด้วย API key ของคุณ (readOnlyHint: true) โอนเงินเฉพาะเครือข่ายและโทเค็นที่ระบุเท่านั้น ต้องมีส่วนหัว x-api-key ในการกำหนดค่าไคลเอนต์ MCP
  15. send_raw_transaction(chain, raw_tx): บรอดแคสต์ธุรกรรมดิบที่เซ็นแล้วไปยังเชนที่รองรับผ่าน eth_sendRawTransaction (destructiveHint: true) ต้องมีส่วนหัว x-api-key ในการกำหนดค่าไคลเอนต์ MCP สำหรับการเข้าถึงแบบเต็มรูปแบบ หรือใช้ endpoint สาธารณะแบบไม่ใช้คีย์หากได้รับอนุญาตบนเชนนั้น

เครื่องมือที่ต้องใช้คีย์

เครื่องมือที่ต้องใช้คีย์จำเป็นต้องมี API key เพื่อดำเนินการสอบถามบนเชน, ทำธุรกรรม, ส่งคำขอ Data API หรือดำเนินการเกี่ยวกับบัญชี

ความปลอดภัยของ API key:

  • อ่านจากส่วนหัวอย่างเคร่งครัด: API key จะถูกอ่านจากส่วนหัวคำขอ HTTP ของไคลเอนต์ MCP เท่านั้น (x-api-key: rgw_... หรือ Authorization: Bearer rgw_...)
  • ห้ามใส่คีย์ในแชทเด็ดขาด: ห้ามส่ง API key หรือ private key ในอาร์กิวเมนต์ของเครื่องมือ หรือวางลงในแชท อาร์กิวเมนต์ของเครื่องมือและประวัติการแชทจะเข้าสู่บันทึกและบริบทของการสนทนา การส่งคีย์ในอาร์กิวเมนต์จะถูกปฏิเสธ

หากเรียกใช้โดยไม่มีส่วนหัว API key เครื่องมือเหล่านี้จะส่งคืน isError: true และนำทาง agent ไปยัง how_to_get_api_key รวมถึงคู่มือการเริ่มต้นใช้งานแบบเป็นโปรแกรม

การเชื่อมต่อจากไคลเอนต์ MCP

คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ MCP เอกสารของ BlockVectra ได้ที่ https://docs.blockvectra.com/mcp ในสภาพแวดล้อมการพัฒนาและเฟรมเวิร์กทั่วไป

เริ่มต้นโดยไม่ต้องใช้ API key เชื่อมต่อกับ MCP endpoint, เรียกใช้ list_chains, จากนั้นอ่าน quickstart ด้วย read_doc เพิ่ม API key ในส่วนหัว HTTP ของไคลเอนต์เมื่อคุณต้องการใช้เครื่องมือ Data API หรือเครื่องมือบัญชี การเข้าถึง RPC แบบไม่ใช้คีย์จะเป็นไปตามนโยบายเมธอดสาธารณะของแต่ละเชน

ส่วนหัว x-api-key เป็นทางเลือก หากไม่มี API key ไคลเอนต์สามารถใช้เครื่องมือเอกสารแบบอ่านอย่างเดียวทั้งหมด (read_doc, search_docs, list_docs), การค้นหาเชน (list_chains), สถานะแบบเรียลไทม์ (get_status), การประเมินราคา (get_pricing, estimate_usage), คำอธิบายข้อผิดพลาด (explain_error) และเมธอดที่อนุญาตบน endpoint สาธารณะ เมื่อใช้เครื่องมือที่ต้องมีคีย์ (rpc_call บนเมธอดที่จำกัด, send_raw_transaction, data_api_get, get_account และ get_deposit_address) ให้กำหนดค่าส่วนหัว x-api-key ด้วย API key ของคุณ

Claude Code

เชื่อมต่อกับเซิร์ฟเวอร์ MCP โดยใช้ CLI:

claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp

หากต้องการรวม API key ที่เป็นทางเลือกสำหรับเครื่องมือที่ต้องยืนยันตัวตน ให้ส่งตัวเลือก --header (หรือ -H):

claude mcp add --transport http blockvectra-docs https://docs.blockvectra.com/mcp \
  --header "x-api-key: YOUR_API_KEY"

เอกสารอย่างเป็นทางการ: เอกสาร Claude Code MCP

Cursor

เพิ่มเซิร์ฟเวอร์ในการกำหนดค่า MCP ของ Cursor:

{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}

Cursor ยังรองรับการติดตั้งแบบคลิกเดียวผ่าน deep link โดยใช้การกำหนดค่าที่เข้ารหัสแบบ base64 eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9 (แทน {"url":"https://docs.blockvectra.com/mcp"}):

cursor://anysphere.cursor-deeplink/mcp/install?name=blockvectra&config=eyJ1cmwiOiJodHRwczovL2RvY3MuYmxvY2t2ZWN0cmEuY29tL21jcCJ9

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน (Data API หรือการจัดการบัญชี) ให้เพิ่มออบเจกต์ headers พร้อม API key ของคุณ:

{
  "mcpServers": {
    "blockvectra": {
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

เอกสารอย่างเป็นทางการ: เอกสาร Cursor MCP และ ลิงก์การติดตั้งของ Cursor

VS Code

ใน VS Code ให้กำหนดค่าเซิร์ฟเวอร์ใน .vscode/mcp.json ภายใต้คีย์ระดับบนสุด servers ด้วย type: "http":

{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp"
    }
  }
}

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน ให้เพิ่มออบเจกต์ headers:

{
  "servers": {
    "blockvectra": {
      "type": "http",
      "url": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

เมื่อจัดเก็บข้อมูลประจำตัวที่มีความสำคัญ VS Code รองรับการอ้างอิงตัวแปร input หรือไฟล์สภาพแวดล้อมแทนการฮาร์ดโค้ดคีย์ คุณยังสามารถเพิ่มเซิร์ฟเวอร์โดยใช้คำสั่งใน Command Palette MCP: Add Server ได้อีกด้วย

เอกสารอย่างเป็นทางการ: เอกสารเซิร์ฟเวอร์ VS Code MCP และ ข้อมูลอ้างอิงการกำหนดค่า VS Code MCP

Codex

เพิ่มเซิร์ฟเวอร์โดยใช้ OpenAI Codex CLI:

codex mcp add blockvectra --url https://docs.blockvectra.com/mcp

ใน config.toml ให้กำหนดค่า URL ของเซิร์ฟเวอร์:

[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน ให้กำหนดค่าส่วนหัวคำขอใน config.toml:

[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
http_headers = { "x-api-key" = "YOUR_API_KEY" }

หรืออีกทางหนึ่ง สามารถแมปส่วนหัวจากตัวแปรสภาพแวดล้อม:

[mcp_servers.blockvectra]
url = "https://docs.blockvectra.com/mcp"
env_http_headers = { "x-api-key" = "BLOCKVECTRA_API_KEY" }

เอกสารอย่างเป็นทางการ: เอกสาร OpenAI Codex CLI MCP

Gemini CLI

ในการกำหนดค่า Gemini CLI ให้เพิ่มเซิร์ฟเวอร์ภายใต้ mcpServers โดยใช้ httpUrl สำหรับ Streamable HTTP:

{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน ให้เพิ่มออบเจกต์ headers พร้อม API key ของคุณ:

{
  "mcpServers": {
    "blockvectra": {
      "httpUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

เอกสารอย่างเป็นทางการ: เอกสารเซิร์ฟเวอร์ Gemini CLI MCP

OpenAI Responses API

เมื่อเรียกใช้ OpenAI Responses API ให้ส่งเซิร์ฟเวอร์ MCP ในอาร์เรย์ tools โดยระบุ type: "mcp":

OPENAI_API_BASE="https://api.openai.com/v1"
curl "$OPENAI_API_BASE/responses" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "tools": [{
      "type": "mcp",
      "server_label": "blockvectra",
      "server_url": "https://docs.blockvectra.com/mcp",
      "require_approval": "never"
    }],
    "input": "..."
  }'

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน ให้ใส่ฟิลด์ headers ในนิยามของเครื่องมือ:

{
  "type": "mcp",
  "server_label": "blockvectra",
  "server_url": "https://docs.blockvectra.com/mcp",
  "headers": { "x-api-key": "YOUR_API_KEY" },
  "require_approval": "never"
}

เอกสารอย่างเป็นทางการ: คู่มือเครื่องมือ OpenAI MCP และ ข้อมูลอ้างอิง OpenAI Responses API

Windsurf

ใน Windsurf ให้กำหนดค่าเซิร์ฟเวอร์ภายใต้ mcpServers โดยใช้ฟิลด์ serverUrl field:

{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp"
    }
  }
}

เมื่อคุณต้องการเครื่องมือที่ต้องยืนยันตัวตน ให้เพิ่มออบเจกต์ headers พร้อม API key ของคุณ:

{
  "mcpServers": {
    "blockvectra": {
      "serverUrl": "https://docs.blockvectra.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

Windsurf ยังรองรับการอ้างอิงตัวแปรสภาพแวดล้อม เช่น "x-api-key": "${env:BLOCKVECTRA_API_KEY}"

เอกสารอย่างเป็นทางการ: เอกสาร Windsurf MCP

Claude Desktop และ claude.ai

การกำหนดค่าตัวเชื่อมต่อแบบกำหนดเองทำได้ผ่านหน้าต่างส่วนติดต่อผู้ใช้:

  • claude.ai: ไปที่ Customize > Connectors, คลิก + Add, เลือก Add custom connector และป้อน URL:
    https://docs.blockvectra.com/mcp
  • Claude Desktop: เปิดเมนูการตั้งค่าบัญชีและกำหนดค่าตัวเชื่อมต่อแบบกำหนดเองผ่านอินเทอร์เฟซ connectors

การเชื่อมต่อกับ URL นี้จะช่วยให้ Claude สามารถค้นหาคู่มือ, อ่านเอกสาร Markdown, ตรวจสอบเชนที่รองรับ, ตรวจสอบสถานะเครือข่าย และคำนวณการประเมินราคาได้โดยไม่ต้องใช้ข้อมูลประจำตัว

เอกสารอย่างเป็นทางการ: คู่มือตัวเชื่อมต่อแบบกำหนดเองของ Claude

2. Public JSON endpoint (ไม่ต้องใช้คีย์)

agent สามารถตรวจสอบเชนที่มีอยู่, สถานะแบบเรียลไทม์ และพารามิเตอร์ของแพ็กเกจก่อนส่งคำขอที่มีการวัดปริมาณได้ โดยไม่มี endpoint ใดในกลุ่มนี้ที่ต้องใช้ API key:

  • GET /v1/status และ GET /v1/chains ไม่ต้องยืนยันตัวตนและไม่คิดค่าบริการ
  • GET /v1/plans เป็นแบบสาธารณะและไม่ต้องยืนยันตัวตน

ทั้งสาม endpoint จะส่ง Access-Control-Allow-Origin: *

สถานะการให้บริการ (GET /v1/status)

ส่งคืนความพร้อมของบริการและสถานะการซิงโครไนซ์ของแต่ละเชนสาธารณะ:

curl -s "https://api.blockvectra.com/v1/status"

ฟิลด์การตอบกลับ:

  • checked_at: เวลาที่สร้างสแนปช็อต (RFC 3339 / ISO 8601 UTC)
  • gateway.status: สถานะการทำงานของบริการ ok หมายถึงบริการพร้อมทำงาน; degraded หมายความว่าคำขอแบบชำระเงินจะถูกปฏิเสธจนกว่าจะฟื้นตัว ค่านี้เป็นอิสระจากสถานะโหนดของแต่ละเชน
  • chains[]: เชนที่ให้บริการแก่สาธารณะ:
    • chain: สลักเชน (เช่น robinhood_mainnet)
    • name: ชื่อที่มนุษย์อ่านได้
    • chain_id: EIP-155 chain ID (จำนวนเต็มฐานสิบ)
    • jsonrpc: ให้บริการ JSON-RPC หรือไม่
    • data: ให้บริการ Data API หรือไม่
    • data_features: ความสามารถของ Data API ที่มีให้สำหรับเชนนี้ (เป็นอาร์เรย์ว่างเมื่อ data เป็น false)
    • data_status: สถานะการทำงานของ Data API (ok, syncing หรือ unavailable; มีเฉพาะเมื่อ data เป็น true)
    • status: สถานะโหนดของเชน (ok หรือ unavailable)
    • head: ข้อมูลบล็อกล่าสุด — block (ความสูงบล็อกล่าสุด), time (การประทับเวลาของบล็อก) และ lag_seconds (เวลาของบล็อกล่าช้ากว่าเวลาปัจจุบันเท่าใด) — หรือ null เมื่อไม่ทราบข้อมูล

ตัวอย่างการตอบกลับ:

{
  "checked_at": "2026-09-28T12:00:00Z",
  "gateway": {
    "status": "ok"
  },
  "chains": [
    {
      "chain": "robinhood_mainnet", "name": "Robinhood Chain", "chain_id": 4663,
      "jsonrpc": true,
      "data": true,
      "data_features": [
        "blocks",
        "transactions",
        "address_transactions",
        "transfers",
        "token_metadata",
        "freshness"
      ],
      "status": "ok",
      "head": {
        "block": 73017329,
        "time": "2026-09-28T11:59:58Z",
        "lag_seconds": 2
      }
    }
  ]
}

พารามิเตอร์ของเชน (GET /v1/chains)

ส่งคืนพารามิเตอร์คงที่และนโยบายเมธอดของแต่ละเชนสาธารณะ:

curl -s "https://api.blockvectra.com/v1/chains"

ฟิลด์การตอบกลับ:

  • chains[]: เชนสาธารณะและพารามิเตอร์คงที่:
    • chain: สลักเชน
    • name: ชื่อที่มนุษย์อ่านได้
    • chain_id: EIP-155 chain ID
    • jsonrpc: ให้บริการ JSON-RPC หรือไม่
    • data: ให้บริการ Data API หรือไม่
    • ws: รองรับการเชื่อมต่อ WebSocket หรือไม่
    • subscriptions: ประเภทการสมัครรับข้อมูล WebSocket ที่รองรับ (เช่น newHeads, logs)
    • methods: นโยบายเมธอด:
      • allow: รายชื่อเมธอดที่อนุญาต (เช่น eth_call, debug_traceTransaction)
      • deny: เมธอดที่ปฏิเสธหรือรูปแบบไวลด์การ์ดคำนำหน้า (เช่น eth_newFilter) เมธอดที่ปฏิเสธจะมีผลเหนือกว่าเมธอดที่อนุญาต
    • max_logs_block_range: ช่วงบล็อกสูงสุดที่อนุญาตในคำขอ eth_getLogs รายการเดียว
    • state_window_blocks: หน้าต่างสถานะย้อนหลังในหน่วยบล็อก; null เมื่อมีประวัติครบถ้วนสมบูรณ์
    • info: ข้อมูลส่วนขยายสาธารณะต่อเชน (สงวนไว้; ปัจจุบันเป็นออบเจกต์ว่าง {})
    • public: การกำหนดค่า endpoint สาธารณะที่ไม่ต้องยืนยันตัวตน (หรือ null):
      • url: base URL สำหรับคำขอสาธารณะ
      • methods: เมธอดที่ได้รับอนุญาตบน endpoint สาธารณะ
      • rate_limit: ขีดจำกัดอัตรา (per_ip_rps, burst, batch_max)
      • history_blocks: ประวัติบล็อกที่สามารถเข้าถึงได้บน endpoint สาธารณะ
      • send_raw_rate_limit: ขีดจำกัดอัตราสำหรับการบรอดแคสต์ธุรกรรมผ่าน eth_sendRawTransaction

ตัวอย่างการตอบกลับ:

{
  "chains": [
    {
      "chain": "robinhood_mainnet", "name": "Robinhood Chain", "chain_id": 4663,
      "jsonrpc": true,
      "data": true,
      "ws": true,
      "subscriptions": [
        "newHeads",
        "logs"
      ],
      "methods": {
        "allow": [
          "eth_blockNumber",
          "eth_call",
          "eth_chainId",
          "debug_traceTransaction"
        ],
        "deny": [
          "eth_newFilter",
          "eth_newBlockFilter",
          "eth_newPendingTransactionFilter",
          "eth_getFilterLogs",
          "eth_getFilterChanges",
          "eth_uninstallFilter",
          "eth_subscribe",
          "eth_unsubscribe"
        ]
      },
      "max_logs_block_range": 1000,
      "state_window_blocks": 900,
      "info": {},
      "public": {
        "url": "https://api.blockvectra.com/v1/robinhood_mainnet/public",
        "methods": [
          "eth_chainId",
          "net_version",
          "eth_blockNumber",
          "eth_call"
        ],
        "rate_limit": {
          "per_ip_rps": 3,
          "burst": 20,
          "batch_max": 10
        },
        "history_blocks": 128,
        "send_raw_rate_limit": {
          "per_ip_rps": 1,
          "burst": 3
        }
      }
    }
  ]
}

แพ็กเกจและน้ำหนักของเมธอด (GET /v1/plans)

พารามิเตอร์ของแพ็กเกจจะให้บริการที่ GET https://console-api.blockvectra.com/v1/plans โดย agent สามารถสอบถาม endpoint นี้ขณะรันไทม์เพื่ออ่านขีดจำกัดของแพ็กเกจฟรีที่ใช้งานอยู่ และน้ำหนัก Compute Unit (CU) ของแต่ละเมธอด:

  • free: พารามิเตอร์แพ็กเกจฟรี — signup_units (เครดิตเมื่อลงทะเบียน ในหน่วย units), monthly_units (ระดับน้ำสำหรับเติมเครดิตตามรอบ ในหน่วย units), window_days (ความยาวของรอบการใช้งานเป็นวัน) และ max_calls_per_sec (เพดานการเรียกต่อวินาทีของแพ็กเกจฟรี)
  • pricing: พารามิเตอร์แพ็กเกจชำระเงิน — units_per_usd (units ต่อ 1 USD), cu_per_unit (CU ต่อ unit) และ min_topup_usd (ยอดเติมเงินขั้นต่ำในหน่วย USD)
  • method_weights: น้ำหนัก CU ต่อการเรียก แต่ละรายการคือ { "method": string, "cu_weight": number } โดย method จะระบุชื่อหรือรูปแบบของเมธอด JSON-RPC, น้ำหนักเริ่มต้นสำหรับเมธอดที่ไม่ได้ระบุ หรือการดำเนินการของ Data API เช่น data.<op> ซึ่งน้ำหนักจะคิดต่อเมธอดและไม่ได้แยกตามเชน

3. การยืนยันตัวตนและความปลอดภัยของคีย์

agent ที่ส่งการเรียก RPC ต้องปฏิบัติตามกฎต่อไปนี้:

  • การยืนยันตัวตน: ส่ง API key ได้หนึ่งในสามวิธี ในพาธ: POST /v1/{chain}/{api_key} — รูปแบบพาธจะใช้เฉพาะคีย์ในพาธและละเว้นส่วนหัวทั้งสอง ในส่วนหัว x-api-key: POST /v1/{chain} พร้อม x-api-key: $BLOCKVECTRA_API_KEY ในส่วนหัว Authorization: POST /v1/{chain} พร้อม Authorization: Bearer $BLOCKVECTRA_API_KEY เมื่อมีทั้งสองส่วนหัว ส่วนหัว x-api-key ที่มีค่าจะมีความสำคัญสูงสุด; จะใช้ Bearer ก็ต่อเมื่อไม่มี x-api-key หรือค่าว่างเท่านั้น ทั้งนี้ API key เดียวกันสามารถใช้ได้กับทุกเชนที่รองรับ และใช้ได้กับ Data API (ซึ่งรับคีย์เฉพาะในส่วนหัว x-api-key เท่านั้น)
  • ความปลอดภัยของคีย์: จัดเก็บ API key ไว้ในตัวแปรสภาพแวดล้อมฝั่งเซิร์ฟเวอร์ (เช่น BLOCKVECTRA_API_KEY) หรือเครื่องมือจัดการความลับ (secrets manager) ห้ามฝังคีย์ลงในโค้ดเบราว์เซอร์หรือบันเดิลฝั่งไคลเอนต์ใดๆ แม้ว่า endpoint จะส่งคืน Access-Control-Allow-Origin: * แต่นั่นมีไว้เพื่อการเรียกจากบริการแบ็กเอนด์ ไม่ใช่จากเบราว์เซอร์
  • การวัดปริมาณและการอัปเกรด: การใช้งานจะถูกวัดในหน่วย Compute Units (CU): แต่ละเมธอดใช้ CU ตามน้ำหนักที่กำหนด และยอดคงเหลือ, บักเก็ต CU ตลอดจนขีดจำกัดอัตราของแพ็กเกจฟรีจะถูกแชร์ร่วมกันในทุกเชน หลังจากเติมเงินแบบชำระเงิน เพดานการเรียกต่อวินาทีของแพ็กเกจฟรีจะไม่มีผลบังคับใช้อีกต่อไป แต่ละคีย์ยังคงอยู่ภายใต้การจำกัดอัตรา CU และความจุ burst เครดิตฟรีที่ยังไม่ได้ใช้จะยังคงอยู่ในเครดิตของคุณและสามารถนำไปใช้งานต่อได้ ดูรายละเอียดเพิ่มเติมที่ หน้าราคา

ยังไม่มี API key ใช่ไหม?

หากคุณมีกระเป๋าเงิน Ethereum: โปรดทำตาม คู่มือการลงทะเบียนแบบเป็นโปรแกรม เพื่อลงทะเบียนและสร้าง API key โดยใช้ลายเซ็นกระเป๋าเงิน Ethereum โดยไม่ต้องใช้เบราว์เซอร์ ข้อมูลประจำตัวของ agent คือกระเป๋าเงินของตัวเอง: หาก session token หรือคีย์สูญหาย ให้ยืนยันตัวตนใหม่ด้วยกระเป๋าเงินเดิมเพื่อกู้คืน หากคุณไม่มีกระเป๋าเงิน: ให้ขอให้ผู้ใช้เข้าสู่ระบบที่ console.blockvectra.com, สร้างคีย์ และตั้งค่าเป็นตัวแปรสภาพแวดล้อม BLOCKVECTRA_API_KEY อย่าขอให้ผู้ใช้วางคีย์ลงในแชท

ตรวจสอบยอดคงเหลือ (GET /v1/account)

agent สามารถตรวจสอบยอดคงเหลือปัจจุบันของคีย์, ขีดจำกัด CU และพารามิเตอร์ของคีย์ได้โดยตรงโดยไม่ใช้ Compute Units (CU) สำหรับรูปแบบคำขอ, การจำกัดอัตรา และนิยามฟิลด์การตอบกลับทั้งหมด โปรดดู ตรวจสอบยอดคงเหลือ: GET /v1/account

4. เวิร์กโฟลว์การเลือกเชนสำหรับ Agent

ก่อนส่งการเรียกคำขอ agent สามารถทำตามขั้นตอนเหล่านี้:

  1. ตรวจสอบเชนและนโยบายเมธอด: เรียก GET /v1/chains, ยืนยันว่าเชนเป้าหมายมีอยู่และมี jsonrpc: true รวมทั้งเมธอดที่คุณวางแผนจะเรียกได้รับการอนุญาตใน methods.allow และไม่ได้ถูกปฏิเสธใน methods.deny (การปฏิเสธมีผลเหนือกว่า)
  2. ตรวจสอบสถานะแบบเรียลไทม์: เรียก GET /v1/status และยืนยันว่า gateway.status เป็น ok และ status ของเชนเป้าหมายเป็น ok; ใช้ head.lag_seconds เพื่อตัดสินใจว่าข้อมูลของเชนมีความสดใหม่เพียงพอสำหรับกรณีการใช้งานของคุณหรือไม่ เมื่อโหนดของเชนยังไม่ซิงค์ ทุกเมธอดนอกเหนือจาก eth_chainId จะส่งคืนข้อผิดพลาด JSON-RPC -32010 (HTTP 200 ไม่คิดค่าบริการ) ดังนั้น agent สามารถรอแล้วลองใหม่หรือเลือกเชนอื่นได้
  3. ส่งคำขอ: POST /v1/{chain} พร้อมส่วนหัว x-api-key และบอดี JSON-RPC มาตรฐาน

5. ตัวอย่างการทำงานขั้นต่ำ

ตัวอย่างด้านล่างอ่าน /v1/chains เพื่อเลือกเชนที่อนุญาต eth_blockNumber, ตรวจสอบ /v1/status, แล้วเรียก eth_blockNumber หนึ่งครั้ง

export BLOCKVECTRA_API_KEY="rgw_your_api_key"

# 1. List public chains and their method policy
curl -s "https://api.blockvectra.com/v1/chains"

# 2. Check the service and per-chain status
curl -s "https://api.blockvectra.com/v1/status"

# 3. Call eth_blockNumber on the chain you selected (e.g. robinhood_mainnet)
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -H "x-bv-meter: 1" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

การเรียกที่สำเร็จจะส่งคืนออบเจกต์การตอบกลับ JSON-RPC มาตรฐาน:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x45a27f1"
}

หากต้องการตรวจสอบการคิดค่าบริการ CU ต่อคำขอและยอดคงเหลือหน่วยที่เหลืออยู่ในส่วนหัวการตอบกลับ ให้ใส่ x-bv-meter: 1 สำหรับพฤติกรรมของส่วนหัวและกรณีข้อผิดพลาด โปรดดู ส่วนหัวการตอบกลับสำหรับการคิดค่าบริการและยอดคงเหลือ

ขั้นตอนถัดไป

อัปเดตล่าสุด:

ในหน้านี้