Checking RPC…
Command explorer
Runs only public-read allowlist commands against /api/rpc. Not Ethereum JSON-RPC.
Example: getinfo
Enable the port
./build/additiond --mainnet --public-rpc --public-rpc-port 38546 # or ADDITION_ENABLE_PUBLIC_RPC=1 ./build/additiond --mainnet --public-rpc-port 38546
Mainnet seed bind: 0.0.0.0:38546. Research testnet default remains 38545.
Talk to it
One command line in, one response line out (same as local RPC):
curl -s 'https://additionblockchain.com/api/rpc?cmd=getinfo' curl -s 'http://34.27.30.115:38546/rpc?cmd=getinfo' curl -s 'http://34.27.30.115:38546/jsonrpc?method=getinfo' curl -s 'http://34.27.30.115:38546/jsonrpc?method=getblockraw¶ms=0' printf 'getinfo\n' | nc 34.27.30.115 38546
Those curls succeed only when the operator seed answers. If they timeout, run a local --public-rpc node.
Allowlist on the site proxy (/api/rpc) for the explorer command runner (reads):
getinfomonetary_infocrypto_selftesttx_status <tx_hash>peersgetblock <height_or_hash>getblockhash <height>getblockraw <height>(ok:BLKDATA)
On seed 38546, CoS also opened write: createwallet, mine, wallet_send, sign, tx_build / sendtx_signed*. The site wallet prefers that public path via /api/rpc, with loopback fallback.
Wallet UI: /wallet/. Desktop helper (loopback only): python3 web/addition_wallet_gui.py.
Join the public mainnet
Bootstrap P2P: 34.27.30.115:28546. Public RPC: 34.27.30.115:38546. Home-node write: 127.0.0.1:8546.
./build/additiond --mainnet --bootstrap 34.27.30.115:28546 printf 'sync\n' | nc 127.0.0.1 8546
See Get started for the full home-node recipe.
Public-read JSON API
Same allowlist on the site proxy. Not Ethereum JSON-RPC. Not a third-party dRPC vendor.
On the public-rpc port:
GET http://HOST:38546/jsonrpc?method=getinfo
GET http://HOST:38546/jsonrpc?method=getblock¶ms=0
GET http://HOST:38546/jsonrpc?method=getblockraw¶ms=0
POST http://HOST:38546/jsonrpc
{"jsonrpc":"2.0","id":1,"method":"getinfo","params":[]}
Local site proxy (python3 web/serve.py): GET /jsonrpc?method=getinfo and POST /jsonrpc (default public upstream port 38546).
Standalone adapter (public-read, no writes):
python3 tools/addition_jsonrpc_adapter.py --public-read --rpc-port 38546 --port 8645
curl -s 'http://127.0.0.1:8645/jsonrpc?method=getinfo'
curl -s -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"peers","params":[]}' http://127.0.0.1:8645/jsonrpc
What stays private
- Trusted write RPC:
127.0.0.1:8546mainnet /8545testnet (optionalADDITION_RPC_TOKEN) - LAN RPC: off unless
ADDITION_ENABLE_LAN_RPC=1andADDITION_LAN_RPC_TOKEN - P2P: off unless
ADDITION_ENABLE_P2P_RPC=1. Operator public P2P (IPv4):34.27.30.115:28546 - Auto-mine: refused on mainnet; testnet timer only with
--auto-mine/ADDITION_AUTO_MINE=1
Two local processes: two-node runbook. Website PUBLIC_RPC_HTTP is a Worker secret until an operator sets the real HTTP URL (http://34.27.30.115:38546/rpc). Do not commit trycloudflare URLs.
Do not open unauthenticated write RPC to the world (0.0.0.0:8545 / 8546). Full command list: Commands.
Fees: spec min_fee=0. last_tps and dynamic_min_fee come from getinfo when the node answers. Not a Solana/XRP speed claim. Coinbase is 50 ADD, 100% miner.