Plugin RPC As A Service -Full Node Operator Guide
Overview — Node Operator Program
Power the Plugin RPC Network
Run a full XDC node, submit it to Plugin RPCaaS, and earn PLI for every compute unit your node serves. Your node handles standard JSON-RPC requests from the XDC network — all routing, authentication, quota enforcement, and restricted RPC methods are automatically blocked by the Plugin Gateway, preventing unauthorized or potentially sensitive requests from reaching your node.
Key highlights
Gateway-enforced security — Restricted methods (admin_, personal_, miner_*) are blocked at the gateway before reaching your node.
Earn per compute unit — Every RPC request served earns you CU credits — tracked in real time on your operator dashboard.
No public exposure needed — Your node only accepts connections from RPCaaS IPs — it's never directly exposed to the public internet.
How It Works
The flow from user request to your node and back
When a developer calls the Plugin RPCaaS endpoint, the request flows through our gateway before it ever reaches your node. Your node is never exposed to raw user traffic — the gateway handles auth, quota, method filtering, and load balancing.
Requirements
What you need before submitting a node
Node requirements
Network
XDC Mainnet (or Apothem for testnet)
Node type
Full node
Software
XDC go-client (latest stable recommended)
Sync
Fully synced before submission
HTTP RPC
Enabled and reachable
WSS
Enabled and reachable (for WebSocket plan support)
Operator account
An XDC wallet address to register as operator
Access to the Operator Portal (request access via Discord)
Your node's public HTTP RPC URL (e.g.
https://yournode.example.com)Your node's public WSS URL (e.g.
wss://yournode.example.com/websocket)
Submitting Your Node
Step-by-step setup guide
Firewall your node
Step 2 — Firewall your node
Allow RPC port access only from the RPCaaS gateway IP. Block all other public access to your RPC/WSS ports.
Running your XDC node inside Docker? Standard
iptables INPUTrules and UFW do not block Docker-exposed ports — Docker inserts its own rules at a lower level that bypass them. Skip to the Docker section below.
Running directly on the host (no Docker)
Running inside Docker
UFW and iptables -A INPUT rules are bypassed by Docker's own iptables rules. Use the DOCKER-USER chain instead — Docker processes this chain first and honours rules placed here:
To verify the rules are in place:
To make these rules persistent across reboots, save them with iptables-save or use a package like iptables-persistent:
How to check if your ports are still exposed: From an external machine, run
nmap -Pn -p 8545 YOUR.VPS.IP— if it showsopenfrom a non-gateway IP, your firewall rules are not working and your node RPC is publicly accessible.
Firewall & Security
How to keep your node safe
Important: Never expose your node's RPC port publicly. Always restrict access to only the RPCaaS gateway IP: 3.134.33.101
Two layers of protection
Layer 1 — RPCaaS gateway (automatic): Our gateway blocks restricted methods before they reach your node. Users calling admin_*, personal_*, miner_*, engine_*, clique_*, or txpool_* get a -32601 error immediately — your node never sees these requests.
Layer 2 — your node config (recommended): As a second layer, disable those APIs at the node level too. If the gateway ever has a bug, your node is still protected.
RPCaaS gateway IP
Only allow this IP to connect to your RPC and WSS ports:
Supported Methods
Which JSON-RPC methods your node needs to handle
Forwarded — Methods your node receives
eth_*
eth_blockNumber, eth_getBalance, eth_call, eth_getLogs…
net_*
net_version, net_peerCount, net_listening
web3_*
web3_clientVersion, web3_sha3
debug_* (paid)
debug_traceTransaction, debug_traceBlockByNumber, debug_traceCall, debug_traceBlockByHash
trace_* (paid)
trace_block, trace_transaction, trace_filter
Blocked — Methods your node never receives
admin_*
Node administration — dangerous to expose publicly
personal_*
Wallet/key management — never appropriate in a proxy
miner_*
Mining control — not relevant for RPC service
engine_*
Consensus engine — CL/EL communication only
clique_*
PoA admin — internal consensus use only
txpool_*
Raw mempool access — blocked at gateway
These are rejected by the gateway with -32601 method not supported before ever reaching your node.
CU Weights Explained
How compute units are calculated per request
Every RPC method has a Compute Unit (CU) cost. Heavier methods — ones that scan more data, require more processing, or put more load on the node — cost more CU. This keeps the pricing fair for users and means operators are compensated proportionally for the real work their node does.
How CU is calculated
Simple reads (eth_blockNumber, eth_getBalance) — 1–2 CU. Minimal node load.
Call / estimate (eth_call, eth_estimateGas) — 10–30 CU. Requires EVM execution.
Log scans (eth_getLogs) — variable CU based on block range. Wider range = more CU.
Trace/debug (debug_traceTransaction, trace_block) — 50 CU. Archive node operations, very expensive.
Batch requests — sum of each method's individual CU.
Block range pricing (eth_getLogs etc.)
Scan methods like eth_getLogs have tiered pricing based on how many blocks are requested. A narrow range (e.g. 1–100 blocks) costs a flat low rate. Wider ranges cost progressively more CU. Requests spanning from genesis (earliest) with no upper bound are rejected outright.
The full live method cost table is available in the User Docs → Method Costs section.
Earnings & Payouts
How you get paid for serving traffic
How earnings work
Every request your node successfully handles earns CU credits to your operator account.
CU earnings are tracked in real time on your Operator Portal dashboard under Daily Hits.
Earnings accumulate daily and are visible per-day in the dashboard.
Only requests that complete successfully count — errors or timeouts do not earn CU.
Payout process
Payouts are settled on-chain in PLI to your registered operator wallet.
Settlement is processed manually by the Plugin admin team on a rolling basis.
You do not need to do anything — the admin initiates the on-chain transfer.
Payout frequency and minimum thresholds will be communicated via Discord.
Make sure your operator wallet address is correct in the portal — on-chain payouts cannot be reversed.
Monitoring
Keeping your node healthy
Availability checks
The gateway runs periodic availability checks against your node's HTTP RPC and WSS endpoints. If a check fails:
Your node's fail counter increments.
After consecutive failures it is marked Offline and removed from the routing pool.
Once it recovers and passes checks it is automatically marked Online and re-added.
Operator dashboard
Your Operator Portal shows:
Node status — Online / Offline / Pending
Daily hits — request count and CU earned per day
Response time — last recorded latency for RPC and WSS
Fail count — consecutive availability check failures
If your node goes offline unexpectedly, check your firewall rules first — make sure 3.134.33.101 is still whitelisted.
FAQ
Last updated