Requirements
Install paths
- Agent skill
- CLI
- JavaScript
- Python
- ROS 2
Two pieces
/peaqos in any Claude Code session. To target a specific runtime explicitly, add --agent claude-code | cursor | windsurf. See the peaqOS AI page for details and the manual upload path for ChatGPT / custom GPTs.Works with
Thepeaqos skill ships first-class adapters for Claude Code, Cursor, and Windsurf — auto-detected, or selected with --agent. Hosted assistants without a local CLI (ChatGPT, Claude Projects, custom GPTs) can load AGENT-PROMPT.md as a system prompt manually.The skill calls the JavaScript and Python SDKs through the CLI. Tabs below apply once you start editing code yourself.Environment variables
Full reference with defaults on SDK JS environment and SDK Python environment.
Telemetry
The JavaScript and Python SDKs emit anonymous usage telemetry — which SDK operations run, tagged with a random install ID and with IP collection off (via PostHog, EU-hosted) — to help prioritize the roadmap. No private keys, wallet secrets, or machine data are sent. Telemetry is on by default; disable it withPEAQOS_TELEMETRY=0 or the cross-vendor DO_NOT_TRACK=1. The CLI sends none.
Public RPC endpoints
Use any of the below forPEAQOS_RPC_URL. QuickNode is the primary set; OnFinality and PublicNode are fallbacks. All of them accept JSON-RPC calls. For private dedicated endpoints, see the QuickNode and OnFinality guides. Full list on Connecting to peaq.
peaq mainnet contracts
Core are UUPS upgradeable proxies; treat the addresses as the current proxy pointers. For the architecture diagram and what each contract is responsible for, see Smart contracts.Required
Optional
Set only if you use the corresponding SDK method.Base mainnet contracts
Needed when into peaq from . PassbaseNftAddress / base_nft_address to the bridge method.
Agung testnet contracts
Use these to point the SDK or CLI at . addresses are identical to mainnet (same fixed slots on every peaq runtime).Required
Optional
Troubleshooting
INVALID_2FA: OTP code rejected
INVALID_2FA: OTP code rejected
The OTP from your authenticator app was wrong or expired. Generate a fresh code and retry. See full error code reference.
2FA_LOCKED: too many invalid attempts
2FA_LOCKED: too many invalid attempts
The faucet throttles owners after repeated bad OTPs. Wait out the lockout window and retry. See error code reference.
RATE_LIMITED: faucet rate limit reached
RATE_LIMITED: faucet rate limit reached
The faucet enforces a per-IP and per-wallet cap. Retry after the cooldown. See error code reference.
CAP_EXCEEDED_OWNER: daily owner cap reached
CAP_EXCEEDED_OWNER: daily owner cap reached
The same owner address has hit the daily funding cap. Wait 24 hours or contact support. See error code reference.
Missing PEAQOS_RPC_URL
Missing PEAQOS_RPC_URL
Set
PEAQOS_RPC_URL in your environment to a valid peaq chain RPC endpoint (e.g., https://peaq.api.onfinality.io/public). Without it, PeaqosClient.fromEnv() raises a ValidationError. See Public RPC endpoints for the full list. Full error taxonomy on errors.
