489d832546
The email-code endpoint refuses a request that arrives within two seconds of the page loading, because a script fills a form instantly and a person does not. A member whose email is already filled in by the browser has nothing to type, taps straight away, and gets "Give the page a second, then tap again." The page now waits out the remainder itself and sends when the window has passed, so the person sees the normal sending state instead of an error. The server check is untouched, so anything posting at the endpoint without a page behind it still fails exactly as before. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
48 lines
2.9 KiB
HTML
48 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Live ledger | InstantAdPay</title>
|
|
<meta name="description" content="Every purchase, payout, and pass-up on InstantAdPay, streamed straight from the blockchain with a verify link on every line.">
|
|
<link rel="canonical" href="https://instantadpay.com/ledger">
|
|
<meta property="og:type" content="website"><meta property="og:site_name" content="InstantAdPay">
|
|
<meta property="og:url" content="https://instantadpay.com/ledger">
|
|
<meta property="og:title" content="InstantAdPay — the live payout ledger">
|
|
<meta property="og:description" content="Watch real ad purchases split into instant on-chain payouts, live. Every line links to the raw transaction.">
|
|
<meta property="og:image" content="https://instantadpay.com/banners/iap-hero-1200x630.png">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="InstantAdPay — the live payout ledger">
|
|
<meta name="twitter:description" content="Real ad purchases splitting into instant on-chain payouts, live and verifiable.">
|
|
<meta name="twitter:image" content="https://instantadpay.com/banners/iap-hero-1200x630.png">
|
|
<meta name="theme-color" content="#043b2f">
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
|
|
<link rel="icon" type="image/png" href="/logo-icon.png">
|
|
<link rel="stylesheet" href="/assets/site.css?v=20260910h">
|
|
</head>
|
|
<body>
|
|
<div class="wrap">
|
|
<section class="hero" style="padding-bottom:20px">
|
|
<h1>The ledger <em>does not lie</em>.</h1>
|
|
<p class="lead">This page streams every payment the contract has ever made. If it is not here,
|
|
it did not happen. Every line carries a verify link straight to the block explorer. Go click one.</p>
|
|
<p><span class="badge" id="liveBadge">connecting…</span>
|
|
<span class="small muted" id="statLine"></span></p>
|
|
</section>
|
|
<div class="card" id="adSlotBanner" hidden></div>
|
|
<div class="card" style="padding:0">
|
|
<div data-ph-slot="0" style="margin:0 0 10px"></div>
|
|
<div class="feed" id="feed"><div class="row muted">Loading recent history…</div></div>
|
|
<div class="nas-zone" style="max-width:728px;margin:22px auto 0;overflow:hidden;text-align:center"><!-- nas-ledger --><script src="https://www.networkadspace.com/showadss.php?w=728&h=90&n=1&bw=728&bh=90&c=999"></script></div>
|
|
</div>
|
|
<div class="card small" id="adSlotText" hidden></div>
|
|
<footer>
|
|
<div>InstantAdPay · <a href="/">how it works</a> · <a id="contractLink" href="#" target="_blank" rel="noopener">contract source ↗</a></div>
|
|
</footer>
|
|
</div>
|
|
<script src="/assets/common.js?v=20260923b"></script>
|
|
<script src="/assets/ledger.js?v=20260906m"></script>
|
|
<script src="https://polhunter.com/embed.js" data-slots="1" async></script>
|
|
<script src="/assets/chat.js?v=20260906m"></script>
|
|
</body>
|
|
</html>
|