CIP-99 (Proof of Onboarding) is the Cardano Improvement Proposal that defines a standard for QR code-based token claim campaigns. Claimpaign is a reference implementation of this standard.
What CIP-99 defines
The standard specifies:
- A URI scheme (
web+cardano://claim/v1) that wallets register to handle - A faucet API endpoint that wallets call with the recipient address
- The request/response format between wallet and faucet
- Error handling and status codes
URI format
Every claim code encodes a URI like this:
web+cardano://claim/v1?faucet_url=https%3A%2F%2Fclaimpaign.com%2Fapi%2Fclaim&code=SUMMIT_a3bf9c When a wallet scans this QR code, it:
- Recognizes the
web+cardano://claimprotocol - Extracts the faucet URL and claim code
- Sends a POST request with the recipient's address
- Receives ada/tokens/NFTs in the response transaction
Why a standard matters
Transaction metadata
Every Claimpaign transaction carries CIP-10 label 8414 metadata for on-chain identification.
Claim transaction
{
"label": 8414,
"metadata": {
"app": "claimpaign.com",
"campaign": "a1b2c3d4e5f6…",
"version": "1"
}
} Topup transaction
{
"label": 8414,
"metadata": {
"app": "claimpaign.com",
"version": "1"
}
} The campaign field contains sha256(randomSalt + campaignId), computed once when the campaign is created. This allows on-chain observers to correlate all claims belonging to the same campaign without exposing the internal campaign ID.
Authors
CIP-99 was authored by Adam Dean, Alex Dochioiu and "Carl." The full proposal is available on GitHub.