Circle Suite P0: /suite tool wall — wallet sign-in (existing challenge/verify flow), live level entitlements via /api/public/suite-me (org-gated to teamRootId), all tiles always visible (yours / unlocks-at / in-development), L1 = today's real tools; homepage CTA + chatbot + AI prompt synced

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-08-28 05:19:09 -05:00
parent 1259e5284a
commit 0258b82a16
5 changed files with 195 additions and 3 deletions
+2
View File
@@ -51,6 +51,8 @@
a:()=>`"No money" is usually one of three things — sort it first. (1) Most often it means "this sounds expensive/complicated": entry is ${pol()} POL${usd()||" — a small one-time amount"} — payable with a regular debit card right on the <a href="/join-now">join page</a>. (2) Sometimes it's a priority thing: send the "Pocket Change" video from <a href="/tools">Promo Tools</a> and let it do the talking. (3) If they're genuinely broke: tell them honestly "don't join yet" — never rent money, never money they can't afford to lose. Ask "when's payday?" and follow up then — their invite link doesn't expire and the team keeps building publicly while they wait. One hard rule: never pay someone's entry for them.`},
{k:['own the level','need to own','have to buy the level','catch without','still at scintilla','upline not upgraded','sponsor not upgraded','only pays 2','only pays two','only 2 payments','seems small','2 then 4','level is your reach'],
a:()=>`Two facts that surprise people, both straight from the contract code: (1) To catch your two matrix children's FIRST upgrade (Ascensus), you only need to be <strong>qualified with your two directs</strong> — you do NOT need to own Ascensus yourself, because the contract checks the catcher against the level the buyer is jumping FROM (Scintilla, which everyone has). Owning levels extends your REACH: catching a Fabrica payment from 2 generations down requires Ascensus, and so on — your level is your reach, which is why the team stays one level ahead of its deepest active layer. There's a 97-second video on exactly this — "Your level is your reach" — on the <a href="/training">training page</a> (Video 7). (2) Yes, each depth pays a fixed count — 2, then 4, then 8, one payment per person — but each deeper generation pays <strong>twice as much per person at twice the width</strong> (full-generation value quadruples per level), generations keep filling over time via recruiting and spillover, and pass-ups from under-leveled members add catches on top. Exact numbers: <a href="/how-pay-works#exact-costs">how-pay-works#exact-costs</a> — mechanical maximums, never promised income. Want it as a printable chart personalized to YOUR position (shows which generations you're catching now vs. which need your next level)? <a href="/generation-pay">rmcircle.team/generation-pay</a> — enter your ID and print.`},
{k:['suite','circle suite','toolkit','tool kit','license','what tools','my tools','unlock tools','software'],
a:()=>`Every paid position on our team is a <strong>license to the Circle Suite</strong> — our marketing toolkit. Open <a href="/suite">rmcircle.team/suite</a>, connect the wallet that holds your position (one free signature), and your level lights up your tools: the Promo Center, printable handouts with your QR, the Fast Start and Weekly Rhythm sheets, your Generation Pay chart, the Circle Method course, your live dashboard, and me — the AI coach. Higher levels unlock more as the Suite builds out (the wall shows exactly what's coming and what level opens it — tools marked "in development" ship as they're built, and every upgrade extends your license automatically, straight from the contract).`},
{k:['entry price','upgrade price','different price','entry vs upgrade','why is the upgrade','entry fee different','two prices','inflated','price chart','cost chart','entry column','upgrade column'],
a:()=>`They're two different purchases, paid to two different people — nothing is double-counted. <strong>Entry</strong> is the one-time price to create your position (Premium level 1: 360.58 POL — charts often show ~362 with a small send buffer); 95% of the base goes to your sponsor, and the contract keeps a 5% admin charge on entries only. <strong>Upgrade</strong> is what an existing position pays to climb one level (621.40 POL to reach level 2), and 100% of every upgrade travels up the matrix to a qualified member — zero admin fee. The upgrade ladder also doubles EXACTLY at every rung (2 × 621.40 = 1,242.80, to the penny), so the first two pass-ups you catch at your level always equal your own next climb. See the full contract-exact table at <a href="/how-pay-works#exact-costs">how-pay-works#exact-costs</a> — every number is a locked constant you can verify with getAllCosts() on Polygonscan.`},
{k:['fast start','checklist','printable','print','48 hour','48-hour','getting started sheet'],
+1 -1
View File
@@ -7,7 +7,7 @@
<main>
<section class="hero wrap"><div class="eyebrow">Real Tools • Real Team • On Polygon</div><h1 id="bridgeHeadline">A Complete Marketing Toolkit.<br><span class="gold">Included With Your Position.</span></h1><p id="bridgeSubheadline">Promo videos, personalized pages, printable handouts, an AI coach, live dashboards — and a team that teaches you how to use them to build your business online, then shows your two how to do the same. Paid person-to-person on Polygon.</p><div class="hero-actions"><a class="btn btn-primary" href="/start">Show Me the Current Team Placement →</a><div class="qr-cta"><img src="/qr-start.svg" width="106" height="106" alt="QR code — scan to open the getting-started page with the current team sponsor"><span>Scan to get started<br><small>opens the current team placement</small></span></div><a class="btn btn-secondary" href="#strategy">See the Strategy</a></div><div class="micro">Independent team training resource • Participation involves risk • No income is guaranteed</div>
<figure class="roadmap-figure" style="margin-top:34px"><a href="/roadmap.webp" target="_blank" rel="noopener"><img src="/roadmap.webp" alt="RM Circle Premium Team Build Roadmap — core strategy, step-by-step guide, premium levels, and duplication formula" width="1149" height="1369"></a><figcaption>This roadmap is the plan every member follows — tap to view full size.</figcaption></figure></section>
<section class="section"><div class="wrap"><div class="section-head"><div class="eyebrow">The product · real software</div><h2>Every paid member gets a license to <span class="gold">the whole toolkit.</span></h2><p>Working software you use from day one to build your business online — learn the tools, build with them, and teach your two to do the same. And the toolkit keeps growing:</p></div><div class="grid-3"><div class="card"><div class="card-icon">🎓</div><h3>The Circle Method</h3><p>A complete 10-lesson recruiting &amp; coaching course — mindset to duplication, ~30 minutes, free on the <a href="/training#circle-method" style="color:var(--teal)">training page</a>.</p></div><div class="card"><div class="card-icon">🎬</div><h3>A promo arsenal</h3><p>Four produced curiosity videos with matched landing pages, ready-made posts, descriptions, swipes and banners — every piece auto-loaded with YOUR link.</p></div><div class="card"><div class="card-icon">🖨️</div><h3>Printables with YOUR QR</h3><p>Five full-color handout designs, the 48-Hour Fast Start, the Weekly Rhythm, and your personal Generation Pay chart — every sheet prints with your own QR code and link on the paper.</p></div><div class="card"><div class="card-icon">🤖</div><h3>An AI coach, 24/7</h3><p>The chat bubble answers any question about the system — in 21+ languages, at any hour.</p></div><div class="card"><div class="card-icon">📊</div><h3>A live coaching dashboard</h3><p>Your pipeline, organization bar, coach panel and wallet-verified team messages — read live from the blockchain.</p></div><div class="card"><div class="card-icon">⛓️</div><h3>The public engine</h3><p>Underneath it all: the verified smart contract — person-to-person payments anyone can audit. The team provides the toolkit; the blockchain provides the trust.</p></div></div></div></section>
<section class="section"><div class="wrap"><div class="section-head"><div class="eyebrow">The product · real software</div><h2>Every paid member gets a license to <span class="gold">the whole toolkit.</span></h2><p>Working software you use from day one to build your business online — learn the tools, build with them, and teach your two to do the same. And the toolkit keeps growing:</p></div><div class="grid-3"><div class="card"><div class="card-icon">🎓</div><h3>The Circle Method</h3><p>A complete 10-lesson recruiting &amp; coaching course — mindset to duplication, ~30 minutes, free on the <a href="/training#circle-method" style="color:var(--teal)">training page</a>.</p></div><div class="card"><div class="card-icon">🎬</div><h3>A promo arsenal</h3><p>Four produced curiosity videos with matched landing pages, ready-made posts, descriptions, swipes and banners — every piece auto-loaded with YOUR link.</p></div><div class="card"><div class="card-icon">🖨️</div><h3>Printables with YOUR QR</h3><p>Five full-color handout designs, the 48-Hour Fast Start, the Weekly Rhythm, and your personal Generation Pay chart — every sheet prints with your own QR code and link on the paper.</p></div><div class="card"><div class="card-icon">🤖</div><h3>An AI coach, 24/7</h3><p>The chat bubble answers any question about the system — in 21+ languages, at any hour.</p></div><div class="card"><div class="card-icon">📊</div><h3>A live coaching dashboard</h3><p>Your pipeline, organization bar, coach panel and wallet-verified team messages — read live from the blockchain.</p></div><div class="card"><div class="card-icon">⛓️</div><h3>The public engine</h3><p>Underneath it all: the verified smart contract — person-to-person payments anyone can audit. The team provides the toolkit; the blockchain provides the trust.</p></div></div><div style="text-align:center;margin-top:26px"><a class="btn btn-primary" href="/suite">Open the Circle Suite — see your toolkit →</a><p class="micro" style="margin-top:8px;color:var(--muted)">Members: connect your wallet and your level lights up your tools.</p></div></div></section>
<section class="section" id="teamstats" style="padding-top:38px"><div class="wrap"><div class="section-head" style="max-width:880px"><div class="eyebrow">Our team by the numbers</div><h2>Why it pays to be on a <span class="gold">winning team.</span></h2><p>Every figure below is read live from the Polygon blockchain — anyone can verify it. These are historical on-chain facts, not a promise of future income.</p></div>
<div id="teamStatGrid" class="team-stats"><div class="empty">Reading the blockchain…</div></div>
<div class="grid-3 team-why" style="gap:22px"><article class="card"><div class="card-icon">↧</div><h3>Spillover works for you</h3><p>When your team keeps recruiting, the overflow spills <em>down</em> into your matrix — filling your structure with members you didn't personally enroll. A bigger, more active team means more spillover landing under you.</p></article><article class="card"><div class="card-icon">↑</div><h3>Depth pays as it climbs</h3><p>Your income comes from your team upgrading through the levels, and every upgrade travels up the matrix. The deeper and more active your side, the more upgrade payments flow toward your position — if you stay qualified and keep your level ahead.</p></article><article class="card"><div class="card-icon">★</div><h3>You never build alone</h3><p>The team rotation points everyone's effort at helping the next person get their two. Join the momentum and the team works to qualify you — instead of grinding solo.</p></article></div>
+54
View File
@@ -0,0 +1,54 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="robots" content="noindex"><meta name="description" content="The Circle Suite — the marketing toolkit licensed to every paid position on our team. Connect your wallet and your level lights up your tools."><title>The Circle Suite | RM Circle Team Build</title><link rel="icon" type="image/png" href="/favicon.png"><link rel="stylesheet" href="/styles.css">
<style>
.su-wrap{max-width:1020px;margin:0 auto;padding:24px 20px 70px}
.su-hero{text-align:center;max-width:780px;margin:0 auto 10px}
.su-hero h1{font-size:clamp(30px,5vw,44px);margin:8px 0 10px}
.su-hero p{color:var(--muted);line-height:1.65}
#suPips{display:flex;gap:9px;justify-content:center;align-items:center;margin:18px 0 6px}
#suPips .lab{color:var(--muted);font-weight:800;font-size:12px;letter-spacing:2px;margin-right:4px}
.su-pip{width:15px;height:15px;border-radius:50%;background:rgba(255,255,255,.06);border:2px solid var(--line);opacity:.6}
.su-pip.on{background:var(--teal);border-color:var(--teal);opacity:1}
.su-pip.gold{background:var(--gold);border-color:var(--gold);opacity:1}
#suConnect{margin:16px auto 6px;display:block}
#suMe{display:none;border:2px solid var(--teal);border-radius:12px;padding:12px 18px;margin:14px auto 6px;max-width:640px;font-size:15px;line-height:1.6;text-align:center}
#suMe b{color:var(--gold)}
#suErr{display:none;color:#f0a05a;text-align:center;margin:10px auto;max-width:640px;font-size:14px}
.su-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:14px;margin-top:26px}
.su-tile{background:var(--card,#0d2236);border:1px solid var(--line,#24425d);border-radius:14px;padding:16px 18px;position:relative;
display:flex;flex-direction:column;gap:6px;min-height:150px;transition:border-color .2s}
.su-tile .ico{font-size:26px;line-height:1}
.su-tile h3{font-size:16.5px;margin:2px 0 0}
.su-tile p{font-size:13px;color:var(--muted);line-height:1.5;margin:0;flex:1}
.su-tile .badge{position:absolute;top:12px;right:12px;font-size:10px;font-weight:800;letter-spacing:.08em;
border-radius:999px;padding:2px 9px;border:1px solid var(--line);color:var(--muted)}
.su-tile.open{border-color:rgba(78,214,203,.55)}
.su-tile.open .badge{border-color:var(--teal);color:var(--teal)}
.su-tile.locked{opacity:.62}
.su-tile.locked .badge{border-color:var(--gold);color:var(--gold)}
.su-tile a.go{color:var(--teal);font-weight:700;font-size:13.5px;text-decoration:none;margin-top:4px}
.su-tile .dev{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:2px 9px;align-self:flex-start}
.su-lvhead{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin-top:10px}
.su-lvhead .n{font-family:Georgia,serif;font-weight:700;color:var(--gold);font-size:20px}
.su-lvhead .nm{font-weight:800;letter-spacing:.12em;font-size:12.5px;color:var(--muted);text-transform:uppercase}
.su-lvhead .rule{flex:1;height:1px;background:var(--line)}
.su-foot{margin-top:34px;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.6;text-align:center}
</style></head>
<body>
<header class="wrap nav"><a class="brand" href="/"><img class="brand-mark" src="/logo.jpg" alt="The RM Circle" width="42" height="42"><span><span id="brandName">RM Circle</span><small>The Circle Suite</small></span></a><div class="nav-actions"><a class="btn btn-secondary hide-mobile" href="/tools">Promo Tools</a><a class="btn btn-primary" href="/my">My Dashboard</a></div></header>
<main class="su-wrap">
<div class="su-hero">
<div class="eyebrow" style="color:var(--gold)">THE PRODUCT · YOUR POSITION IS YOUR LICENSE</div>
<h1>The Circle <span class="gold">Suite.</span></h1>
<p>Every paid position on our team is a license to this toolkit. Connect the wallet that holds your position — one free signature, it can't move funds — and your level lights up your tools. Each upgrade extends your license, automatically, straight from the contract.</p>
<div id="suPips"><span class="lab">YOUR LEVEL</span></div>
<button id="suConnect" class="btn btn-primary">🔑 Connect wallet — light up my tools</button>
<div id="suMe"></div>
<div id="suErr"></div>
</div>
<div id="suGrid" class="su-grid"></div>
<div class="su-foot">The Suite is included with team membership — never sold separately, never an extra cost. Tools marked "in development" ship in the order the team builds them; only what you can click today is promised today. Independent team resource · No income is guaranteed · Cryptocurrency involves risk. <a href="/how-pay-works#exact-costs" style="color:var(--teal)">Level costs, straight from the contract →</a></div>
</main>
<script src="/rmc-wallet.js"></script>
<script src="/suite.js"></script>
<script src="/chat.js" defer></script>
<script src="/translate.js" defer></script><script src="/tg-app.js" defer></script><script src="/nav-dash.js" defer></script></body></html>
+118
View File
@@ -0,0 +1,118 @@
// The Circle Suite — P0 tool wall. Wallet sign-in (same challenge/verify flow
// as the training gate) -> live level from the contract -> tiles light up.
// Every tile is always VISIBLE: unlocked at-or-below the member's level,
// dimmed above it. Future tools carry an honest "in development" tag.
(function () {
'use strict';
var LEVELS = ['Scintilla', 'Ascensus', 'Fabrica', 'Culmen', 'Apex', 'Fastigium', 'Vertex', 'Corona'];
var TOOLS = [
{ lv: 1, ico: '🎬', name: 'Promo Center', desc: 'Videos, posts, swipes, emails and the banner kit — every piece pre-personalized with your link.', href: '/tools', live: true },
{ lv: 1, ico: '🖨️', name: 'Printable Handouts', desc: 'Five full-color designs that print two per page — with YOUR QR code on the paper.', href: '/flyers', live: true },
{ lv: 1, ico: '✅', name: 'Fast Start + Weekly Rhythm', desc: 'The 48-hour launch checklist and the 20-minute weekly routine, personalized and printable.', href: '/fast-start', live: true },
{ lv: 1, ico: '📊', name: 'Generation Pay Chart', desc: 'Your personal when-does-each-generation-pay-me chart, read live from the contract.', href: '/generation-pay', live: true },
{ lv: 1, ico: '🎓', name: 'The Circle Method', desc: 'The 10-lesson recruiting and coaching course. Lessons unlock with this same wallet.', href: '/training', live: true },
{ lv: 1, ico: '📈', name: 'Live Dashboard', desc: 'Your pipeline, organization bar, coach panel and wallet-verified team messages.', href: '/my', live: true },
{ lv: 1, ico: '🤖', name: 'AI Coach', desc: '24/7 answers about the system, in 21+ languages — the chat bubble on every page of this site.', href: '#', live: true, coach: true },
{ lv: 2, ico: '✍️', name: 'Copy Engine', desc: 'An AI copywriter tuned to this business: posts, DMs, follow-ups and objection replies with your link filled in.', live: false },
{ lv: 2, ico: '🧱', name: 'Page Builder', desc: 'Answer five questions, get your own hosted bridge page — your story, your angle video, your QR.', live: false },
{ lv: 3, ico: '📧', name: 'Email Engine', desc: 'Follow-up sequences and broadcasts in the team voice, exportable to any autoresponder.', live: false },
{ lv: 3, ico: '🎥', name: 'Video Maker', desc: 'The team’s master promo videos rendered with your personal end-card — your name, your QR, your link.', live: false },
{ lv: 4, ico: '🗣️', name: 'Voice Profile + Funnels', desc: 'Output that sounds like YOU, plus multi-page funnels on your own team subdomain.', live: false },
{ lv: 5, ico: '🚦', name: 'Traffic Desk', desc: 'Monthly ad credits on the team’s networks, co-op rotator priority, and AI campaign packs.', live: false },
{ lv: 6, ico: '🏭', name: 'Funnel Factory', desc: 'Complete hosted funnels with A/B variants, webinar rooms, and a lead CRM.', live: false },
{ lv: 7, ico: '🧭', name: 'Leader Ops', desc: 'Team radar, AI coaching digests for your legs, and cohort training rooms.', live: false },
{ lv: 8, ico: '👑', name: 'Founder Desk', desc: 'Your own AI operator running your promotion, API access, and the inner circle.', live: false }
];
var $ = function (id) { return document.getElementById(id); };
var me = null; // {id, level, levelName, tierName, directCount, inOrg}
function pips() {
var host = $('suPips');
host.querySelectorAll('.su-pip').forEach(function (p) { p.remove(); });
for (var k = 1; k <= 8; k++) {
var p = document.createElement('span');
p.className = 'su-pip' + (me && me.inOrg && me.level >= k ? (k === 8 ? ' gold' : ' on') : '');
p.title = 'Level ' + k + ' · ' + LEVELS[k - 1];
host.appendChild(p);
}
}
function render() {
var grid = $('suGrid');
grid.innerHTML = '';
var lastLv = 0;
TOOLS.forEach(function (t) {
if (t.lv !== lastLv) {
lastLv = t.lv;
var h = document.createElement('div');
h.className = 'su-lvhead';
h.innerHTML = '<span class="n">L' + t.lv + '</span><span class="nm">' + LEVELS[t.lv - 1] + '</span><span class="rule"></span>';
grid.appendChild(h);
}
var open = !!(me && me.inOrg && me.level >= t.lv);
var d = document.createElement('div');
d.className = 'su-tile ' + (me ? (open ? 'open' : 'locked') : 'locked');
var badge = me
? (open ? '✓ YOURS' : 'UNLOCKS AT ' + LEVELS[t.lv - 1].toUpperCase())
: 'LEVEL ' + t.lv;
d.innerHTML = '<span class="badge">' + badge + '</span><span class="ico">' + t.ico + '</span><h3>' + t.name + '</h3><p>' + t.desc + '</p>'
+ (t.live
? (open || !me ? '<a class="go" href="' + t.href + '"' + (t.coach ? ' data-coach="1"' : '') + '>Open →</a>' : '')
: '<span class="dev">IN DEVELOPMENT — ships with the Suite build-out</span>');
grid.appendChild(d);
});
var coach = grid.querySelector('[data-coach]');
if (coach) coach.addEventListener('click', function (ev) { ev.preventDefault(); var f = document.querySelector('.chat-fab'); if (f) f.click(); });
}
async function refreshMe() {
try {
var r = await fetch('/api/public/suite-me');
if (!r.ok) return false;
me = await r.json();
$('suMe').style.display = 'block';
$('suMe').innerHTML = me.inOrg
? '<b>#' + me.id + '</b> · ' + me.tierName + ' · Level ' + me.level + ' (' + me.levelName + ')' +
(me.directCount >= 2 ? ' · <span style="color:var(--teal)">✓ qualified</span>' : ' · ' + me.directCount + '/2 directs') +
'<br>Your license covers <b>Level ' + me.level + '</b> and everything below it' +
(me.level < 8 ? ' — your next upgrade extends it to ' + LEVELS[me.level] + '.' : ' — full Suite.')
: '<b>#' + me.id + '</b> — this position isn’t inside our team’s organization. The Suite is a benefit of building with our circle; ask the person who shared this page about joining through the team.';
$('suConnect').style.display = 'none';
pips(); render();
return true;
} catch (e) { return false; }
}
async function connect() {
var btn = $('suConnect'), err = $('suErr');
err.style.display = 'none';
btn.disabled = true; btn.textContent = 'Connecting…';
try {
var eth = await window.RMCWallet.pick();
if (!eth) { err.textContent = 'No wallet found in this browser. On a phone, open this page inside your wallet app’s browser (the DApps tab) — type rmcircle.team/suite there.'; err.style.display = 'block'; btn.disabled = false; btn.textContent = '🔑 Connect wallet — light up my tools'; return; }
var accs = await eth.request({ method: 'eth_requestAccounts' });
var account = accs[0];
try { await window.RMCWallet.ensureChain(eth); } catch (ce) {}
var ch = await (await fetch('/api/public/msg-challenge', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ address: account }) })).json();
if (!ch.message) throw new Error(ch.error || 'Could not start sign-in.');
var sig = await eth.request({ method: 'personal_sign', params: [ch.message, account] });
var vr = await (await fetch('/api/public/msg-verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ address: account, signature: sig }) })).json();
if (!vr.ok) throw new Error(vr.error || 'Signature check failed.');
await refreshMe();
} catch (e) {
var m = String((e && e.message) || e);
err.textContent = /not registered|no position/i.test(m)
? 'This wallet doesn’t hold a position yet. The Suite comes with one — see the Getting Started page.'
: 'Sign-in didn’t complete: ' + m + ' — tap the button to try again.';
err.style.display = 'block';
}
btn.disabled = false; btn.textContent = '🔑 Connect wallet — light up my tools';
}
document.addEventListener('DOMContentLoaded', function () {
pips(); render();
$('suConnect').addEventListener('click', connect);
refreshMe(); // silent: already signed in (training gate / Mini App bridge)
});
})();
+20 -2
View File
File diff suppressed because one or more lines are too long