# การตั้งค่า Custom RPC บน MetaMask และ Rabby: URL และ Chain ID

> Source: https://docs.blockvectra.com/th/guides/wallet-custom-rpc/

เพิ่ม RPC URL, Chain ID และสัญลักษณ์เนทีฟใน MetaMask หรือ Rabby และใช้คีย์เฉพาะสำหรับกระเป๋าเงินเมื่อจำเป็นต้องยืนยันตัวตน

* **ขั้นตอนแรก:** [อ่านตารางพารามิเตอร์เครือข่ายของกระเป๋าเงิน](#supported-chains-network-parameter-table) และกรอกฟิลด์ต่างๆ ลงในกระเป๋าเงินของคุณ โดยใช้ `/v1/{chain}/{api_key}` สำหรับ RPC ที่ต้องยืนยันตัวตน
* **สำเร็จเมื่อ:** การบันทึกเพิ่มเครือข่ายและสลับไปยังเครือข่ายนั้นใน MetaMask; Chain ID ที่กำหนดค่าไว้ตรงกับ ID ที่ส่งกลับมาจาก endpoint

[พารามิเตอร์ของเชนและตัวเลือกการเข้าถึง](https://blockvectra.com/en/chains/robinhood_mainnet/)

## 1. ทำไมจึงควรใช้ Custom RPC

โดยทั่วไปแล้วระบบนิเวศบล็อกเชนจะมี public RPC endpoint เริ่มต้นสำหรับการใช้งานพื้นฐานของชุมชนและการเริ่มต้นของนักพัฒนา อย่างไรก็ตาม เอกสารทางการของเครือข่ายได้กำหนดขีดจำกัดอัตราและขอบเขตการใช้งานไว้อย่างชัดเจนสำหรับ endpoint เหล่านี้:

* **Robinhood Chain**:
  หน้าเอกสารทางการ [Connecting to Robinhood Chain](https://docs.robinhood.com/chain/connecting) ระบุว่า endpoint สาธารณะ `https://rpc.mainnet.chain.robinhood.com` มีการจำกัดอัตราและไม่แนะนำสำหรับเวิร์กลื่นบนโปรดักชัน (*The following public endpoints are available but are rate-limited and not recommended for production use. For production, use a provider*)
* **HyperEVM**:
  หน้าเอกสารทางการ [Rate limits and user limits](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/rate-limits-and-user-limits) ระบุขีดจำกัดตาม IP สำหรับ endpoint สาธารณะ `rpc.hyperliquid.xyz/evm` ไว้สูงสุด 100 EVM JSON-RPC request ต่อนาที (*Maximum of 100 EVM JSON-RPC requests per minute for rpc.hyperliquid.xyz/evm*)

## 2. ฟิลด์กระเป๋าเงินและพารามิเตอร์เครือข่ายที่จำเป็น

กระเป๋าเงิน EVM กำหนดให้ระบุฟิลด์เฉพาะหลายรายการเมื่อเพิ่มหรือแก้ไขเครือข่าย:

1. **Network Name**: ป้ายชื่อที่มนุษย์อ่านเข้าใจได้ซึ่งแสดงในอินเทอร์เฟซของกระเป๋าเงิน
2. **RPC URL**: endpoint สำหรับการสื่อสาร **API key ต้องวางไว้ในพาธ URL** โดยใช้พาธ `/v1/{chain}/{api_key}` บน `api.blockvectra.com`:
   ```http
   /v1/{chain}/{api_key}
   ```
   > **สำคัญ**: กระเป๋าเงินอย่าง MetaMask และ Rabby รับเฉพาะ HTTP(S) URL มาตรฐานในฟิลด์ RPC URL และ**ไม่รองรับ custom request header** (เช่น `x-api-key: {api_key}`) ดังนั้น การเชื่อมต่อของกระเป๋าเงินจึงต้องระบุ API key โดยตรงในพาธ URL ห้ามใส่เครื่องหมายทับปิดท้ายหลัง `{api_key}` และโปรดทราบว่าคำขอที่ส่งไปยัง `{chain}` ที่ไม่รู้จักจะส่งกลับ HTTP 404
3. **Chain ID**: ตัวระบุเชนจำนวนเต็มตามมาตรฐาน EIP-155
4. **Currency Symbol**: สัญลักษณ์ของสินทรัพย์ gas เนทีฟของเชน (เช่น `ETH`, `HYPE`)
5. **Block Explorer URL**: เว็บแอดเดรสหลักของ block explorer ของเครือข่าย

### ตารางพารามิเตอร์เครือข่ายของเชนที่รองรับ

| ชื่อเครือข่าย | URL ของ RPC (คีย์ในพาธ) | Chain ID | สัญลักษณ์สกุลเงิน | URL ของ Block Explorer |
| --- | --- | --- | --- | --- |
| [arb_mainnet](https://blockvectra.com/th/chains/arb_mainnet/) | `https://api.blockvectra.com/v1/arb_mainnet/{api_key}` | 42161 | [ETH](https://docs.arbitrum.io/build-decentralized-apps/reference/node-providers) | [arbiscan.io](https://arbiscan.io) |
| [base_mainnet](https://blockvectra.com/th/chains/base_mainnet/) | `https://api.blockvectra.com/v1/base_mainnet/{api_key}` | 8453 | [ETH](https://docs.base.org/docs/network-information/) | [basescan.org](https://basescan.org) |
| [bsc_mainnet](https://blockvectra.com/th/chains/bsc_mainnet/) | `https://api.blockvectra.com/v1/bsc_mainnet/{api_key}` | 56 | [BNB](https://docs.bnbchain.org/) | [bscscan.com](https://bscscan.com) |
| [Ethereum](https://blockvectra.com/th/chains/eth_mainnet/) | `https://api.blockvectra.com/v1/eth_mainnet/{api_key}` | 1 | [ETH](https://ethereum.org/) | [etherscan.io](https://etherscan.io) |
| [eth_sepolia](https://blockvectra.com/th/chains/eth_sepolia/) | `https://api.blockvectra.com/v1/eth_sepolia/{api_key}` | 11155111 | [SepoliaETH](https://ethereum.org/en/developers/docs/networks/#sepolia) | [sepolia.etherscan.io](https://sepolia.etherscan.io) |
| [HyperEVM](https://blockvectra.com/th/chains/hyperevm_mainnet/) | `https://api.blockvectra.com/v1/hyperevm_mainnet/{api_key}` | 999 | [HYPE](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm) | [hyperscan.com](https://www.hyperscan.com/) |
| [polygon_mainnet](https://blockvectra.com/th/chains/polygon_mainnet/) | `https://api.blockvectra.com/v1/polygon_mainnet/{api_key}` | 137 | [POL](https://docs.polygon.technology/) | [polygonscan.com](https://polygonscan.com) |
| [Robinhood Chain](https://blockvectra.com/th/chains/robinhood_mainnet/) | `https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}` | 4663 | [ETH](https://docs.robinhood.com/chain/connecting) | [robinhoodchain.blockscout.com](https://robinhoodchain.blockscout.com) |
| [robinhood_testnet](https://blockvectra.com/th/chains/robinhood_testnet/) | `https://api.blockvectra.com/v1/robinhood_testnet/{api_key}` | 46630 | [ETH](https://docs.robinhood.com/chain/connecting) | [explorer.testnet.chain.robinhood.com](https://explorer.testnet.chain.robinhood.com) |

> **ข้อจำกัดแบบอ่านอย่างเดียวของ HyperEVM**: HyperEVM endpoint ของ BlockVectra รองรับการอ่านแต่ไม่บรอดแคสต์ธุรกรรม โปรดใช้ RPC ที่รองรับ eth\_sendRawTransaction เมื่อส่งธุรกรรมจากกระเป๋าเงินของคุณ ดู [Deploy with Foundry or Hardhat](https://docs.blockvectra.com/en/guides/hyperevm-backfill/#deploy-with-foundry-or-hardhat) ในคู่มือ HyperEVM สำหรับรายละเอียดการบรอดแคสต์

API key เดียวกันใช้งานได้ข้ามทุกเชนที่รองรับโดยแทนที่ `{chain}` ในพาธด้วยสลักเชนที่ต้องการ สำหรับรายละเอียดเกี่ยวกับโควตาที่ใช้ร่วมกันและการกำหนดเส้นทาง URL โปรดดู [คู่มือหนึ่งคีย์ หลากหลายเชน](https://docs.blockvectra.com/en/guides/one-key-many-chains/)

## 3. คำแนะนำการตั้งค่ากระเป๋าเงินทีละขั้นตอน

### ขั้นตอนการกำหนดค่า MetaMask

อ้างอิงจากคู่มือช่วยเหลือทางการของ MetaMask [How to add a custom network RPC](https://support.metamask.io/networks-and-sidechains/managing-networks/how-to-add-a-custom-network-rpc/):

1. เปิดส่วนขยายเบราว์เซอร์หรือแอปพลิเคชันมือถือ MetaMask
2. คลิกเมนูดรอปดาวน์เลือกเครือข่ายที่ด้านบนของอินเทอร์เฟซ (หรือไปที่ Settings > Networks)
3. เลือก **Add network** แล้วเลือก **Add a network manually** ที่ด้านล่าง
4. กรอกรายละเอียดเครือข่ายโดยใช้ตารางด้านบน:
   * **Network Name**: ป้อนชื่อเชนจากตารางด้านบน
   * **New RPC URL**: ป้อน endpoint ที่ยืนยันตัวตนผ่านพาธของคุณ เช่น `https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}` (แทนที่ `{api_key}` ด้วย API key จริงของคุณ)
   * **Chain ID**: ป้อน Chain ID จำนวนเต็มจากตารางด้านบน
   * **Currency Symbol**: ป้อนสัญลักษณ์สินทรัพย์เนทีฟจากตารางด้านบน
   * **Block Explorer URL**: ป้อนแอดเดรส block explorer ทางการจากตารางด้านบน (ไม่บังคับ)
5. คลิก **Save** เพื่อเพิ่มเครือข่ายและสลับไปยังเครือข่ายนั้น

> **การส่งธุรกรรมบน HyperEVM**: HyperEVM endpoint ของ BlockVectra รองรับการอ่านแต่ไม่บรอดแคสต์ธุรกรรม โปรดใช้ RPC ที่รองรับ eth\_sendRawTransaction เมื่อส่งธุรกรรมจากกระเป๋าเงินของคุณ (ดู [คำอธิบายการบรอดแคสต์ของ HyperEVM](https://docs.blockvectra.com/en/guides/hyperevm-backfill/#deploy-with-foundry-or-hardhat))

> **การแก้ไขเครือข่ายที่มีอยู่**: หากต้องการอัปเดต RPC endpoint สำหรับเครือข่ายที่มีอยู่แล้วในรายการของคุณ ให้ไปที่ Settings > Networks เลือกเครือข่ายเป้าหมาย แก้ไขหรือเพิ่ม BlockVectra URL ในฟิลด์ RPC URL แล้วบันทึกการเปลี่ยนแปลงของคุณ

### ขั้นตอนการกำหนดค่า Rabby Wallet

ในการตั้งค่า custom network หรือ custom RPC ของ Rabby ให้ป้อนพารามิเตอร์จากตารางด้านบน: Network Name, RPC URL (พร้อมคีย์ในพาธ `https://api.blockvectra.com/v1/{chain}/{api_key}`), Chain ID, Currency Symbol และ Block Explorer URL

> **หมายเหตุ**: เมื่อเพิ่มเครือข่ายแบบกำหนดเองหรือ testnet ตรวจสอบให้แน่ใจว่า Chain ID ตรงกับ ID ที่ส่งกลับมาจาก endpoint เพื่อป้องกันข้อผิดพลาด network ID ไม่ตรงกัน

## 4. เคล็ดลับความปลอดภัยและการจัดการการใช้งาน

โปรดคำนึงถึงหลักการด้านความปลอดภัยและการเรียกเก็บเงินต่อไปนี้เมื่อใช้งาน custom RPC:

> \[!WARNING]
> **ความเสี่ยงที่ API Key จะถูกเปิดเผย**: พาธของ RPC URL มี API key ของคุณในรูปแบบข้อความธรรมดา ห้ามแชร์ภาพหน้าจอการกำหนดค่าเครือข่ายของกระเป๋าเงินในห้องแชทสาธารณะหรือฟอรัมโดยเด็ดขาด และห้ามคอมมิต URL ที่มีคีย์ที่ใช้งานจริงลงในคลังโค้ดสาธารณะหรือเอกสาร

1. **คำขอจากกระเป๋าเงินนับรวมในการใช้งานบัญชี**:
   การเปิดกระเป๋าเงิน การสลับบัญชี หรือการรีเฟรชรายการสินทรัพย์จะทริกเกอร์การเรียก JSON-RPC สด (เช่น `eth_blockNumber`, `eth_getBalance` และ `eth_call`) คำขอเหล่านี้จะใช้ความจุตามน้ำหนัก CU ของเมธอดที่เรียก (ดู [หน้าราคา](https://blockvectra.com/en/pricing/)) เทียบกับขีดจำกัดของบัญชีคุณ
2. **สร้าง API key แยกเฉพาะสำหรับแต่ละกระเป๋าเงิน**:
   ใน [คอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F) ให้สร้าง API key แยกเฉพาะพร้อมติดป้ายกำกับสำหรับกระเป๋าเงินของคุณโดยเฉพาะ (เช่น `metamask-desktop` หรือ `rabby-extension`) วิธีนี้จะช่วยแยกแทรฟฟิกกระเป๋าเงินส่วนตัวของคุณออกจากแอปพลิเคชันเซิร์ฟเวอร์ สคริปต์อัตโนมัติ และ AI Agent
3. **เพิกถอนคีย์ได้อย่างอิสระเมื่อเกิดการรั่วไหล**:
   หากคุณสงสัยว่า API key ที่กำหนดค่าไว้ในกระเป๋าเงินถูกเปิดเผย ให้เพิกถอนคีย์รายการนั้นในคอนโซลทันทีโดยไม่กระทบต่อคีย์หรือบริการอื่นที่กำลังทำงานอยู่
   หากเซสชันของคุณหมดอายุหรือคีย์สูญหาย โปรดดู [เซสชันหรือ API key สูญหาย?](https://docs.blockvectra.com/en/guides/programmatic-signup/#lost-your-session-or-api-key) ในคู่มือการลงทะเบียนแบบโปรแกรมเพื่อกลับมาควบคุมอีกครั้งโดยใช้ลายเซ็นกระเป๋าเงิน Ethereum ของคุณ

## 5. แหล่งข้อมูลที่เกี่ยวข้อง

* [ขีดจำกัดสถานะย้อนหลัง](https://docs.blockvectra.com/en/guides/evm-historical-state/): ตรวจสอบกรอบเวลาสถานะที่ยืนยันตัวตนและประวัติแบบไม่ต้องใช้คีย์ก่อนขอข้อมูลยอดคงเหลือหรือค่าสัญญาในอดีต; ช่วงการคิวรี log เป็นขีดจำกัดแยกต่างหาก
* [คู่มือหนึ่งคีย์ หลากหลายเชน](https://docs.blockvectra.com/en/guides/one-key-many-chains/): กฎการกำหนดเส้นทาง URL โดยละเอียด, การค้นหาเชนโดยใช้โปรแกรมด้วย `GET /v1/chains` และกลไกโควตาข้ามเชน
* [ราคาและขีดจำกัดของแผน](https://blockvectra.com/en/pricing/): ข้อมูลเกี่ยวกับน้ำหนัก CU, อัตราการเติมทรูพุต และการอัปเกรดเงินฝากชำระเงิน

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

* [เลือกดูสารบบชุดข้อมูล](https://blockvectra.com/en/data/) เพื่อดูทุกชุดข้อมูลที่ BlockVectra ทำดัชนี
* [ดูแผนบริการฟรีและราคา](https://blockvectra.com/en/pricing/#free) เพื่อตรวจสอบสิ่งที่บัญชีของคุณได้รับ
* [เข้าสู่ระบบคอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F) เพื่อสร้าง API key
