-
-
Notifications
You must be signed in to change notification settings - Fork 63
Description
RustChain API Reference β Canonical Documentation
Base URL: https://50.28.86.131 (self-signed cert, use -k with curl)
All examples use the external HTTPS endpoint. Internally on VPS, use http://localhost:8099.
Public Endpoints (No Authentication Required)
Health & Status
| Endpoint | Method | Purpose |
|---|---|---|
/health |
GET | Node health check |
/ready |
GET | Readiness probe |
Example:
curl -sk https://50.28.86.131/healthResponse:
{
"ok": true,
"version": "2.2.1-rip200",
"uptime_s": 4313,
"db_rw": true,
"backup_age_hours": 17.15,
"tip_age_slots": 0
}Epoch Information
| Endpoint | Method | Returns |
|---|---|---|
/epoch |
GET | Current epoch, slot, pot, enrolled miners |
Example:
curl -sk https://50.28.86.131/epochResponse:
{
"epoch": 75,
"slot": 10800,
"blocks_per_epoch": 144,
"epoch_pot": 1.5,
"enrolled_miners": 10
}Network Data
| Endpoint | Method | Description |
|---|---|---|
/api/miners |
GET | List active miners with architecture, multiplier, attestation times |
/api/nodes |
GET | Connected attestation nodes |
Example:
curl -sk https://50.28.86.131/api/minersResponse (truncated):
[
{
"miner": "eafc6f14eab6d5c5362fe651e5e6c23581892a37RTC",
"device_arch": "G4",
"device_family": "PowerPC",
"hardware_type": "PowerPC G4 (Vintage)",
"antiquity_multiplier": 2.5,
"entropy_score": 0.0,
"last_attest": 1771187406,
"first_attest": null
}
]Wallet Queries
| Endpoint | Method | Description |
|---|---|---|
/wallet/balance?miner_id=NAME |
GET | Check RTC balance for miner wallet |
Example:
curl -sk 'https://50.28.86.131/wallet/balance?miner_id=scott'Response:
{
"ok": true,
"miner_id": "scott",
"amount_rtc": 42.5
}Block Explorer
| Endpoint | Method | Purpose |
|---|---|---|
/explorer |
GET | Web UI for block/transaction browsing |
Open in browser: https://50.28.86.131/explorer
Authenticated Endpoints (Require X-Admin-Key Header)
# All admin endpoints require this header:
-H "X-Admin-Key: rustchain_admin_key_2025_secure64"| Endpoint | Method | Purpose |
|---|---|---|
/wallet/transfer |
POST | Internal RTC transfer (admin only) |
/rewards/settle |
POST | Trigger epoch settlement |
Example - Admin Transfer:
curl -sk -X POST https://50.28.86.131/wallet/transfer \
-H "X-Admin-Key: rustchain_admin_key_2025_secure64" \
-H "Content-Type: application/json" \
-d '{"from_miner":"scott","to_miner":"pffs1802","amount_rtc":5.0}'Common Mistakes (What NOT to Do)
β Wrong Endpoints That Don't Exist
/balance/{address}β Use/wallet/balance?miner_id=NAMEinstead/miners?limit=Nβ No pagination; use/api/minersfor full list/block/{height}β Use/explorerweb UI instead/tx/{txid}β Use/explorerweb UI instead/blocksβ Not an endpoint; check/epochfor block info/api/balanceβ Use/wallet/balance?miner_id=...
β Wrong Field Names
When reading responses, use EXACT field names:
Epoch response (CORRECT):
{
"epoch": 75,
"slot": 10800,
"blocks_per_epoch": 144,
"epoch_pot": 1.5,
"enrolled_miners": 10
}NOT:
- β
epoch_number(it'sepoch) - β
current_slot(it'sslot) - β
per_epoch_pot(it'sepoch_pot) - β
total_miners(it'senrolled_miners)
Miner object (CORRECT):
{
"miner": "wallet_id",
"device_arch": "G4",
"device_family": "PowerPC",
"antiquity_multiplier": 2.5,
"last_attest": 1771187406
}NOT:
- β
miner_id(it'sminer) - β
architecture(it'sdevice_arch) - β
multiplier(it'santiquity_multiplier) - β
last_attestation(it'slast_attest)
Wallet Format Rules
RTC wallets are simple text identifiers (UTF-8 strings, 1-256 chars):
Valid wallet names:
- β
scott - β
pffs1802 - β
liu971227-sys - β
my-wallet-2025 - β
sophia-nas-c4130
NOT valid wallet names (will be rejected):
- β Solana addresses:
4TRdr...(use as-is without modification) - β Ethereum addresses:
0x2A91... - β Ed25519 public keys:
88c394... - β Bitcoin addresses:
1A1z...
RIP-200 Attestation Endpoints
For miner integration, see Miner Integration Guide.
| Endpoint | Method | Purpose |
|---|---|---|
/attest/submit |
POST | Submit hardware attestation |
/lottery/eligibility?miner_id=NAME |
GET | Check reward eligibility |
HTTPS Certificate Warning
The node uses a self-signed certificate. When using curl, add -k flag:
# β
Correct
curl -sk https://50.28.86.131/health
# If you want to verify the cert, get it first:
openssl s_client -connect 50.28.86.131:443 -showcertsResponse Status Codes
| Code | Meaning |
|---|---|
| 200 | β Success |
| 400 | β Bad request (check your JSON syntax) |
| 401 | β Unauthorized (missing or invalid X-Admin-Key) |
| 404 | β Endpoint doesn't exist |
| 500 | β Server error (check node logs) |
Node Infrastructure
Primary Node (RIP-200 Consensus):
- Address: 50.28.86.131 (LiquidWeb VPS)
- HTTPS Port: 443 (nginx proxy)
- Internal Port: 8099 (Flask app)
- Version: 2.2.1-rip200
Secondary Node (Ergo Anchor):
- Address: 50.28.86.153 (LiquidWeb VPS)
- Note: Serves different services, not mirrored
Tertiary Node (Community):
- Address: 76.8.228.245 (Ryan's Proxmox)
- Tailscale: 100.88.109.32:8099
- Status: Community-operated
For Contributors
When submitting RustChain integration code:
- Always test endpoints first using the examples above
- Use exact field names from response JSON
- Handle HTTP 401 errors gracefully (node may restart)
- Don't hardcode IP addresses β use documented URLs
- Reference this issue in your PR if you're adding new API usage
Questions? Comment below or open an issue tagged documentation.
Last updated: 2026-02-15. Epoch 75, 10 enrolled miners, 1.5 RTC/epoch.