Three integration patterns
Pick the one that fits your app:- API-first
- Frontend-first
- Self-hosted
Call the hosted backend directly from your server or client. Simplest approach. No Rust or infrastructure needed.Best for: Wallets, dApps, payment platforms that want to add stealth receiving.Base URL:
https://backend.specterpq.comThe integration loop
Every integration follows the same four-step loop:Key management
The most important integration decision is how you handle secret keys.Browser apps
SPECTER’s frontend encrypts keys with AES-GCM and stores them in the browser. The user sets a password; the keys never leave the device unencrypted. Reference:SPECTER-web/src/lib/crypto/
Server apps
Store keys in your existing secrets management (AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault, etc.). Theviewing_sk and spending_sk are the critical secrets. Never log them, never send them to analytics.
Mobile apps
Use the device’s secure enclave/keychain. Same API calls, same key format (hex-encoded ML-KEM keys).Name service integration
If your users have ENS or SuiNS names, you can resolve them to meta-addresses automatically:Security checklist
Before going to production:- Secret keys (
viewing_sk,spending_sk,eth_private_key) are never logged - Scan responses are transmitted over HTTPS only
- Keys at rest are encrypted (not stored in plaintext)
- API key is configured for write endpoints in production
- Rate limiting is enabled
- CORS is restricted to your domain
Error handling
The API returns standard HTTP status codes with JSON error bodies:| Status | Meaning |
|---|---|
| 400 | Invalid request (malformed keys, missing fields) |
| 401 | Missing or invalid API key (when configured) |
| 429 | Rate limited |
| 500 | Server error |
API reference
Complete endpoint documentation.
Development setup
Run the backend locally for testing.
