bee13ba4b8
Spec 8b types 1-3. Spend accrues per campaign in batches; burns queue for the engine signer (admin runs consume() on-chain, /api/admin/burns). Rates are volume config (adrates.json), rehearsal placeholders until Marty sets the real card. Public slots serve on the ledger page; campaign manager in the members area. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
127 lines
5.8 KiB
HTML
127 lines
5.8 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>My account | InstantAdPay</title>
|
|
<link rel="stylesheet" href="/assets/site.css">
|
|
</head>
|
|
<body>
|
|
<div class="wrap">
|
|
<section class="hero" style="padding-bottom:16px">
|
|
<h1>My <em>account</em></h1>
|
|
<p class="lead" id="introLead">Join free with your email. Your wallet only comes out when you buy
|
|
a package or switch on payouts, and it stays yours the whole time.</p>
|
|
</section>
|
|
|
|
<div id="authArea">
|
|
<div class="grid c2">
|
|
<div class="card">
|
|
<h3>Create your free account</h3>
|
|
<p class="muted small">Takes ten seconds. No wallet needed to join.</p>
|
|
<p><input id="suEmail" type="email" placeholder="Email" autocomplete="email" style="width:100%"></p>
|
|
<p><input id="suPass" type="password" placeholder="Password (8+ characters)" autocomplete="new-password" style="width:100%"></p>
|
|
<button class="btn" id="signupBtn">Join free</button>
|
|
</div>
|
|
<div class="card">
|
|
<h3>Log in</h3>
|
|
<p class="muted small">Welcome back.</p>
|
|
<p><input id="liEmail" type="email" placeholder="Email" autocomplete="email" style="width:100%"></p>
|
|
<p><input id="liPass" type="password" placeholder="Password" autocomplete="current-password" style="width:100%"></p>
|
|
<button class="btn sec" id="loginBtn">Log in</button>
|
|
</div>
|
|
</div>
|
|
<p class="small muted">Crypto-native? You can also <a href="#" id="walletSigninLink">sign in with just your wallet</a>.
|
|
One free signature, no email needed.</p>
|
|
</div>
|
|
|
|
<div id="memberArea" hidden>
|
|
<div class="grid c3">
|
|
<div class="card"><h3>Your account</h3>
|
|
<p id="posLine" class="muted small">…</p></div>
|
|
<div class="card"><h3>Ad credits</h3>
|
|
<p class="mono" style="font-size:26px;margin:0" id="creditLine">0</p>
|
|
<p class="muted small">1 credit = 1 cent of ad delivery across the network. Recorded on-chain. Only your campaigns can spend them.</p></div>
|
|
<div class="card"><h3>Earning levels</h3>
|
|
<p id="qualLine" class="muted small">…</p></div>
|
|
</div>
|
|
|
|
<div class="card" id="linkCard" hidden>
|
|
<h3>Link your wallet</h3>
|
|
<p class="muted small">Your earnings pay straight to your own wallet, so we need to know which one is yours.
|
|
One free signature links it. It cannot move funds or approve anything. Buying any package links it automatically too.</p>
|
|
<button class="btn" id="linkBtn">Connect & link wallet</button>
|
|
</div>
|
|
|
|
<div class="card" id="activateCard" hidden>
|
|
<h3>Switch on payouts, free</h3>
|
|
<p class="muted small">One free transaction registers your linked wallet on-chain so commissions can reach it,
|
|
and it unlocks your invite link. Buying any package does this automatically.</p>
|
|
<button class="btn sec" id="activateBtn">Activate payouts</button>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h3>Your invite link</h3>
|
|
<p class="muted small">Share it anywhere. Everyone who joins through it becomes part of your line.
|
|
You earn 50 percent of every ad package they ever buy, plus levels 2 and 3 of their teams as you qualify.</p>
|
|
<p class="mono" id="inviteLine">…</p>
|
|
<button class="btn small sec" id="copyInvite" hidden>Copy link</button>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h3>Buy ad packages</h3>
|
|
<p class="muted small">The full ladder with live pricing is on the <a href="/">home page</a>.
|
|
Purchases from your linked wallet automatically credit this account.</p>
|
|
</div>
|
|
|
|
<div class="card" id="campaignCard" hidden>
|
|
<h3>Your ad campaigns</h3>
|
|
<p class="muted small" id="rateLine">…</p>
|
|
<div id="campList"></div>
|
|
<h3 style="margin-top:18px">New campaign</h3>
|
|
<div class="grid c3">
|
|
<p><select id="cType" style="width:100%">
|
|
<option value="banner">Banner (per impression)</option>
|
|
<option value="text">Text ad (per impression)</option>
|
|
<option value="login">Login ad (per day)</option>
|
|
</select></p>
|
|
<p><input id="cName" placeholder="Campaign name" style="width:100%"></p>
|
|
<p><input id="cBudget" type="number" placeholder="Budget (credits)" min="10" style="width:100%"></p>
|
|
</div>
|
|
<p><input id="cTarget" placeholder="Target URL (https://…)" style="width:100%"></p>
|
|
<p id="cImageRow"><input id="cImage" placeholder="Image URL (banner/login ads)" style="width:100%"></p>
|
|
<p id="cTitleRow" hidden><input id="cTitle" placeholder="Headline (max 60)" style="width:100%"></p>
|
|
<p id="cBodyRow" hidden><input id="cBody" placeholder="Ad text (max 140)" style="width:100%"></p>
|
|
<button class="btn" id="createCampBtn">Launch campaign</button>
|
|
</div>
|
|
|
|
<div id="activityArea" hidden>
|
|
<h2>Your activity, straight from the chain</h2>
|
|
<div class="grid c2">
|
|
<div class="card">
|
|
<h3>Earnings</h3>
|
|
<p class="muted small">Every payout the contract has sent to your wallet. Each line links to the transaction.</p>
|
|
<div class="feed" id="earnFeed"><div class="row muted">Nothing yet.</div></div>
|
|
</div>
|
|
<div class="card">
|
|
<h3>Your referrals</h3>
|
|
<p class="muted small">Activations and qualifying buys in your line.</p>
|
|
<div class="feed" id="refFeed"><div class="row muted">Nothing yet.</div></div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<h3>Your purchases</h3>
|
|
<div class="feed" id="buyFeed"><div class="row muted">Nothing yet.</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="small"><a href="#" id="logoutLink">Log out</a></p>
|
|
</div>
|
|
|
|
<footer><div>InstantAdPay · <a href="/ledger">live ledger</a></div></footer>
|
|
</div>
|
|
<script src="/assets/common.js"></script>
|
|
<script src="/assets/wallet.js"></script>
|
|
<script src="/assets/my.js"></script>
|
|
</body>
|
|
</html>
|