Verify cryptographic proof of ad delivery or get campaign proofs.
Requires either campaign_id or proof_payload (at least one must be provided).
Two modes:
1. Verify a proof: pass proof_payload with signature fields to verify
2. Get proofs: pass campaign_id to get Ed25519-signed proofs for a campaign
Uses Ed25519 signatures (v2) that can be independently verified by third parties
using the Trillboards public key.
WHEN TO USE:
- Verifying that ads were actually delivered to screens
- Exporting cryptographically signed proof records for auditors
- Getting proof-of-play data for campaign transparency reports
RETURNS (verify mode):
- valid: boolean, reason: string if invalid, version: 'v1' or 'v2'
RETURNS (get proofs mode):
- campaignId, totalImpressions, proofsReturned
- proofs: Array of signed impression proofs
- pagination: { limit, hasMore, nextCursor }
- signatureVersion, publicKeyUrl
EXAMPLE (verify):
verify_proof_of_play({
proof_payload: {
signature: "ed25519=abc123...",
timestamp: "2026-03-10T15:30:00Z",
adId: "ad_123",
impressionId: "imp_456",
screenId: "scr_789",
deviceId: "dev_012"
}
})
EXAMPLE (get proofs):
verify_proof_of_play({
campaign_id: "camp_abc123",
start_date: "2026-03-01",
end_date: "2026-03-10"
})