---
name: Chainstack
description: Use when deploying blockchain nodes, managing RPC endpoints, configuring access rules, querying blockchain data via JSON-RPC, or building Web3 applications across 70+ supported networks including Ethereum, Solana, Bitcoin, Polygon, and others.
metadata:
    mintlify-proj: chainstack
    version: "1.0"
---

# Chainstack Skill

## Product summary

Chainstack is a managed blockchain infrastructure platform providing RPC node access to 70+ blockchain networks (Ethereum, Solana, Bitcoin, Polygon, Base, Arbitrum, Optimism, and many others). Deploy a node from the console to get an HTTPS or WSS endpoint in seconds, or run the same infrastructure on your own Kubernetes cluster with Chainstack Self-Hosted. Agents use Chainstack to provision blockchain access, configure security rules, query on-chain data via JSON-RPC, and manage projects and nodes programmatically through the Platform API.

**Key files and endpoints:**
- Console: `https://console.chainstack.com/`
- Node endpoints: HTTPS (`https://nd-*.p2pify.com/KEY`) or WSS (`wss://ws-nd-*.p2pify.com/KEY`)
- Platform API: `https://api.chainstack.com/api/v1/` (requires API key)
- Supported protocols: 70+ networks with Full and Archive node modes
- Authentication: API key (bearer token), basic auth (username:password), or gRPC x-token

## When to use

Reach for this skill when:
- **Deploying nodes**: Create a project, select a network and node type (Global, Dedicated, Trader), and deploy
- **Accessing blockchain data**: Query blocks, transactions, accounts, logs, and contract state via JSON-RPC methods
- **Securing endpoints**: Configure IP allowlists, domain allowlists, or HTTP referrer rules for access control
- **Managing infrastructure**: Create projects, networks, and nodes; monitor usage metrics; delete resources
- **Building Web3 apps**: Connect web3.js, ethers.js, web3.py, or other libraries to your endpoint
- **Migrating workloads**: Move from other providers (Google Cloud Blockchain Node Engine, Syndica, Grove, Helius) to Chainstack
- **Automating operations**: Use the Platform API v2 to programmatically manage projects, nodes, and usage data
- **Debugging transactions**: Enable debug and trace APIs on Dedicated Nodes for transaction tracing and state inspection
- **High-throughput scenarios**: Deploy Unlimited Nodes or Trader Nodes for sustained high RPS workloads

## Quick reference

### Node types and deployment

| Node Type | Use Case | Deployment Time | Scaling |
|-----------|----------|-----------------|---------|
| **Global Node** | Default choice; load-balanced, global distribution, instant deployment | Seconds | Auto-scaled |
| **Dedicated Node** | Custom configs, debug/trace APIs, stable resources, specific cloud/region | Hours | Fixed resources |
| **Trader Node** | High-speed transaction propagation (Warp), MEV protection, regional | 3-6 minutes | Regional |
| **Unlimited Node** | Sustained high RPS (>3000), no rate limits, pay-per-compute | Hours | Unlimited |

### Authentication methods

| Method | Format | Use Case |
|--------|--------|----------|
| **API Key** | `https://nd-*.p2pify.com/KEY` | Default; key in URL path |
| **Basic Auth** | `https://user:pass@nd-*.p2pify.com` | Password-protected endpoints |
| **gRPC x-token** | Metadata header `x-token: TOKEN` | Sui, Solana gRPC endpoints |
| **Platform API** | Bearer token in Authorization header | Programmatic node/project management |

### Common RPC methods (EVM example)

```bash
# Get latest block number
curl -X POST "YOUR_ENDPOINT" \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

# Get account balance
curl -X POST "YOUR_ENDPOINT" \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xADDRESS","latest"],"id":1}'

# Call smart contract (read-only)
curl -X POST "YOUR_ENDPOINT" \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xCONTRACT","data":"0xSELECTOR"},"latest"],"id":1}'

# Send raw transaction
curl -X POST "YOUR_ENDPOINT" \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xSIGNED_TX"],"id":1}'
```

### Access rules (Global Nodes only)

```bash
# Allowed origin: restrict by HTTP Origin header
# Example: myapp.com, *.example.com

# IP address: restrict by source IP
# Example: 203.0.113.50, 2001:db8::1

# HTTP referrer: restrict by Referer header
# Example: https://myapp.com/page
```

### Billing units

- **1 RU** = 1 full request (recent state)
- **2 RUs** = 1 archive request (historical state)
- **Warp transactions** = separate charge (bloXroute partnership)
- **Dedicated Nodes** = hourly compute + storage (no per-request billing)

## Decision guidance

### When to use Global Node vs Dedicated Node

| Factor | Global Node | Dedicated Node |
|--------|-------------|----------------|
| **Setup time** | Seconds | Hours |
| **Cost model** | Per-request (RUs) | Hourly compute |
| **Scaling** | Auto-scaled | Fixed resources |
| **Debug/trace APIs** | Not available | Available |
| **Custom config** | Limited | Full control |
| **Best for** | Most dApps, variable load | High throughput, custom needs |

### When to use Trader Node vs Global Node

| Factor | Trader Node | Global Node |
|--------|-------------|-------------|
| **Warp transactions** | Yes (MEV protection) | Yes (on select chains) |
| **Deployment** | 3-6 minutes (regional) | Seconds (global) |
| **Use case** | High-speed trading, MEV | General-purpose access |

### When to use API key vs basic auth

| Factor | API Key | Basic Auth |
|--------|---------|-----------|
| **Security** | Key in URL (less secure) | Credentials in header (better) |
| **Ease** | Simple, no encoding | Requires Base64 encoding |
| **Rotation** | Easier to rotate | Requires password change |
| **Recommendation** | Use over HTTPS only | Preferred for backend services |

## Workflow

### 1. Deploy a node and get an endpoint

1. **Sign up**: Go to `https://console.chainstack.com/` and create an account
2. **Create project**: Click "Create project", provide name and optional description
3. **Deploy node**:
   - Click "Get Started" or "Join Network"
   - Select protocol (Ethereum, Solana, etc.) and network (Mainnet, Testnet)
   - Choose node type: Global (default), Dedicated, or Trader
   - For Dedicated: select Full or Archive mode, cloud provider, region
   - Name the node and review cost
   - Click "Deploy"
4. **Wait for provisioning**: Status changes from "Pending" to "Running" (seconds to hours)
5. **Get credentials**:
   - Click project → network → node name
   - Copy HTTPS endpoint: `https://nd-*.p2pify.com/KEY`
   - Copy WSS endpoint: `wss://ws-nd-*.p2pify.com/KEY`
   - Note username/password if password-protected

### 2. Make your first RPC call

1. **Prepare endpoint**: Have your node URL and authentication ready
2. **Choose method**: Determine what data you need (e.g., `eth_blockNumber`, `eth_getBalance`)
3. **Build JSON-RPC request**:
   ```json
   {
     "jsonrpc": "2.0",
     "method": "METHOD_NAME",
     "params": [PARAM1, PARAM2],
     "id": 1
   }
   ```
4. **Send request**:
   ```bash
   curl -X POST "YOUR_ENDPOINT" \
     -H "Content-Type: application/json" \
     --data 'YOUR_JSON_RPC_REQUEST'
   ```
5. **Parse response**: Extract `result` field or check `error` field for failures

### 3. Secure your endpoint with access rules

1. **Navigate to Security**: Project → Network → Node → Security tab
2. **Add rule**:
   - Click "+ Add"
   - Choose type: Allowed origin, IP address, or HTTP referrer
   - Enter value (e.g., `myapp.com`, `203.0.113.50`)
   - Click "Create"
3. **Activate rule**: Hover over rule, click pencil, click "Activate"
4. **Test**: Verify requests from allowed sources work; blocked sources get rejected

### 4. Monitor node usage

1. **View metrics**: Project → Network → Node → Metrics tab
2. **Check data**:
   - Requests made (HTTP/WebSocket over time)
   - Method calls breakdown (which RPC methods called)
   - Response codes (success/error distribution)
3. **Download data**: Click hamburger in "Requests made" section, choose format (CSV, JSON)
4. **Adjust plan**: If approaching quota, upgrade plan or enable extra usage

### 5. Manage nodes programmatically (Platform API)

1. **Create API key**:
   - Go to console settings
   - Generate API key
   - Store securely (not in version control)
2. **Authenticate**:
   ```bash
   curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://api.chainstack.com/api/v1/projects
   ```
3. **Common operations**:
   - List projects: `GET /projects`
   - Create node: `POST /projects/{id}/nodes`
   - Get node usage: `GET /nodes/{id}/usage`
   - Delete node: `DELETE /nodes/{id}`
4. **Parse responses**: Check HTTP status and JSON response body for results or errors

## Common gotchas

- **Endpoint URL format**: Include the full path with key or credentials; missing `/KEY` causes 401 errors
- **JSON-RPC version**: Always use `"jsonrpc": "2.0"` in request body; older versions not supported
- **Archive vs Full**: Archive requests cost 2 RUs; check method docs to see if archive-only
- **Rate limits**: Global Nodes have RPS limits per plan; Unlimited Nodes have no per-request limits
- **Access rules not working**: Rules only apply to Global Nodes; Dedicated Nodes don't support them
- **WebSocket subscriptions**: Not all methods support subscriptions; check protocol-specific docs
- **Batch requests**: Max 1 MB request body; split large batches or paginate eth_getLogs ranges
- **Debug/trace APIs**: Only available on Dedicated Nodes; enable during deployment or contact support
- **Warp transactions**: Only on Ethereum, Solana, BNB; requires Trader Node or Global Node on supported chains
- **gRPC endpoints**: Sui and Solana gRPC use x-token in metadata, not URL-based auth
- **Node deletion**: Must delete all nodes before deleting a network or project
- **Testnet funds**: Use Chainstack faucet (`https://faucet.chainstack.com/`) for supported testnets
- **Password rotation**: Changing password invalidates all active connections; reconnect clients
- **Sync lag**: Global Nodes auto-switch if node lags >40 blocks; Dedicated Nodes may lag during sync

## Verification checklist

Before submitting work with Chainstack:

- [ ] Node is in "Running" state (not "Pending" or "Failed")
- [ ] Endpoint URL is correct and includes authentication (key or credentials)
- [ ] Test RPC call succeeds (e.g., `eth_blockNumber` returns a result, not an error)
- [ ] Access rules are activated if configured (check Security tab)
- [ ] Billing plan has sufficient quota or extra usage is enabled
- [ ] For Dedicated Nodes: debug/trace APIs enabled if needed
- [ ] For Trader Nodes: Warp transactions configured if using MEV protection
- [ ] For programmatic access: API key is valid and has correct permissions
- [ ] WebSocket connections use WSS endpoint (not WS) for production
- [ ] Error handling in place for rate limits (429), timeouts (504), and server errors (5xx)
- [ ] Sensitive data (keys, passwords) not logged or committed to version control
- [ ] Node metrics show expected request volume and response codes

## Resources

- **Full documentation index**: [llms.txt](https://docs.chainstack.com/llms.txt) — compact index of all sections
- **Complete portal**: [llms-full.txt](https://docs.chainstack.com/llms-full.txt) — entire documentation in one file
- **Platform overview**: [Chainstack Platform Introduction](https://docs.chainstack.com/docs/platform-introduction) — node types, pricing, supported networks
- **Node management**: [Manage Your Nodes](https://docs.chainstack.com/docs/manage-your-node) — credentials, metrics, deletion
- **Security**: [Access Rules](https://docs.chainstack.com/docs/access-rules) — IP allowlists, domain restrictions, HTTP referrer rules
- **RPC reference**: [Blockchain APIs](https://docs.chainstack.com/reference/blockchain-apis) — JSON-RPC methods for all protocols
- **Platform API**: [Platform API Getting Started](https://docs.chainstack.com/reference/platform-api-getting-started) — programmatic node management
- **Authentication**: [Authentication Methods](https://docs.chainstack.com/docs/authentication-methods-for-different-scenarios) — API keys, basic auth, JWT, OAuth
- **Pricing**: [Pricing Introduction](https://docs.chainstack.com/docs/pricing-introduction) — request units, plans, quotas
- **Error handling**: [Error Reference](https://docs.chainstack.com/docs/error-reference) — HTTP and JSON-RPC error codes and solutions

---

> For additional documentation and navigation, see: https://docs.chainstack.com/llms.txt