Sei

Frequently Asked Questions
# Authentication & Access
-
How do I get an API key?
Sign up at TheRPC.io and navigate to the dashboard to generate your API key. Each key has its own rate limits and permissions.
-
Can I use multiple API keys?
Yes, you can create multiple API keys for different applications or environments. This helps with monitoring usage and maintaining security.
-
What happens if my API key is compromised?
Immediately revoke the compromised key from your dashboard and generate a new one. Your old key will stop working instantly.
# API Usage
What's the difference between HTTP and WebSocket endpoints?
- HTTP: Best for single requests and simple integrations. Use methods like eth_blockNumber or eth_getBalance
- WebSocket: Ideal for real-time data and subscriptions to events like eth_subscribe
How do I handle rate limits?
Implement exponential backoff when you receive rate limit errors. Consider upgrading your plan if you consistently hit limits.
What are the recommended timeout settings?
We recommend:
- HTTP requests: 30-second timeout
- WebSocket connections: 60-second ping/pong interval
- Subscription operations: 30-second timeout
# Error Handling
Common Error Codes
-32700: Parse error-32600: Invalid request-32601: Method not found-32602: Invalid params-32603: Internal error-32000 to -32099: Server error
Best Practices for Error Handling
- Always check the response for an
errorfield - Implement proper retry logic with backoff
- Log detailed error information for debugging
- Handle network timeouts appropriately
# Technical Questions
How do I track pending transactions?
Use eth_getTransactionReceipt to poll for transaction status. For real-time updates, subscribe to pending transactions via eth_subscribe using WebSocket.
How can I ensure my requests are processed in order?
Use the nonce parameter for transactions and maintain a queue in your application for sequential processing. You can get the current nonce using eth_getTransactionCount.
What's the recommended way to handle chain reorganizations?
- Wait for sufficient block confirmations using eth_blockNumber
- Listen for
newHeadsevents through eth_subscribe - Verify transaction finality using eth_getBlockByNumber
# Performance
How can I optimize my API usage?
- Batch related requests when possible
- Use WebSocket for real-time data through eth_subscribe
- Implement proper caching
- Choose appropriate polling intervals
What are the best practices for high-throughput applications?
- Use connection pooling
- Implement request queuing
- Monitor rate limits
- Consider dedicated infrastructure
# Network Specific
How do I switch between networks?
Simply use the appropriate endpoint for each network while maintaining the same API key and request format. You can verify the network using net_version.
Can I use the same code for different networks?
Yes, our API provides consistent interfaces across networks. Just update the endpoint URL for different networks. You can check the chain ID using eth_chainId.
# Development & Integration
Which Web3 library should I use?
- JavaScript: web3.js or ethers.js
- Python: web3.py
- Java: web3j
- Other languages: See our Tools & SDKs section
How do I test my integration?
- Start with testnet endpoints
- Use our test API keys
- Implement proper error handling
- Validate responses using methods like eth_blockNumber
- Monitor performance
See also
- Quick Start Guide - Get Started Quickly
- Authentication Guide - Detailed Auth Info
- Rate Limits - Understand Usage Limits