Skip to content
Siren

Siren

Siren turns public evidence into trust signals.

Created on 10th May 2026

•

Siren

Siren

Siren turns public evidence into trust signals.

The problem Siren solves

The problem. Today, deciding whether to trust an ENS-named agent, contract, or team means manually checking Sourcify, GitHub, Etherscan, and ENS records — separately, with no shared standard for discounting unverified claims, and no way to prove later that a report ever existed. Token holders approve proxy upgrades blind. Investors back agents on screenshots. Hackathon judges have no way to score a project's verifiability fast.

Siren turns any .eth name into an on-chain trust certificate.

Every Bench verdict can be minted as an EAS attestation (Sepolia + mainnet schemas registered) — an EIP-712-signed certificate that binds the full report payload (subject, namehash, score, tier, computedAt, reportHash, reportUri) to the wallet that published it. The certificate is shareable as an EAS Explorer URL, decodeable by any third party, and the next time someone runs Siren on the same subject, the live verdict can be DIFFED against the previous certificate — surfacing score regressions, tier downgrades, and identity rotations as ALERT-level signals.

What you can use Siren for

  • Mint your project's trust certificate on-chain. /b/<ens> gives you a 0–100 benchmark across four data sources (Sourcify, GitHub, on-chain activity, ENS-internal records). One click → Publish to EAS → permanent receipt. Try it on sbo3lagent.eth — the certificate already lives at sepolia.easscan.org/attestation/view/0xa5b4e5a48e23127a0b9284c7c1128028cc84a06d2fe973092f2dc494e83775ff.

  • Approve a proxy upgrade safely. /r/<ens> gives a 5-second SAFE / REVIEW / SIREN verdict backed by Sourcify-verified bytecode. No source, no upgrade.

  • Diff a previous certificate against the live verdict. Paste an EAS Explorer URL on the homepage, click "Open live verdict" — instant diff banner with severity-coded changes (UNCHANGED / CHANGED / ALERT). Identity rotation, score regression, revocation — all surfaced automatically. This is chain-of-custody for reputation.

  • Apply to Umia's Tailored Auctions (sponsor track). Siren signs EIP-712 ServerPermits that gate Umia's UmiaValidationHook on Bench tier. Founders avoid running their own gating server; bidders embed Siren's hookData blob in their bid. First verifier-as-a-service for Umia, no new key custody.

  • Export a draft Umia application. The verdict page also generates a schema-validated umia venture apply payload (canonical Community Track schema), prefilled from ENS records, locked when sourced from public evidence, JSON-download-only.

Why the certificate is structurally trustworthy

  1. Full-payload EIP-712 binding. The signature covers subject, namehash, score, tier, timestamp, reportHash AND reportUri — verifier rejects on any field mismatch. Score-only signing left subject-spoofing wide open; we explicitly closed that hole.

  2. ECDSA-recovered, not field-claimed. The off-chain verifier doesn't trust the "signer" string in the JSON envelope — it recovers the address from the EIP-712 signature via viem.recoverTypedDataAddress and rejects on mismatch.

  3. Trust-discounted source weights. Unverified GitHub claims contribute at ×0.6 — never hidden, never inflated. The math the certificate carries is honest about what's verified.

  4. Re-derivable. /api/bench/<ens> returns the raw evidence the certificate was minted from. Anyone can recompute the score themselves; no black box behind the signature.

  5. ENS-anchored. Every certificate is bound to a human-readable .eth name via namehash. No opaque IDs, no URL shortlinks to phish.

  6. Honest ceiling. Tier S is reserved for v2 (verified GitHub cross-sign). v1 doesn't pretend to mint a certificate at a tier the math can't reach.

The 30-second story

Type sbo3lagent.eth — see live tier B verdict pulled from Sourcify, GitHub, on-chain, and ENS-internal sources — click Publish to EAS — receive your on-chain certificate (Sepolia EAS UID). Tomorrow, paste that UID back into Siren — diff banner says UNCHANGED. Type a fresh agent — see tier U with "no data, no score" — fix your ENS records — re-run — tier C — mint a new certificate. Reputation that compounds, on-chain.

Challenges we ran into

Making the on-chain certificate actually trustworthy, not just a signed JSON blob. The first version of the EAS attestation flow did three things wrong at once: (1) the on-chain bytes field was the eas-sdk JSON envelope serialized, not the ABI-encoded BenchAttestationPayload — so on-chain decoders returned garbage instead of score/tier; (2) the off-chain verifier compared the "signer" field claim against expected, but never recovered the address from the EIP-712 signature — an attacker could write any signer into the JSON and we'd accept it; (3) the verifier checked reportHash only — leaving subject-spoofing wide open. Fix in one batch: re-encode via encodeBenchPayload before submit, recover via viem.recoverTypedDataAddress against eas-sdk-provided sig.domain/types/message, and verify all material fields (subject, namehash, reportHash, reportUri, score, tier, computedAt, recipient). An audit caught all three the day of the deadline.

The publish flow was broken end-to-end and the broken state had been live for hours. record-publish required an off-chain row in Turso before accepting the on-chain attestation, but saveOffchainAttestation had zero callers — every publish attempt failed with no_offchain_record. Fix: when no row exists, derive the bundle from the on-chain decoded payload itself and INSERT a fresh row, then record the publication. Now the certificate flow works whether or not the off-chain build endpoint ran first.

Multi-chain ENS routing without exploding the page deadline. Production defaulted to Sepolia (DEFAULT_BENCH_CHAIN_ID=11155111) so the curated demo agent on Sepolia would resolve, but real mainnet names like sbo3lagent.eth then routed through Sepolia first, hit "no resolver" rpc errors, retried on mainnet, and consistently blew the 12s page deadline. Fixed via name-suffix routing (only *.upgrade-siren-demo.eth go to Sepolia) plus per-source timeout budgets so one slow source can't wedge the whole orchestrator.

Identity rotation false positives in the diff layer. The compare-with-previous-certificate flow flagged "primaryAddress changed" ALERT every time a Sepolia attestation was diffed against a mainnet ENS resolution — because each chain holds its own resolver state. Solution: read attestation.network → chainId, only flag rotation when same chain; cross-chain compares get an INFO note explaining why addresses are not directly comparable.

Tier ladder math contradiction visible to judges. Engine thresholds were S>=65 / A>=50 after axis rebalance, but the UI legend still said S>=90 / A>=75 from a prior version. A score of 59 landed in A by the engine but the legend said A>=75. Caught by audit. Fix touched ScoreBanner, the new TierLadder component, the homepage tier-range table, and four demo booth tile labels — all of which had been tuned for the old ladder.

Vercel "Sensitive" environment variables don't export. We needed local scripts to query the prod ENS subgraph and Alchemy RPC, but vercel env pull returned empty strings for any var marked Sensitive. Workaround: ship a dedicated /api/ens/debug/<name> route that runs server-side with the real prod env, hit it from the browser to enumerate text records and coinType slots without ever pulling secrets to disk.

Tracks Applied (6)

Network Economy

Siren Bench turns reputation into an economic primitive. Today, agents and onchain ventures can enter markets, raise cap...Read More

Future Society

Siren Bench is public due diligence for autonomous agents and onchain projects. Today, agents and ventures can ask for ...Read More

Sourcify Bounty

Sourcify is the part of Siren's trust math that proves your code does what your source says it does. Siren reads four pu...Read More

Sourcify

Best Agentic Venture

Siren tells Umia which agents have proof, not just promises. The product. Type any ENS-named subject — agent, team, or ...Read More

Umia

Best ENS Integration for AI Agents

Siren Bench uses ENS as the public identity root for AI agents. Each agent is represented by an ENS name. From that nam...Read More

ENS

Most Creative Use of ENS

Siren uses ENS for more than name-to-address resolution. We use ENS as a public evidence router. An ENS name can repres...Read More

ENS

Discussion

Builders also viewed

See more projects on Devfolio