Skip to content
Conduit

mcp server

proof-of-play-verifier

Independently verify Trillboards DOOH ad impressions using Ed25519 cryptographic proof-of-play signatures. Node.js + Python.

trillboards/proof-of-play-verifiercommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 29, 2026

Proof-of-Play Verifier

Standalone tools to verify Trillboards proof-of-play signatures. Advertisers can independently verify that their ads were actually displayed on screens using Ed25519 cryptographic proofs.

How It Works

Every impression on the Trillboards network generates a cryptographic proof:

  1. The server signs a payload using Ed25519: v2.{timestamp}.{adId}.{impressionId}.{screenId}.{deviceId}
  2. The signature is returned as ed25519={hex_signature}
  3. Anyone can verify the signature using the public key from /.well-known/public-key

Node.js

cd node
npm install
node verify.js
const { verifyProof, fetchPublicKey } = require('./verify');

const publicKey = await fetchPublicKey();
const result = verifyProof({
  signature: 'ed25519=abc123...',
  timestamp: 1705401600000,
  adId: 'campaign-123',
  impressionId: 'imp-456',
  screenId: 'screen-789',
  deviceId: 'device-abc',
  publicKeyHex: publicKey
});

console.log(result.valid); // true or false

Python

cd python
pip install -r requirements.txt
python verify.py
from verify import verify_proof, fetch_public_key

public_key = fetch_public_key()
result = verify_proof(
    signature='ed25519=abc123...',
    timestamp=1705401600000,
    ad_id='campaign-123',
    impression_id='imp-456',
    screen_id='screen-789',
    device_id='device-abc',
    public_key_hex=public_key
)

print(result['valid'])  # True or False

API Endpoints

EndpointMethodAuthDescription
/v1/advertiser/proof/.well-known/public-keyGETNoneGet Ed25519 public key
/v1/advertiser/proof/verify-proofPOSTNoneServer-side verification
/v1/advertiser/proof/signature-infoGETNoneSignature format documentation

Signature Format

Payload: v2.{timestamp}.{adId}.{impressionId}.{screenId}.{deviceId}
Signature: ed25519={64-byte-hex-signature}
Algorithm: Ed25519

Related

License

MIT

↑↓ navigate openesc close