CIP-99

The Cardano standard for QR code-based token claims.

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:

  1. Recognizes the web+cardano://claim protocol
  2. Extracts the faucet URL and claim code
  3. Sends a POST request with the recipient's address
  4. Receives ada/tokens/NFTs in the response transaction

Why a standard matters

Tip
Because CIP-99 is an open standard, your campaign codes work with every wallet that supports it. No integration work needed on your side.

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.