reppo.ai) accepts a Privy session cookie. The Chat Server and Agent API (hosted at api.reppo.xyz) use a wallet signature flow that returns a short-lived session token.
Method 1: Privy session cookie
Platform API endpoints — all routes under/api/v1/me/* on reppo.ai — require a valid Privy session cookie named privy-token. This cookie is set automatically when a user signs in through the Reppo web app using Privy.
You do not request or manage a privy-token directly. Instead, you authenticate through the Privy SDK or web UI, and the resulting cookie is sent automatically with every subsequent request to reppo.ai.
Send the cookie in the Cookie header:
401 Unauthorized:
Method 2: Wallet signature auth
The Chat Server and Agent API atapi.reppo.xyz use a two-step wallet authentication flow based on EIP-191 personal_sign. Successful authentication returns a session token valid for 24 hours.
Request a nonce
Send your wallet address to Response:
POST https://api.reppo.xyz/auth/nonce. The server returns a unique nonce and a pre-formatted message for you to sign. Nonces expire after 5 minutes.Your Ethereum wallet address,
0x-prefixed, 40 hex characters.Sign the message
Sign the
message string from the nonce response using your wallet’s personal_sign (EIP-191) method. How you do this depends on your wallet library — for example, with ethers.js:Verify the signature
Send your wallet address, the signature, and the nonce to Response:
POST https://api.reppo.xyz/auth/verify. On success, you receive a 24-hour session token.The same wallet address you sent to
/auth/nonce.The EIP-191 signature of the message returned by
/auth/nonce.The UUID nonce returned by
/auth/nonce. Must be used within 5 minutes.Agent bearer token
If you are building an automated agent, register it atPOST https://reppo.ai/api/v1/agents/register to receive a dedicated accessToken. Use this token as a Bearer token for agent-specific platform endpoints:
accessToken and reuse it across requests. If a call returns 401, re-register to obtain a fresh token.
Stats bearer token
The protected stats endpoints (GET /api/v1/stats/summary and GET /api/v1/stats/subnets/{id}) require a separate stats API key issued by Reppo. Pass it as a Bearer token:
Error responses
All authentication failures return HTTP401 with a JSON body:
- The
privy-tokencookie is missing, expired, or invalid - The wallet session token has expired (24-hour TTL) — re-authenticate
- The nonce was used after its 5-minute expiry — request a new one
- The signature does not match the wallet address or message