# anonymous-credit-tokens.info > Experimental anonymous credit token service. Two issuers, classical ("act") > and post-quantum ("pq"), share one JSON API; issuance is metered by proof of > work. Status: experimental and unaudited; credits have no monetary value and may be erased at any time. Current key epoch: e1. An anonymous credit token is a bearer credential: a server issues N credits, the client spends them in increments with zero-knowledge proofs, and the server cannot link spends to issuances or to each other, while a one-time nullifier per token prevents double spending. Identical retries of issue and spend requests replay the stored response (flagged "replayed": true); a different request on a consumed nullifier or challenge is a final error. ## API (JSON over HTTPS, base https://anonymous-credit-tokens.info) - GET /api/v1/{act|pq}/params: epoch, public key, limits, status line - POST /api/v1/{act|pq}/challenge {"credits": n}: mint a single-use proof-of-work challenge; n clamped to 1..=1024; difficulty 18 bits at 1 credit plus one bit per doubling; expires in 900 s - POST /api/v1/{act|pq}/issue {"challenge_id", "nonce", "request"}: redeem mined work plus a scheme-native issuance request for a token - POST /api/v1/{act|pq}/spend {"request", "requested_return"} (pq also requires "settlement" and "input_kind", each "direct" or "deferred"): spend with change - GET /api/v1/{act|pq}/nullifier/{64-hex}: {"spent": bool} - GET /api/v1/stats: {"act_nullifiers", "pq_nullifiers", "challenges_consumed"} - Errors: JSON {"code", "message"}; codes: bad_request, pow_invalid, challenge_gone, challenge_mismatch, double_spend, proof_invalid, rate_limited, too_large, internal - Body caps: 16 KB on act routes, 256 KB on pq routes; rate limits apply - MCP (read-only): https://anonymous-credit-tokens.info/mcp with tools get_params, check_nullifier, get_stats ## Docs - [How it works](https://anonymous-credit-tokens.info/how-it-works): issuance, spend with change, refundation, double-spend prevention - [Failure semantics](https://anonymous-credit-tokens.info/failure-semantics): the retry/replay contract for dropped connections - [API reference](https://anonymous-credit-tokens.info/api): exact envelopes, mining preimage, curl examples - [Post-quantum issuer](https://anonymous-credit-tokens.info/pq): vole-act costs and maturity - [Security and privacy](https://anonymous-credit-tokens.info/security) - [Wallet](https://anonymous-credit-tokens.info/wallet) - [Use cases](https://anonymous-credit-tokens.info/use-cases) ## Source - [Classical scheme](https://github.com/SamuelSchlesinger/anonymous-credit-tokens) - [Post-quantum scheme](https://github.com/SamuelSchlesinger/vole-act)