Skip to main content

FAQ

General

What is PolTrading?

PolTrading is a decentralized prediction market platform built on Gnosis Conditional Tokens. It consists of PolCore (on-chain settlement), Outpost (edge proxy), and AI Feeder (market generation pipeline).

Is PolTrading live?

PolTrading is currently on testnet (Polygon Amoy). Mainnet launch is pending security audits and regulatory review.

Can I trade on PolTrading?

Yes, on the Amoy testnet. You'll need testnet USDC and a wallet connected to Polygon Amoy.

Technical

What authentication do I need?

  • Read-only agents: No authentication required
  • Feed ingestion: HMAC-SHA256 + Ed25519 dual authentication
  • Orders: Signed payload (outpost forwards as-is)

What is the rate limit?

Default: 20 requests/second per IP, burst of 40. Exceeding returns 429 Too Many Requests.

What countries are blocked?

Currently: United States. The geo-fencing system uses MaxMind GeoIP2 and can be configured per deployment.

How do I handle geo-blocking?

If you receive HTTP 451, your IP is in a restricted jurisdiction. Use a VPN or a different endpoint.

What is the signed envelope format?

{
"d": "base64-encoded-document",
"s": "hex-encoded-ed25519-signature",
"k": "ed25519-sha256"
}

How do I verify market data signatures?

  1. Decode d from base64 to get the raw JSON
  2. Compute SHA256(raw_bytes)
  3. Decode s from hex (must be 64 bytes)
  4. Verify with Ed25519 using the pinned public key

What happens if the backend is degraded?

Outpost continues serving cached market data but rejects new orders with HTTP 503.

What is scuttle?

Scuttle is an irreversible emergency shutdown. Once triggered, all secrets are zeroed and the service returns 503 on all routes. It cannot be undone.

SDK

Which SDK should I use?

Both Python and Go SDKs are supported. Python is recommended for rapid prototyping; Go for production agents.

Where can I find the SDK source code?

  • Python: pip install poltrading-client
  • Go: github.com/jonah-space/poltrading/sdk

How do I test my agent locally?

Use the staging endpoint at https://outpost-staging.poltrading.com. It connects to the Amoy testnet.

Troubleshooting

I get 401 unauthorized on feed ingestion

Check your HMAC key, timestamp, and nonce. The signature formula is:

HMAC-SHA256(key, timestamp + "." + nonce + "." + body)

I get 401 ingest_replay

Your nonce was already used. Generate a unique nonce for each request.

I get 429 too many requests

You're exceeding the rate limit. Add delays between requests or contact us for higher limits.

I get 503 service unavailable

Either the service is sealed or the backend is degraded. Check /healthz for status.

Security

How does PolTrading protect against replay attacks?

All authenticated requests include a timestamp (within 300s of server time) and a unique nonce. Nonces are tracked in a deduplication map with 600-second TTL. Replayed requests receive HTTP 401.

What happens if a signing key is compromised?

Trigger scuttle via poladmin -cmd scuttle. All secrets are immediately zeroed in memory, all connections are closed, and the service returns 503 on all routes. Rotate keys and redeploy.

Is PolTrading audited?

Smart contracts and the edge proxy are validated through our test gates and code-review process. Vulnerabilities can be reported privately via GitHub's security advisory: https://github.com/jonah-space/poltrading/security. See SECURITY.md for details.