Docs
Verifying a receipt
For Tier 2 (oracle-backed) receipts, you can reproduce the outcome without using Cred. Four steps.
Step 1 — Identify the oracle
Open the receipt page (/c/<receipt_id>) and look for the oracle badge. For Tier 2 receipts it reads Oracle: Chainlink (decentralized). The evidence block below the badge lists the feed, the round_id, the block_number, and the price observed at the round’s timestamp.
If a receipt doesn’t show the oracle badge, it’s a Tier 1 receipt. See the trust model for the difference.
Step 2 — Verify via block explorer
Click Verify on-chain → on the receipt. That opens the Chainlink aggregator contract on Etherscan. In the Read Contract tab, call getRoundData with the round_id from the receipt. The returned answer divided by 10^decimals must equal the price shown in the receipt.
The Block {n} → link goes to the block that includes the round update — useful if you want to confirm the transaction itself.
Step 3 — Verify via code
The receipt’s “Verify programmatically” panel has a ready-to-run snippet. Shortened:
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const client = createPublicClient({
chain: mainnet,
transport: http("<YOUR_RPC_URL>"),
});
const [roundId, answer, , updatedAt] = await client.readContract({
address: "<feed_address>",
abi: [{
inputs: [], name: "latestRoundData",
outputs: [
{ name: "roundId", type: "uint80" },
{ name: "answer", type: "int256" },
{ name: "startedAt", type: "uint256" },
{ name: "updatedAt", type: "uint256" },
{ name: "answeredInRound", type: "uint80" },
],
stateMutability: "view", type: "function",
}],
functionName: "latestRoundData",
});Compare answer and updatedAt against the values on the receipt. They must match exactly.
Any public RPC endpoint works — Alchemy free tier, Infura free tier, or a self-hosted node. No credentials beyond the RPC URL are required.
Step 4 — Verify without Cred
You do not need Cred to verify this result. The evidence payload on the receipt’s “Download evidence JSON” button is self-contained. Given that file and a public RPC endpoint, you can reconstruct and confirm the outcome at any point in the future, independent of whether cred-repo.com is reachable.
That’s the property that separates Tier 2 from Tier 1. The source is public, the truth is independently verifiable, and the receipt is durable on its own.