Verified installs · signed receipts · append-only ledger

Earn from the content you already publish

Let a visitor unlock an article, a download or a video by watching an ad. You add one script; we handle verification, the ad waterfall, and the receipt your server redeems.

Free to integrate. No card, no contract, no minimum traffic.

What you get

Built for publishers who want to see the numbers behind a claim rather than take one on trust.

Prove you own it, three ways

A DNS TXT record, a file at a known path, or a meta tag. Checks run from our servers and never trust a result the browser sends. Re-checked daily, with the reason shown when one fails.

One script, eleven methods

Import one module and call unlock, rewarded, banner, interstitial or native. Every method returns a promise and rejects with a machine-readable reason, so your page can tell "no fill" from "not authorised".

Analytics that admit their lag

Nine metrics per website per day, with fill rate per placement. A placement that was never asked reports unavailable, not zero per cent. Export any range to CSV.

Unlocks that cannot be faked

A completed view produces a signed receipt. Your server redeems it once, and a replay is refused. Client-side gating is bypassable, so the receipt is the only thing that grants access.

Referrals with real verification

Your invite code credits verified installs, not clicks. Suspicious referrals are held for review and excluded from your figures until resolved, and you can see how many.

Credentials you can rotate

Each website gets its own public key and secret. Rotating keeps the old secret alive for sixty seconds so in-flight requests do not fail. Secrets are stored only as hashes.

Get paid, anywhere

IBAN, SWIFT, local clearing, Wise or PayPal — five rails, so a corridor is reachable rather than "coming soon". Balances show what is confirmed against what is still estimated, and only confirmed revenue is payable.

Four steps to your first unlock

Most of it is copy and paste. The verification step is the only one that needs your DNS or your server.

Step 1: Register your domain

Add the exact host you will serve from. Subdomains are separate claims and need their own verification.

Step 2: Prove you own it

Publish a token by DNS, file or meta tag, then run the check. It tells you precisely what it found if it fails.

Step 3: Add the script

Copy the snippet, pre-filled with your own public key. Redeem receipts from your server with the secret key.

Step 4: Watch the numbers

Daily metrics per website, fill rate per placement, revenue and CPM, and CSV export when you want the raw rows.

The whole integration

The snippet on your page, and the redemption on your server. The dashboard generates both pre-filled with your own keys.

<!-- On your page -->
<script type="module">
  import Vyro from 'https://shortyai.cloud/vyro.js';

  document.querySelector('#unlock').onclick = async () => {
    const receipt = await Vyro.unlock({ contentRef: 'article-42' });
    // Send it to your own server. Never grant access on this callback alone.
    await fetch('/api/redeem', { method: 'POST', body: JSON.stringify({ receipt }) });
  };
</script>
# On your server — the secret never reaches the browser
POST /v1/unlocks/redeem
X-Website-Secret: vyro_sec_…

{"website_id": "…", "receipt": "…"}   ->   200 granted, 409 already redeemed

Register a domain and see it work

Verification takes as long as your DNS does. Everything after that is in the dashboard.