mcp server
proof-of-play-verifier
Independently verify Trillboards DOOH ad impressions using Ed25519 cryptographic proof-of-play signatures. Node.js + Python.
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, 2026Proof-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:
- The server signs a payload using Ed25519:
v2.{timestamp}.{adId}.{impressionId}.{screenId}.{deviceId} - The signature is returned as
ed25519={hex_signature} - 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
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/v1/advertiser/proof/.well-known/public-key | GET | None | Get Ed25519 public key |
/v1/advertiser/proof/verify-proof | POST | None | Server-side verification |
/v1/advertiser/proof/signature-info | GET | None | Signature format documentation |
Signature Format
Payload: v2.{timestamp}.{adId}.{impressionId}.{screenId}.{deviceId}
Signature: ed25519={64-byte-hex-signature}
Algorithm: Ed25519
Related
- API Documentation
- DOOH Agent Example -- build a DOOH advertising agent with MCP or REST
- MCP Server (Streamable HTTP)
- Smithery Listing
- NPM SDK
License
MIT