Oracle System
The Oracle is Checkpoint’s verification layer. It queries offchain points APIs, generates cryptographic signatures to prove the data is legitimate, and the blockchain verifies these signatures trustlessly. For deposits, the flow is now split into two steps:- The account owner signs a short-lived authorization for a specific
pointsIdandoperator. - The oracle verifies that authorization, fetches the latest points balance, and signs the deposit
claim that the
Depositcontract checks onchain.
The Problem It Solves
How do we know users really have the points they claim without requiring projects to set up special infrastructure?- Option 1: Require database access: Projects expose their database, which is risky and adds work
- Option 2: Require special APIs: Projects build custom endpoints just for Checkpoint
- Option 3: Query existing APIs: The oracle uses the project’s existing API and signs the verified result
How It Works
Account Model
accountis the canonical ERC-7930 representation of the underlying points holder, such as an EOAoperatoris the EVM wallet allowed to perform the onchain deposit for that account- The oracle normalizes the input account before signing or verifying claims
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 is:
Easy Project Integration
Anyone can integrate their project into Checkpoint To get your project’s points integrated into Checkpoint’s Oracle system and the Points Aggregator simply create an adapter in the points-adapters repository.How It Works
An adapter is a simple piece of code that:- Takes a user’s account identifier as input
- Queries your project’s existing points API
- Returns the points data in a standardized format
What You Need to Do
- Create an adapter using standard web APIs
- Define key exports:
fetch,data,total, and optionalrankanddeprecated - Submit a pull request to the points-adapters repository
Types of Verifications
1. Deposit Authorization
POST /claim/deposit/authorization- Resolve the requested account
- Return the nonce, expiry, and EIP-712 payload that the account owner must sign
- Full documentation →
Example Request
The response includes a JSON-safe
typedData view plus the raw authorization fields. With viem,
rebuild the typed data using bigint values before signing.2. Deposit Claim
POST /claim/deposit- Verify the signed deposit authorization
- Fetch the latest points balance
- Return the oracle claim and signature to pass into
Deposit.deposit(...) - Full documentation →
Example Request
Example Response
3. Settlement
POST /claim/settlement- Verify that a trade was properly settled onchain
- Return the oracle signature for the settlement transaction
- Full documentation →
Example Request
Example Response
Tracking Historical Changes
When your points balance changes, the oracle records this onchain viachangePoints().
This usually happens every 24 hours but there is no strong guarantee.
API Reference
The Oracle provides endpoints for interacting with claim verification.Try it now! Visit the Oracle API playground to test the endpoints
interactively. Fill in your parameters and click “Try it Now” to see live responses from the
Oracle.