ใช้ blockchain RPC ใน ElizaOS agent ด้วย BlockVectra

ชี้ plugin-evm ของ ElizaOS ไปที่ BlockVectra ด้วยตัวแปรสภาพแวดล้อมสองตัว เริ่มต้นโดยไม่ใช้คีย์บน endpoint สาธารณะ แล้วเพิ่ม docs MCP server ผ่าน plugin-mcp

ElizaOS agent เข้าถึงเชน EVM ผ่าน @elizaos/plugin-evm ซึ่งอ่าน RPC URL จากสภาพแวดล้อม ตั้ง EVM_PROVIDER_URL เป็น https://api.blockvectra.com/v1/eth_mainnet/public แล้วปลั๊กอินจะใช้ BlockVectra สำหรับ Ethereum mainnet โดยไม่ต้องใช้ API key แผนบริการฟรีเพิ่มเมธอดที่ต้องใช้คีย์ด้วย 30,000,000 CU ต่อช่วงเวลา 30 วัน ตรวจสอบเมื่อ

# .env (the plugin also needs the wallet key; keep it in your secret store)
EVM_PRIVATE_KEY=your-wallet-private-key
EVM_PROVIDER_URL=https://api.blockvectra.com/v1/eth_mainnet/public
ETHEREUM_PROVIDER_BASE=https://api.blockvectra.com/v1/base_mainnet/public
{
  "name": "DeFiAgent",
  "plugins": ["@elizaos/plugin-evm"],
  "settings": { "chains": { "evm": ["base"] } }
}

ติดตั้งปลั๊กอินด้วย bun add @elizaos/plugin-evm Ethereum mainnet เปิดใช้งานโดยค่าเริ่มต้น; เชนอื่นทุกเชนที่คุณระบุใน settings.chains.evm ต้องใช้ชื่อ export ของ viem/chains และตัวแปร URL ของเชนนั้นคือ ETHEREUM_PROVIDER_<CHAIN_NAME> เป็นตัวพิมพ์ใหญ่ ตามที่ระบุใน README บน npm ของปลั๊กอิน

ใช้ API key

endpoint สาธารณะครอบคลุมเฉพาะเมธอดใน public.methods ของแต่ละเชน สำหรับเมธอดที่เหลือ ให้ใส่คีย์ในพาธของ URL (/v1/{chain}/{api_key}) ปลั๊กอินรับเพียง URL จึงเป็นที่เดียวที่คีย์เดินทางในพาธ ให้ export ตัวแปรในเชลล์ที่เริ่ม agent เพื่อไม่ให้คีย์ไปอยู่ในไฟล์ที่คุณ commit:

export EVM_PROVIDER_URL=https://api.blockvectra.com/v1/eth_mainnet/${BLOCKVECTRA_API_KEY}
export ETHEREUM_PROVIDER_BASE=https://api.blockvectra.com/v1/base_mainnet/${BLOCKVECTRA_API_KEY}

URL อาจปรากฏในบันทึก พร็อกซี และข้อความข้อผิดพลาด ดังนั้นให้ใช้คีย์แยกต่างหากที่มี cu_cap ต่ำสำหรับ agent และเพิกถอนในคอนโซลหากรั่วไหล

หากต้องการสร้างคีย์โดยไม่ใช้เบราว์เซอร์ ให้ทำตามสี่ขั้นตอนในคู่มือการลงทะเบียนแบบเป็นโปรแกรม: challenge, ลายเซ็น, login แล้ว POST /keys นักพัฒนายังสร้างคีย์ในคอนโซลได้ด้วย คีย์เดียวกันใช้ได้กับทุกเชน ดังนั้นคีย์เดียวรองรับทุกตัวแปร ETHEREUM_PROVIDER_*

เพิ่ม docs MCP server

@elizaos/plugin-mcp ให้ตัวละครใช้ MCP server ระยะไกลผ่าน Streamable HTTP ติดตั้งด้วย bun add @elizaos/plugin-mcp แล้วลงทะเบียน BlockVectra docs server ในการตั้งค่าตัวละคร:

{
  "plugins": ["@elizaos/plugin-evm", "@elizaos/plugin-mcp"],
  "settings": {
    "mcp": {
      "servers": {
        "blockvectra": { "type": "streamable-http", "url": "https://docs.blockvectra.com/mcp" }
      }
    }
  }
}

จากนั้น agent เรียก list_chains, get_status, rpc_call, read_doc และเครื่องมืออื่นที่ระบุไว้ในหน้า MCP serverได้โดยไม่ต้องใช้คีย์ ตัวเลือก HTTP ที่ปลั๊กอินระบุไว้คือ type, url และ timeout; ปลั๊กอินไม่ได้ระบุตัวเลือกส่วนหัว จึงเข้าถึงเครื่องมือ MCP ที่ต้องใช้คีย์จากการกำหนดค่านี้ไม่ได้ ให้คงการอ่านที่ต้องใช้คีย์ไว้ใน plugin-evm ตามข้างต้น

ข้อผิดพลาดที่คุณอาจพบ

การตอบกลับความหมายสิ่งที่ต้องทำ
HTTP 401, -32024, missing_api_keyเรียก URL ที่ต้องใช้คีย์โดยไม่มีคีย์ใส่คีย์ในพาธหรือส่วนหัว x-api-key
HTTP 401, -32024, invalid_api_keyไม่รู้จักคีย์ ถูกปิดใช้งาน หรือถูกเพิกถอนตรวจสอบคีย์ในคอนโซล; คีย์ใหม่ใช้เวลาไม่กี่วินาทีจึงจะเปิดใช้งาน
-32601, method_not_publicเมธอดไม่อยู่ใน public.methods ของเชนเปลี่ยน URL ของเชนนั้นจาก /public เป็นรูปแบบที่ใช้คีย์
ไม่รู้จักเชนชื่อใน settings.chains.evm ไม่ตรงกับชื่อใน viem/chainsใช้ชื่อ viem/chains ที่ถูกต้องตรงตัว

ทุกข้อผิดพลาดของ BlockVectra มี data.reason และ docs_url; รายการทั้งหมดอยู่ในหน้าข้อผิดพลาด

เอกสารทางการ

คำถามที่พบบ่อย

EVM_PROVIDER_URL ใช้กับ Base ได้หรือไม่ ไม่ได้ ตัวแปรนี้ตั้งค่าเฉพาะ Ethereum mainnet; เชนอื่นใช้ ETHEREUM_PROVIDER_<CHAIN_NAME>

agent ลงนามและส่งธุรกรรมผ่าน endpoint สาธารณะได้หรือไม่ eth_sendRawTransaction อยู่ใน public.methods ของเชนที่ระบุไว้ โดยมีขีดจำกัดอัตราต่อ IP ที่ต่ำกว่าของตัวเองภายใต้ public.send_raw_rate_limit ใน GET /v1/chains อ่านขีดจำกัดที่นั่นก่อนสร้างระบบบนฟีเจอร์นี้

MCP server ต้องใช้คีย์หรือไม่ ไม่ต้อง การเชื่อมต่อและเครื่องมือเอกสาร เชน และราคาไม่ต้องใช้คีย์

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

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

ในหน้านี้