เริ่มต้นอย่างรวดเร็ว

อ่านความสูงของบล็อกโดยไม่ต้องใช้คีย์ สร้าง API key ส่งคำขอที่ยืนยันตัวตนครั้งแรก จากนั้นคิวรีกิจกรรมของหุ้น ดึงข้อมูล log ย้อนหลัง หรือรับ webhook

นักพัฒนาและ AI Agent สามารถทดลองใช้ public RPC โดยไม่ต้องใช้คีย์ จากนั้นสร้างคีย์เพื่อใช้งานต่อไป

1. อ่านความสูงของบล็อกโดยไม่ต้องใช้คีย์

เรียก public JSON-RPC endpoint สำหรับเชนตัวอย่าง โดยไม่ต้องสร้างบัญชีหรือระบุ API key:

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet/public" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

id: 1 ของการตอบกลับตรงกับคำขอนี้; result คือความสูงของบล็อกในรูปแบบเลขฐานสิบหกและสามารถเปลี่ยนแปลงได้ระหว่างการเรียกแต่ละครั้ง หากการตอบกลับมี error ให้ตรวจสอบรหัสและสาเหตุ ดู free public RPC endpoints สำหรับเมธอดสาธารณะ ช่วงประวัติ และขีดจำกัดต่อ IP

2. Create an API key

ไปที่ คอนโซล, เข้าสู่ระบบด้วย GitHub, Google หรือกระเป๋าเงิน Ethereum (บัญชีของคุณจะถูกสร้างขึ้นเมื่อเข้าสู่ระบบครั้งแรก) และสร้าง API key โดย secret จะแสดงเพียงครั้งเดียวเท่านั้น: จัดเก็บไว้อย่างปลอดภัยและตั้งค่าเป็นตัวแปรสภาพแวดล้อม BLOCKVECTRA_API_KEY อย่าใส่ไว้ในโค้ดฝั่งเบราว์เซอร์ของไคลเอนต์ บัญชีใหม่รับ 30,000,000 CU เมื่อลงทะเบียน — ไม่ต้องใช้บัตรเครดิต

ยังไม่มี API key?

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

3. ส่งคำขอที่ยืนยันตัวตนครั้งแรก

อ่านความสูงของบล็อกของเชนเดียวกันด้วยส่วนหัว x-api-key โดย URL จะลงท้ายด้วยชื่อเชน โดยไม่มีเครื่องหมายทับปิดท้าย:

: "${BLOCKVECTRA_API_KEY:?Set BLOCKVECTRA_API_KEY first}"

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H 'Content-Type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

result เป็นความสูงของบล็อกในรูปแบบเลขฐานสิบหกอีกครั้ง คำขอนี้ใช้ CU; ดู เอกสารอ้างอิง JSON-RPC สำหรับน้ำหนักของเมธอดและรหัสข้อผิดพลาด และ ราคา สำหรับราคาปัจจุบัน คีย์ใหม่จะมีผลในเวลาประมาณ 5 วินาที; หากคุณได้รับ invalid_api_key ให้รอสักครู่แล้วลองใหม่ ดู ข้อผิดพลาดทั่วไป ด้านล่างสำหรับความล้มเหลวอื่นๆ

4. ดำเนินการต่อด้วยงานทางธุรกิจ

ข้อมูลอ้างอิง

API key และยอดคงเหลือ

เทมเพลตเริ่มต้นฉบับสมบูรณ์: blockvectra/agent-quickstart

ทุกคีย์จะมีลักษณะเป็น rgw_ ตามด้วยอักขระเลขฐานสิบหก 64 ตัว เช่น rgw_1f2e... (ตัดทอน) เก็บรักษาเป็นความลับ — ทุกคนที่มีคีย์สามารถใช้ยอดคงเหลือของคุณได้

เมื่อยอดคงเหลือของคุณไม่เพียงพอ เซิร์ฟเวอร์จะส่งกลับ HTTP 402 (รหัสข้อผิดพลาด JSON-RPC -32020; error.code ของ Data API คือ insufficient_balance) ไปที่หน้า การเรียกเก็บเงิน ในคอนโซลเพื่อตรวจสอบยอดคงเหลือและวิธีการเติมเงินของคุณ

ทดลองใช้งานโดยไม่ต้องใช้คีย์

คุณสามารถเรียกใช้เอนด์พอยต์ JSON-RPC สาธารณะได้ทันทีโดยไม่ต้องสร้างบัญชีหรือระบุ API key

# เอนด์พอยต์สาธารณะโดยตรง:
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet/public" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

# หรือใช้รูปแบบ fallback ของ API key (มีค่าเริ่มต้นเป็นสาธารณะเมื่อไม่ได้ตั้งค่า BLOCKVECTRA_API_KEY):
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet/${BLOCKVECTRA_API_KEY:-public}" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

เอนด์พอยต์ในตัวอย่างด้านล่างนี้จำกัดอัตราการเรียกต่อ IP (3 req/s, burst 20, ขนาดแบทช์สูงสุด 10) คำขอที่เกินขีดจำกัดอัตราจะส่งคืน HTTP 429 พร้อมเหตุผล public_rate_limit หรือ public_pool_busy (พร้อมส่วนหัว Retry-After); เมธอดที่ไม่รองรับจะส่งคืนข้อผิดพลาด JSON-RPC -32601 (method_not_public).

eth_getLogs / public.logs: {"address_required":true,"max_addresses":1,"max_block_range":100,"max_results":1000,"max_response_bytes":1048576,"batch_max":1,"block_hash_supported":false}

public.history_blocks: 900

เอนด์พอยต์สาธารณะตามเชน

  • Arbitrum One: https://api.blockvectra.com/v1/arb_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Arc: https://api.blockvectra.com/v1/arc_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Base: https://api.blockvectra.com/v1/base_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • BNB Smart Chain: https://api.blockvectra.com/v1/bsc_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 100

  • Ethereum: https://api.blockvectra.com/v1/eth_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Ethereum Sepolia: https://api.blockvectra.com/v1/eth_sepolia/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Fraxtal: https://api.blockvectra.com/v1/fraxtal_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • HyperEVM: https://api.blockvectra.com/v1/hyperevm_mainnet/public — อ่านอย่างเดียว

    public.history_blocks: 1000

  • Ink: https://api.blockvectra.com/v1/ink_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Katana: https://api.blockvectra.com/v1/katana_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Metal L2: https://api.blockvectra.com/v1/metall2_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Mode: https://api.blockvectra.com/v1/mode_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Polygon: https://api.blockvectra.com/v1/polygon_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 126

  • Robinhood Chain: https://api.blockvectra.com/v1/robinhood_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    eth_getLogs / public.logs: {"address_required":true,"max_addresses":1,"max_block_range":100,"max_results":1000,"max_response_bytes":1048576,"batch_max":1,"block_hash_supported":false}

    public.history_blocks: 900

  • Robinhood Chain Testnet: https://api.blockvectra.com/v1/robinhood_testnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Unichain: https://api.blockvectra.com/v1/unichain_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

  • Zora: https://api.blockvectra.com/v1/zora_mainnet/public — อ่านและบรอดแคสต์ธุรกรรมที่ลงนามแล้ว (eth_sendRawTransaction)

    public.history_blocks: 1000

endpoint ข้อมูลเมทาดาตาสาธารณะสองรายการต่อไปนี้แสดงสถานะการบริการและการกำหนดค่าของแต่ละเชน; ไม่จำเป็นต้องใช้ API key และไม่คิดค่าบริการ

ตรวจสอบสถานะการทำงานของบริการและเชน

curl https://api.blockvectra.com/v1/status

ส่งกลับการประทับเวลาที่ตรวจสอบ checked_at, สถานะการทำงานของบริการ gateway.status และความคืบหน้าในการซิงค์โหนดของแต่ละเชนที่รองรับ sync, ความสูงของบล็อก head และความหน่วงเวลา head:

{
  "checked_at": "2026-10-03T13:30:47Z",
  "gateway": {
    "status": "ok"
  },
  "chains": [
    {
      "chain": "bsc_mainnet",
      "name": "BNB Smart Chain",
      "chain_id": 56,
      "jsonrpc": true,
      "data": true,
      "data_features": [
        "blocks",
        "transactions",
        "address_transactions",
        "transfers",
        "token_metadata",
        "freshness"
      ],
      "data_status": "ok",
      "data_head_block": 125492675,
      "data_head_age_seconds": 3,
      "status": "ok",
      "sync": {
        "stage": "synced",
        "node_block": 125492676,
        "target_block": null
      },
      "head": {
        "block": 125492676,
        "time": "2026-10-03T13:30:45Z",
        "lag_seconds": 2
      }
    }
  ]
}

สอบถามเชนที่รองรับและนโยบายเมธอด

curl https://api.blockvectra.com/v1/chains

ส่งกลับ chain_id ของแต่ละเชนที่รองรับ, แฟล็กความสามารถสำหรับ JSON-RPC, Data API และ WebSocket, นโยบายอนุญาตและปฏิเสธเมธอด (methods.allow และ methods.deny), ขีดจำกัดช่วงบล็อก log ต่อหนึ่งคิวรี max_logs_block_range และหน้าต่างสถานะย้อนหลัง state_window_blocks:

{
  "chains": [
    {
      "chain": "bsc_mainnet",
      "name": "BNB Smart Chain",
      "chain_id": 56,
      "jsonrpc": true,
      "data": true,
      "ws": false,
      "subscriptions": [],
      "methods": {
        "allow": [
          "eth_blockNumber",
          "eth_call",
          "eth_chainId",
          "eth_getLogs"
        ],
        "deny": [
          "eth_newFilter",
          "eth_subscribe",
          "eth_unsubscribe"
        ]
      },
      "max_logs_block_range": 1000,
      "state_window_blocks": 100,
      "info": {}
    }
  ]
}

เลือกเชน

ทุก endpoint ของ BlockVectra มีขอบเขตเฉพาะเชน: คำขอ JSON-RPC จะมีชื่อเชน {chain} อยู่ในพาธ URL และคำขอ Data API จะขึ้นต้นเส้นทางด้วยชื่อเชน ดู Supported Chains สำหรับเชนที่พร้อมใช้งานในปัจจุบันและตัวระบุของเชน

ตัวอย่าง endpoint ของ JSON-RPC เปลี่ยนตามเชนตัวอย่างที่เลือก ตัวอย่าง Data API ด้านล่างใช้ robinhood_mainnet

ตัวเลือกการยืนยันตัวตนอื่นๆ และตัวอย่างภาษาโปรแกรม

endpoint ของ JSON-RPC มีขอบเขตเฉพาะเชน: POST /v1/{chain}/{api_key} โดยใส่คีย์ไว้ในพาธ หรือ POST /v1/{chain} โดยใส่คีย์ไว้ในส่วนหัว x-api-key ทั้งนี้ {chain} คือชื่อเชนที่ Data API ใช้อยู่เช่นกัน; endpoint ตัวอย่างคือ https://api.blockvectra.com/v1/robinhood_mainnet การเรียก eth_subscribe ผ่าน HTTP จะส่งกลับ -32601; การติดตามผ่าน WebSocket มีการระบุแยกตามเชนใน Supported Chains API จะส่ง Access-Control-Allow-Origin: * แต่คุณควรเก็บ API key ไว้เป็นความลับและส่งคำขอจากบริการแบ็กเอนด์แทนที่จะเป็นโค้ดฝั่งเบราว์เซอร์ของไคลเอนต์

คุณสามารถส่งคีย์ได้สามวิธี: ในพาธ URL (POST /v1/{chain}/{api_key} ซึ่งใช้เฉพาะคีย์ในพาธและละเว้นส่วนหัวทั้งสอง), ในส่วนหัว x-api-key หรือในส่วนหัว Authorization: Bearer <api_key>

คีย์ในพาธ URL

: "${BLOCKVECTRA_API_KEY:?Set BLOCKVECTRA_API_KEY first}"

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet/$BLOCKVECTRA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

คีย์ในส่วนหัวคำขอ

: "${BLOCKVECTRA_API_KEY:?Set BLOCKVECTRA_API_KEY first}"

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H 'Content-Type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

No trailing slash

เมื่อคุณส่งคีย์ในส่วนหัว ให้เรียก https://api.blockvectra.com/v1/robinhood_mainnet ตามที่แสดงไว้อย่างถูกต้อง: URL จะลงท้ายด้วยชื่อเชน โดยไม่มี เครื่องหมายทับปิดท้าย JSON-RPC ให้บริการเฉพาะที่ /v1/{chain} และ /v1/{chain}/{api_key} เท่านั้น เครื่องหมายทับปิดท้าย (เช่น /v1/{chain}/) หรือคำขอที่ไม่มีเซกเมนต์ของเชน (เช่น /v1 หรือ /v1/) จะส่งกลับ 404 พร้อม body ที่ว่างเปล่า (empty body)

ส่วนหัว Authorization: Bearer <api_key> ก็สามารถใช้งานได้เช่นกัน สำหรับ POST /v1/{chain} ค่า x-api-key ที่ไม่ว่างจะมีลำดับความสำคัญสูงกว่า Bearer และ Bearer จะถูกใช้เฉพาะเมื่อไม่มี x-api-key หรือค่าว่างเปล่าเท่านั้น รูปแบบในพาธจะละเว้นส่วนหัวทั้งสอง

การเรียกแบบแบทช์

ส่งอาร์เรย์เพื่อทำการเรียกหลายรายการในคำขอเดียว (สูงสุด 100 รายการต่อแบทช์) โปรดทราบว่าแต่ละ API key จะมี CU bucket (การเติม cu_per_sec, ความจุ burst_cu — ค่าเริ่มต้นคือ 100 CU/s และ burst 400 CU; หลังเติมเงินแบบชำระเงิน แต่ละคีย์จะมีอย่างน้อย 2,000 CU/s และ burst 10,000 CU และขีดจำกัดแบบกำหนดเองที่สูงกว่าจะยังคงอยู่; แสดงต่อคีย์ในตารางคีย์ของคอนโซล); คำขอเดี่ยว — รวมถึงทั้งแบทช์ JSON-RPC — ที่มี CU รวมเกินความจุ burst ของคีย์จะถูกปฏิเสธด้วย -32022 request_exceeds_burst แม้ว่าจะอยู่ภายใต้ขีดจำกัด 100 การเรียกต่อแบทช์ก็ตาม; ให้แบ่งออกเป็นแบทช์ย่อยๆ ตัวอย่างนี้อ่าน Chain ID และยอดคงเหลือของบัญชีในการเดินทางไปกลับครั้งเดียว:

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H 'Content-Type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '[
    {"jsonrpc":"2.0","id":1,"method":"eth_chainId"},
    {"jsonrpc":"2.0","id":2,"method":"eth_getBalance","params":["0x1111111111111111111111111111111111111111","latest"]}
  ]'

การตอบกลับจะส่งกลับมาเป็นอาร์เรย์ตามลำดับเดียวกับคำขอ โดยจับคู่ตาม id

หากเซิร์ฟเวอร์ปฏิเสธทั้งแบทช์แทน — ยอดคงเหลือไม่เพียงพอ, การจำกัดอัตรา, ความจุ burst หรือแบทช์มีขนาดใหญ่เกินไป (ดู ข้อผิดพลาดทั่วไป ด้านล่าง) — จะส่งกลับออบเจกต์ข้อผิดพลาด JSON-RPC เดี่ยวแทนอาร์เรย์; โหมด batch: true ของ viem จะแสดงผลข้อผิดพลาดนี้เป็น UnknownRpcError ที่ไม่เปิดเผยรายละเอียด ดังนั้นให้ลองใหม่ด้วยการเรียกเดี่ยวเพื่อดูข้อผิดพลาดที่แท้จริง

ทำความเข้าใจการเรียกเก็บเงิน CU

ทุกการเรียกที่คิดค่าบริการจะใช้ Compute Units (CU): การเรียกราคาถูก เช่น eth_blockNumber หรือ eth_chainId มีค่าใช้จ่ายน้อยที่สุด, การอ่านทั่วไป เช่น eth_getBlockByNumber มีค่าใช้จ่ายเพิ่มขึ้นเล็กน้อย, การเรียกที่หนักขึ้น เช่น eth_call หรือ eth_getLogs มีค่าใช้จ่ายมากขึ้น และเมธอด trace การทำงาน (เช่น debug_traceTransaction) มีค่าใช้จ่ายมากที่สุด การใช้งานจะถูกคิดค่าบริการตามแต่ละบัญชีต่อช่วงเวลาหนึ่งชั่วโมง โดยปัดเศษลงเป็นหน่วยการเรียกเก็บเงินเต็มจำนวน (1 หน่วย = 1,000 CU) และยกยอดส่วนที่เหลือไปยังช่วงเวลาถัดไป (ดังนั้น เมื่อรวมหลายช่วงเวลา ยอดคิดค่าบริการทั้งหมดคือ floor(CU ทั้งหมด / 1,000)); การสรุปยอดจะดำเนินการประมาณ 15 นาทีหลังจากสิ้นสุดช่วงเวลา ตัวอย่างเช่น: ยกยอดมา 508 CU + ใช้งานไป 2557 CU = 3065 CU ซึ่งจะส่งผลให้คิดค่าบริการ 3 หน่วยการเรียกเก็บเงิน และยกยอด 65 CU ไปยังช่วงเวลาถัดไป ดู ราคา สำหรับราคาปัจจุบัน

ตารางน้ำหนักรายเมธอดฉบับเต็มและรหัสข้อผิดพลาดอยู่ใน API Reference → JSON-RPC — หน้านี้ครอบคลุมเฉพาะรูปแบบของคำขอเท่านั้น

ข้อผิดพลาดทั่วไป

สิ่งที่คุณทำสิ่งที่ส่งกลับมาการดำเนินการ
เชนที่ไม่รู้จักหรือยังไม่ได้เปิดเผยแบบสาธารณะHTTP 404 พร้อม JSON body error.data.reason: "unknown_chain"ตรวจสอบชื่อเชนใน URL
คำขอที่ไม่มีเซกเมนต์ของเชน (เช่น /v1 หรือ /v1/)HTTP 404 พร้อม body ที่ว่างเปล่า (empty body)ระบุชื่อเชนใน URL (/v1/{chain})
API key ขาดหายไป, ไม่รู้จัก หรือถูกปิดใช้งานHTTP 401, รหัส JSON-RPC -32024 (missing_api_key หรือ invalid_api_key)ใช้ API key ที่ถูกต้องและใช้งานอยู่ (คีย์ที่สร้างใหม่หรือสลับคีย์จะมีผลในทุกอินสแตนซ์ภายในเวลาประมาณ 5 วินาที; ในระหว่างนี้อาจส่งกลับ 401 invalid_api_key หรือ 503 -32021 (พร้อม Retry-After) เมื่อไม่สามารถยืนยันสถานะการเรียกเก็บเงินได้ในขณะนั้น ดังนั้นให้รอสักครู่แล้วลองใหม่)
ยอดคงเหลือเป็นศูนย์หรือติดลบHTTP 402, รหัส JSON-RPC -32020เติมเงินในยอดคงเหลือของคุณ หรือรอการเติมฟรี
ส่งคำขอเร็วเกินไป (ขีดจำกัดอัตราหรือโอเวอร์โหลดชั่วคราว)HTTP 429 (หรือ 200), รหัส JSON-RPC -32005ลองใหม่ในภายหลัง (ปฏิบัติตาม Retry-After เมื่อมีระบุ)
คำขอเดี่ยวหรือแบทช์เกินความจุ burst ของคีย์ (burst_cu, ค่าเริ่มต้น 400 CU; อัตราเริ่มต้น 100 CU/s) (บัญชีแบบชำระเงิน: burst อย่างน้อย 10,000 CU, อัตราอย่างน้อย 2,000 CU/s)HTTP 429, รหัส JSON-RPC -32022 (request_exceeds_burst)แบ่งคำขอออกเป็นแบทช์ย่อยๆ (ไม่มีทางสำเร็จได้ในรูปแบบที่ส่ง)
โหนดอัปสตรีมไม่พร้อมใช้งานชั่วคราวHTTP 200, รหัส JSON-RPC -32603 (upstream unavailable), ไม่คิดค่าบริการลองส่งคำขอใหม่อีกครั้ง
สถานะย้อนหลังอยู่นอกหน้าต่างสถานะของเชนนี้ (ดู state_window_blocks ใน GET /v1/chains)HTTP 200, รหัส JSON-RPC -32011, ไม่คิดค่าบริการคิวรีบล็อกที่เป็นปัจจุบันมากขึ้น
ไม่พบธุรกรรมหรือบล็อก หรือการตอบกลับมีขนาดใหญ่เกินไป; บน Ethereum การคิวรีบล็อก / ใบเสร็จ / log นอกหน้าต่างล่าสุดจะส่งกลับ -32000 "old data not available due to pruning" (ไม่คิดค่าบริการ; ดู Supported Chains → Ethereum)HTTP 200, รหัส JSON-RPC -32000ปรับเปลี่ยนคำขอ (ตรวจสอบแฮชหรือหมายเลขบล็อก; แฮช trace ที่มีรูปแบบไม่ถูกต้องจะส่งกลับไม่พบธุรกรรม)
ไม่อนุญาตให้ใช้ Tracer หรือไม่อนุญาตให้ใช้ค่า timeout ของ trace (การเรียก debug_trace)HTTP 200, รหัส JSON-RPC -32602, ไม่คิดค่าบริการใช้ tracer เนทีฟที่ได้รับอนุญาต (callTracer, flatCallTracer, prestateTracer, 4byteTracer, noopTracer หรือละเว้น) และ timeout ≤ 30s
เมธอดที่รายการเมธอดของเชนไม่อนุญาต (ดู Supported Chains)HTTP 200, รหัส JSON-RPC -32601, ไม่คิดค่าบริการเรียกเฉพาะเมธอดที่เชนอนุญาต
JSON body มีรูปแบบไม่ถูกต้องHTTP 200, รหัส JSON-RPC -32700, ไม่คิดค่าบริการแก้ไขไวยากรณ์ JSON ของคำขอ
มากกว่า 100 การเรียกในหนึ่งแบทช์HTTP 200, รหัส JSON-RPC -32600 (batch too large), ไม่คิดค่าบริการแบ่งแบทช์ออกเป็นไม่เกิน 100 การเรียก

การปฏิเสธข้างต้นจะไม่ถูกคิดค่าบริการเลย ทุกการเรียกที่ได้รับการยอมรับและได้รับการตอบกลับจะถูกคิดค่าบริการตามน้ำหนัก CU ที่เผยแพร่ของเมธอดนั้น; ตารางรหัสข้อผิดพลาดจะแสดงรายการกรณีที่ไม่คิดค่าบริการ (ดูคอลัมน์ Billed ใน Error Codes)

เรียกใช้งาน Data API

Data API ให้บริการข้อมูลเชนแบบอ่านอย่างเดียว (บล็อก, ธุรกรรม, ยอดคงเหลือ, ผู้ถือ, กิจกรรม DEX และอื่นๆ) ในรูปแบบ REST/JSON ทุกเส้นทางยกเว้น GET https://api.blockvectra.com/v1/data/chains จะขึ้นต้นด้วยตัวระบุเชน: robinhood_mainnet คือตัวระบุเชน (ฟิลด์ chain ที่ส่งกลับมาจาก /chains และใน meta) ที่ใช้ในทุกพาธด้านล่าง GET https://api.blockvectra.com/v1/data/chains แสดงเฉพาะเชนสาธารณะและส่งกลับเฉพาะ {"data": [...]} เท่านั้น (ไม่มี meta, ไม่มี next_cursor) คำขอจะถูกวัดปริมาณและคิดค่าบริการเป็น Compute Units (CU); เฉพาะการตอบกลับสำเร็จ 2xx เท่านั้นที่จะถูกคิดค่าบริการ

ทุกคำขอจำเป็นต้องใช้ API key เดียวกันกับ JSON-RPC — โดยส่งในส่วนหัว x-api-key ทุกการตอบกลับที่สำเร็จซึ่งมีขอบเขตเฉพาะเชนจะประกอบด้วย data (เพย์โหลด) และ meta (chain, chain_slug (รูปแบบตัวพิมพ์ใหญ่ของ chain), chain_external_id, as_of_block, safe_block, finalized_block, coverage, refreshed_at; โดย refreshed_at อาจเป็น null ซึ่งหมายความว่าไม่ทราบเวลาอัปเดตของข้อมูลและควรได้รับการปฏิบัติเสมือนเป็นข้อมูลที่ไม่อัปเดต — endpoint ที่อิงตามบล็อกจะส่งกลับค่าเสมอ) สำหรับ endpoint รายการที่มีการแบ่งหน้า อาจส่งกลับ next_cursor เพิ่มเติม (สตริงที่ไม่เปิดเผยโครงสร้างภายใน ไม่เคยเป็น null) ส่งคิวเซอร์ที่ได้กลับไปโดยไม่แก้ไขและดำเนินการต่อจนกว่า next_cursor จะไม่ปรากฏอีก บาง endpoint จะส่งคิวเซอร์แบบ optimistic หลังจากได้หน้าเต็ม ดังนั้นหน้าถัดไปอาจว่างเปล่า ดูการรองรับการแบ่งหน้าของแต่ละ endpoint ได้ที่ เอกสารอ้างอิง Data API การตอบกลับข้อผิดพลาดมักจะมี {"error":{"code","message"}} — โดย 409 not_indexed_yet จะเพิ่ม indexed_through (บล็อกที่ทำดัชนีสูงสุด) เชนที่ไม่รู้จักหรือไม่เปิดเผยแบบสาธารณะจะส่งกลับ HTTP 404 พร้อม error.code not_found (ไม่คิดค่าบริการ; ชื่อเชนต้องเป็นสลักตัวพิมพ์เล็กตรงกันทุกประการ); API key ที่ขาดหายไป ไม่รู้จัก หรือถูกปิดใช้งาน จะส่งกลับ HTTP 401 พร้อม error.code missing_api_key หรือ invalid_api_key คำขอที่ถูกจำกัดอัตราจะส่งกลับ HTTP 429 (error.code rate_limited, data.reason: "key_rate_limit") และยอดคงเหลือหมดจะส่งกลับ HTTP 402 (error.code insufficient_balance); ทั้งสองกรณีไม่คิดค่าบริการ ค่าที่อาจเกิน 2^53 (ยอดคงเหลือ, จำนวนโทเคน) จะเป็นสตริงทศนิยม และไม่เคยเป็นตัวเลข JSON

ค้นหาบล็อกด้วยหมายเลข:

curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/blocks/72838701" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
{
  "data": {
    "number": 72838701,
    "hash": "0x9f2c1e7a4b6d3f805e1c9a72b4d6f1e0a3c8b5d7e2f4a1c6b9d3e7f0a2c4b6d8",
    "parent_hash": "0x1a3c5e7f9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a",
    "timestamp": "2026-09-26T05:41:07Z",
    "miner": "0x00000000000000000000000000000000000a4b05",
    "gas_limit": 32000000,
    "gas_used": 4821932,
    "base_fee_per_gas": "100000000",
    "state_root": "0x2b4d6f8a1c3e5b7d9f1a3c5e7b9d1f3a5c7e9b1d3f5a7c9e1b3d5f7a9c1e3b5d",
    "transactions_root": "0x3c5e7b9d1f3a5c7e9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e",
    "receipts_root": "0x4d6f8a1c3e5b7d9f1a3c5e7b9d1f3a5c7e9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f",
    "tx_count": 239,
    "size": 48213,
    "l1_block_number": null,
    "extra": {}
  },
  "meta": {
    "chain": "robinhood_mainnet",
    "chain_slug": "ROBINHOOD_MAINNET",
    "chain_external_id": "eip155:4663",
    "as_of_block": 72838957,
    "safe_block": 72838800,
    "finalized_block": 72838701,
    "coverage": "full",
    "refreshed_at": "2026-09-27T02:15:03Z"
  }
}

หมายเลขที่สูงกว่า head ที่ทำดัชนีไว้ (as_of_block) จะส่งกลับ 409 (error.code: "not_indexed_yet") พร้อม indexed_through ที่บอกบล็อกสูงสุดที่ทำดัชนีไว้ — ข้อมูลยังมาไม่ถึง ดังนั้นให้ลองใหม่ในภายหลัง หมายเลขบล็อกที่อยู่ก่อนประวัติที่ครอบคลุมของเชนทั้งหมด (coverage.from_block) จะส่งกลับ 422 (error.code: "no_coverage") ภายในขอบเขตความครอบคลุม หมายเลขที่อยู่ที่หรือต่ำกว่า as_of_block ที่ไม่มีแถวข้อมูลสด (ไม่เคยถูกทำดัชนี หรือถูกย้อนกลับโดย reorg) จะส่งกลับ 404 (error.code: "not_found")

ตรวจสอบความสดใหม่ของข้อมูล (ระยะห่างที่แต่ละชุดข้อมูลที่ติดตามล้าหลัง head ของเชน — มีประโยชน์สำหรับหน้าสถานะหรือการตรวจสอบล่วงหน้าก่อนที่คุณจะเชื่อถือการคิวรี):

curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/status/freshness" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
{
  "data": [
    {
      "dataset": "blocks",
      "category": "raw",
      "max_block_number": 72838957,
      "max_day": null,
      "max_time": "2026-09-27T02:15:01Z",
      "seconds_behind": 0,
      "blocks_behind": null,
      "days_behind": null,
      "checked_at": "2026-09-27T02:15:07Z"
    }
  ],
  "meta": {
    "chain": "robinhood_mainnet",
    "chain_slug": "ROBINHOOD_MAINNET",
    "chain_external_id": "eip155:4663",
    "as_of_block": 72838957,
    "safe_block": 72838800,
    "finalized_block": 72838701,
    "coverage": "full",
    "refreshed_at": "2026-09-27T02:15:07Z"
  }
}

(ย่อ: การตอบกลับมีหนึ่งแถวต่อหนึ่งชุดข้อมูล; แสดงเฉพาะแถว blocks เท่านั้น แถว traces ยังมีฟิลด์ coverage_from_block, coverage_to_block และ coverage_complete อีกด้วย)

หากข้อมูลความสดใหม่ไม่พร้อมใช้งานชั่วคราวสำหรับเชนนี้ คำขอนี้จะส่งกลับ 503 (error.code: "unavailable") แทนผลลัพธ์บางส่วน; การตอบกลับจะมีส่วนหัว Retry-After (วินาที) — ให้รออย่างน้อยตามเวลานั้น แล้วจึงลองใหม่

แสดงรายการยอดคงเหลือ ERC-20 ของแอดเดรส (สแนปช็อตที่กรองเฉพาะยอดคงเหลือที่ไม่เป็นศูนย์ เรียงตามโทเคน):

curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/addresses/0x1111111111111111111111111111111111111111/balances" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
{
  "data": [
    { "token": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "balance": "185371464119396", "symbol": "WETH", "decimals": 18 },
    { "token": "0x2295f15bd4914ae9b4685f01d52f4e6f89bf8b03", "balance": "10000000000000000", "symbol": "WNVDA", "decimals": 18 }
  ],
  "meta": {
    "chain": "robinhood_mainnet",
    "chain_slug": "ROBINHOOD_MAINNET",
    "chain_external_id": "eip155:4663",
    "as_of_block": 72838957,
    "safe_block": 72838800,
    "finalized_block": 72838701,
    "coverage": "full",
    "refreshed_at": "2026-09-27T02:10:00Z"
  }
}

แอดเดรสที่ไม่มีจำนวนยอดคงเหลือที่ไม่เป็นศูนย์จะยังคงส่งกลับ 200 พร้อม data: [] — ไม่เคยส่งกลับ 404 ระบุ ?limit= (ค่าเริ่มต้น 50, สูงสุด 500) และ next_cursor ที่ส่งกลับมาเพื่อเปิดดูหน้าถัดไป

ความครอบคลุมของ endpoint ทั้งหมด — บล็อก, ธุรกรรม, แอดเดรส, โทเคน, NFT, DEX, หุ้นโทเค็น — มีอยู่ใน API Reference → Data API

แหล่งข้อมูลเพิ่มเติม

FAQ

รองรับเชนใดบ้าง?

รองรับ 17 เชน: Arbitrum One, Arc, Base, BNB Smart Chain, Ethereum, Ethereum Sepolia, Fraxtal, HyperEVM, Ink, Katana, Metal L2, Mode, Polygon, Robinhood Chain, Robinhood Chain Testnet, Unichain, Zora โดยรายการจะเป็นไปตาม GET /v1/chains และจะอัปเดตเมื่อมีเชนใหม่เปิดตัว ดูสถานะแบบเรียลไทม์ได้ที่ หน้าสถานะ ดูเชนที่รองรับ →

รองรับ WebSocket หรือไม่?

การเรียกใช้ eth_subscribe ผ่าน HTTP จะส่งกลับ -32601 บนเชนที่ ws เป็น true ใน /v1/chains จะสามารถใช้งาน eth_subscribe ผ่าน WebSocket ได้ มิฉะนั้นให้ใช้วิธี poll eth_getLogs แทน ดูเชนที่รองรับ →

สามารถค้นหาสถานะย้อนหลังและ trace ได้หรือไม่?

ได้ แต่จะแตกต่างกันไปตามแต่ละเชน ช่วงเวลาประวัติสถานะย้อนหลังจะระบุในฟิลด์ state_window_blocks ของ /v1/chains (null หมายถึงประวัติทั้งหมด) ความพร้อมใช้งานของ trace จะขึ้นอยู่กับว่า methods.allow ของเชนนั้นมีเมธอด debug_trace (เช่น debug_traceTransaction) หรือไม่ และช่วงบล็อกสูงสุดสำหรับคำขอ eth_getLogs แต่ละครั้งคือ max_logs_block_range ดูไดเรกทอรีเชนและพารามิเตอร์ของแต่ละเชน →

สามารถใช้ API key เดียวกับทุกเชนได้หรือไม่?

ได้ API key เดียวสามารถใช้ได้กับ JSON-RPC บนทุกเชนที่รองรับ และใช้กับ Data API บนเชนที่เปิดให้บริการ โดยคีย์จะเป็นของบัญชี ไม่ได้ผูกกับเชนใดเชนหนึ่งโดยเฉพาะ อ่านคู่มือหนึ่งคีย์สำหรับหลายเชน →

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

ในหน้านี้