RPC Endpoints
This guide covers EVM RPC endpoints for Monolythium.
Public Endpoints
Sprintnet
| Service | URL |
|---|---|
| JSON-RPC | https://rpc.sprintnet.monolythium.com:8545 |
| WebSocket | wss://rpc.sprintnet.monolythium.com:8546 |
Testnet
| Service | URL |
|---|---|
| JSON-RPC | https://rpc.testnet.monolythium.com:8545 |
| WebSocket | wss://rpc.testnet.monolythium.com:8546 |
Mainnet
| Service | URL |
|---|---|
| JSON-RPC | https://rpc.monolythium.com:8545 |
| WebSocket | wss://rpc.monolythium.com:8546 |
!!! note "Endpoint Availability" Public endpoints will be announced before each network launch.
Supported Methods
Standard Ethereum Methods
| Method | Supported |
|---|---|
eth_chainId | Yes |
eth_blockNumber | Yes |
eth_getBalance | Yes |
eth_getTransactionCount | Yes |
eth_sendRawTransaction | Yes |
eth_call | Yes |
eth_estimateGas | Yes |
eth_getTransactionReceipt | Yes |
eth_getBlockByNumber | Yes |
eth_getBlockByHash | Yes |
eth_getLogs | Yes |
eth_subscribe | Yes (WebSocket) |
Additional Methods
| Method | Description |
|---|---|
eth_feeHistory | Fee history data |
debug_traceTransaction | Transaction tracing |
eth_getProof | State proofs |
Configuration Examples
ethers.js
const { ethers } = require('ethers');
// HTTP
const provider = new ethers.JsonRpcProvider(
'https://rpc.sprintnet.monolythium.com:8545'
);
// WebSocket
const wsProvider = new ethers.WebSocketProvider(
'wss://rpc.sprintnet.monolythium.com:8546'
);
web3.js
const Web3 = require('web3');
const web3 = new Web3('https://rpc.sprintnet.monolythium.com:8545');
Hardhat
module.exports = {
networks: {
sprintnet: {
url: 'https://rpc.sprintnet.monolythium.com:8545',
chainId: 262146
}
}
};
Foundry
[rpc_endpoints]
sprintnet = "https://rpc.sprintnet.monolythium.com:8545"
Running Your Own Endpoint
Enable EVM RPC in your node:
Configuration
Edit ~/.monod/config/app.toml:
[json-rpc]
enable = true
address = "0.0.0.0:8545"
ws-address = "0.0.0.0:8546"
# API namespaces
api = "eth,net,web3,txpool,debug"
# Gas cap for eth_call
gas-cap = 50000000
# EVM timeout
evm-timeout = "5s"
# Transaction fee cap
txfee-cap = 1
# Filter settings
filter-cap = 200
logs-cap = 10000
block-range-cap = 1000
Restart Node
sudo systemctl restart monod
Verify
curl -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
http://localhost:8545
Rate Limits
Public endpoints may have rate limits:
| Limit | Value |
|---|---|
| Requests per second | ~100 |
| Requests per minute | ~1000 |
| Concurrent connections | ~100 |
For heavy usage, run your own node.
WebSocket Subscriptions
const provider = new ethers.WebSocketProvider(
'wss://rpc.sprintnet.monolythium.com:8546'
);
// Subscribe to new blocks
provider.on('block', (blockNumber) => {
console.log('New block:', blockNumber);
});
// Subscribe to logs
const filter = {
address: '0x...',
topics: [ethers.id('Transfer(address,address,uint256)')]
};
provider.on(filter, (log) => {
console.log('Log:', log);
});
Troubleshooting
Connection Refused
- Check endpoint URL is correct
- Verify network connectivity
- Try alternative endpoint
Rate Limited
- Reduce request frequency
- Use batch requests
- Run your own node
Timeout
- Increase timeout settings
- Try simpler queries
- Check node health
FAQ
What's the difference between HTTP and WebSocket?
HTTP is request-response. WebSocket maintains a connection for subscriptions and real-time updates.
Can I use Infura/Alchemy?
No. Those are for Ethereum. Use Monolythium RPC endpoints.
How do I get more throughput?
Run your own node or contact for enterprise solutions.
Related
- MetaMask Setup - Wallet configuration
- Deploying Contracts - Using RPC for deployment