diff --git a/public/chat.js b/public/chat.js index 304d7f8..6ec5f7a 100644 --- a/public/chat.js +++ b/public/chat.js @@ -19,8 +19,8 @@ a:()=>`Premium entry is ${pol()} POL${usd()} on Polygon Mainnet, plus a small extra POL balance for network gas. POL's dollar value changes with the market. Only ever use funds you can afford to lose.`}, {k:['pol','polygon','network','chain','gas','matic','mainnet'], a:()=>`The build runs on Polygon Mainnet (chain ID 137). POL is the network's native token — it pays for your Premium entry AND for transaction "gas." Easiest way to think about gas: just like a car needs fuel to get from A to B, every blockchain transaction burns a tiny bit of POL to move. That's why you keep a little extra in the tank beyond your entry — a wallet that's bone-dry can't make the trip. In MetaMask, make sure Polygon is the selected network before doing anything.`}, - {k:['metamask','wallet','create wallet','install','set up wallet','setup wallet'], - a:()=>`Install MetaMask only from the official site or your device's official app store, then create your wallet. Video 2 in the training walks through it step by step. Never share your Secret Recovery Phrase with anyone — not the team, not this site, not a "support agent".`}, + {k:['safepal','metamask','wallet','create wallet','install','set up wallet','setup wallet'], + a:()=>`We recommend SafePal: install it only from the official site or your device's official app store, then create your wallet. MetaMask and Trust work too, and the site's wallet picker lists SafePal first. Video 2 in the training walks through it step by step. Never share your Secret Recovery Phrase with anyone — not the team, not this site, not a "support agent".`}, {k:['fund','funding','buy pol','get pol','deposit','exchange','transfer','send pol'], a:()=>`You'll need about ${pol()} POL plus a little extra for gas${usd()}, on Polygon Mainnet. Video 3 in the training shows how to fund your wallet. Brand new to crypto? You can buy POL directly with a debit/credit card, Apple Pay, or Google Pay via MoonPay — pick POL on the Polygon network (MoonPay may show POL's old name, MATIC — same token) and send it to your own wallet address. The join page also offers this automatically if your connected wallet is short. Double-check you're getting POL on Polygon — not another chain.`}, {k:['join','buy','purchase','premium position','enter','sign up','signup','register','get started','start'], diff --git a/public/contract.html b/public/contract.html index 4a73795..3e0f2c8 100644 --- a/public/contract.html +++ b/public/contract.html @@ -30,5 +30,5 @@ - + diff --git a/public/direct-join.js b/public/direct-join.js index ca00c86..6000d10 100644 --- a/public/direct-join.js +++ b/public/direct-join.js @@ -83,7 +83,7 @@ async function connect(){ try{ eth=await window.RMCWallet.pick(); - if(!eth){ log('No wallet selected or detected. Install/unlock MetaMask, Trust, or SafePal and try again.','err'); return; } + if(!eth){ log('No wallet selected or detected. Install/unlock SafePal (recommended), MetaMask, or Trust and try again.','err'); return; } attachWalletEvents(); log('Requesting wallet connection…'); var accs=await req('eth_requestAccounts'); account=accs[0]; diff --git a/public/disclaimer.html b/public/disclaimer.html index 7472a47..da73cd2 100644 --- a/public/disclaimer.html +++ b/public/disclaimer.html @@ -25,4 +25,4 @@ - + diff --git a/public/fast-start.html b/public/fast-start.html index 5082230..dcc7ca1 100644 --- a/public/fast-start.html +++ b/public/fast-start.html @@ -111,6 +111,6 @@ - + diff --git a/public/flyers.html b/public/flyers.html index 20b3f77..561600d 100644 --- a/public/flyers.html +++ b/public/flyers.html @@ -47,6 +47,6 @@ - + diff --git a/public/generation-pay.html b/public/generation-pay.html index dc02308..5a47561 100644 --- a/public/generation-pay.html +++ b/public/generation-pay.html @@ -107,6 +107,6 @@ table.gp td:first-child{white-space:nowrap} - + diff --git a/public/how-pay-works.html b/public/how-pay-works.html index c6c0d36..07c97d1 100644 --- a/public/how-pay-works.html +++ b/public/how-pay-works.html @@ -145,5 +145,5 @@ - + diff --git a/public/inapp-browser.js b/public/inapp-browser.js index 7fc7c0b..934f8a6 100644 --- a/public/inapp-browser.js +++ b/public/inapp-browser.js @@ -43,7 +43,7 @@ 'so no wallet app can connect here. That’s why this isn’t working, and it’s not anything you did wrong.' + '
' + - '
Then open Trust (or MetaMask / SafePal), find its ' + + '
Then open SafePal (or Trust / MetaMask), find its ' + 'Browser or DApps tab, and paste it there. Typing ' + url + ' by hand works too.
'; }, // Wire the copy button after the notice is inserted. diff --git a/public/index.html b/public/index.html index 3643e69..89359d6 100644 --- a/public/index.html +++ b/public/index.html @@ -23,5 +23,5 @@
Ready to start?

See the current team placement.

The onboarding page automatically shows the sponsor position the team is currently helping. Always use the sponsor shown there instead of an old screenshot or saved link.

Open Getting Started Instructions →
- + diff --git a/public/join.html b/public/join.html index 2d62173..41e4869 100644 --- a/public/join.html +++ b/public/join.html @@ -29,5 +29,5 @@
Risk reminder: participation involves cryptocurrency and smart-contract risk. No income is guaranteed. Use only funds you can afford to lose.
- + diff --git a/public/my.html b/public/my.html index efa3e51..dc4b87d 100644 --- a/public/my.html +++ b/public/my.html @@ -31,5 +31,5 @@ - + diff --git a/public/privacy.html b/public/privacy.html index 6cf188a..e846def 100644 --- a/public/privacy.html +++ b/public/privacy.html @@ -82,4 +82,4 @@

This page describes our actual practices in plain language. It is not legal advice.

- + diff --git a/public/refunds.html b/public/refunds.html index 6e351d9..edd05bf 100644 --- a/public/refunds.html +++ b/public/refunds.html @@ -60,4 +60,4 @@

This page explains how payments work on this independent team resource. It is not legal, financial, tax, or investment advice.

- + diff --git a/public/replays.html b/public/replays.html index 4021573..9122b84 100644 --- a/public/replays.html +++ b/public/replays.html @@ -14,5 +14,5 @@ - + diff --git a/public/rmc-wallet.js b/public/rmc-wallet.js index b1c945c..144d566 100644 --- a/public/rmc-wallet.js +++ b/public/rmc-wallet.js @@ -30,15 +30,23 @@ if(eth&&Array.isArray(eth.providers)){ eth.providers.forEach(function(p){ if(!p)return; - var nm=p.isPhantom?'Phantom':p.isMetaMask?'MetaMask':p.isCoinbaseWallet?'Coinbase Wallet':p.isTrust||p.isTrustWallet?'Trust Wallet':p.isRabby?'Rabby':'Injected wallet'; + var nm=p.isSafePal?'SafePal':p.isPhantom?'Phantom':p.isMetaMask?'MetaMask':p.isCoinbaseWallet?'Coinbase Wallet':p.isTrust||p.isTrustWallet?'Trust Wallet':p.isRabby?'Rabby':'Injected wallet'; add(p,nm); }); } + // SafePal (the wallet we recommend): its extension and app browser inject window.safepal / window.safepalProvider, + // and flag window.ethereum.isSafePal when they hold the slot + if(window.safepalProvider) add(window.safepalProvider,'SafePal','com.safepal'); + if(window.safepal&&window.safepal.ethereum) add(window.safepal.ethereum,'SafePal','com.safepal'); + if(eth&ð.isSafePal) add(eth,'SafePal','com.safepal'); if(window.phantom&&window.phantom.ethereum) add(window.phantom.ethereum,'Phantom','app.phantom'); if(eth&ð.isPhantom&&!(window.phantom&&window.phantom.ethereum)) add(eth,'Phantom','app.phantom'); }catch(e){} return list; } + // SafePal is the wallet the team recommends: it sits first in the picker and carries the tag (Marty, 2026-09-20) + function isSafePal(w){ var n=String((w.info&&w.info.name)||'').toLowerCase(), r=String((w.info&&w.info.rdns)||'').toLowerCase(); return n.indexOf('safepal')>=0||r.indexOf('safepal')>=0||!!(w.provider&&w.provider.isSafePal); } + function preferred(list){ return list.slice().sort(function(a,b){ return (isSafePal(b)?1:0)-(isSafePal(a)?1:0); }); } function showPicker(list){ return new Promise(function(resolve){ @@ -47,12 +55,13 @@ var box=document.createElement('div'); box.style.cssText='background:#0b1e30;border:1px solid #27445e;border-radius:16px;padding:20px;max-width:360px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.55)'; var h=document.createElement('div'); h.style.cssText='font-weight:800;font-size:17px;color:#f7f9fc;margin-bottom:4px'; h.textContent='Choose your wallet'; box.appendChild(h); - var s=document.createElement('div'); s.style.cssText='color:#aebdca;font-size:13px;margin-bottom:14px'; s.textContent='Pick the wallet you want to connect with.'; box.appendChild(s); - list.forEach(function(w){ + var s=document.createElement('div'); s.style.cssText='color:#aebdca;font-size:13px;margin-bottom:14px'; s.textContent='SafePal is the wallet we recommend. Any of these works.'; box.appendChild(s); + preferred(list).forEach(function(w){ var b=document.createElement('button'); b.style.cssText='display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#132c43;border:1px solid #294a65;border-radius:11px;padding:12px 14px;margin-bottom:8px;cursor:pointer;color:#f7f9fc;font-weight:700;font-size:15px'; if(w.info.icon){ var img=document.createElement('img'); img.src=w.info.icon; img.alt=''; img.style.cssText='width:26px;height:26px;border-radius:6px;flex:none'; b.appendChild(img); } var sp=document.createElement('span'); sp.textContent=w.info.name||'Wallet'; b.appendChild(sp); + if(isSafePal(w)){ var tag=document.createElement('span'); tag.textContent='Recommended'; tag.style.cssText='margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#0b1e30;background:#f3be43;border-radius:999px;padding:3px 8px;flex:none'; b.appendChild(tag); } b.addEventListener('click',function(){ try{document.body.removeChild(ov);}catch(e){} resolve(w.provider); }); box.appendChild(b); }); @@ -77,7 +86,7 @@ }, 220); }); }, - list:function(){ return probeInjected(found.slice()); }, + list:function(){ return preferred(probeInjected(found.slice())); }, // Switch the wallet to Polygon (137) so a SIWE sign-in whose message says // "Chain ID: 137" matches the wallet's active chain — otherwise wallets // refuse the signature with a "chain ID does not match" error. Adds Polygon diff --git a/public/start.html b/public/start.html index 59a08d5..623f634 100644 --- a/public/start.html +++ b/public/start.html @@ -16,5 +16,5 @@
Risk reminder: participation involves cryptocurrency and smart-contract risk. No income is guaranteed. Use only funds you can afford to lose.
RM Circle Premium Team Build Roadmap — core strategy, step-by-step guide, premium levels, and duplication formula
This roadmap is the plan every member follows — tap to view full size.
- + diff --git a/public/suite-brand.html b/public/suite-brand.html index 641e28e..400a8d7 100644 --- a/public/suite-brand.html +++ b/public/suite-brand.html @@ -73,5 +73,5 @@

What branding does not change: the disclaimers at the foot of every page — independent team resource, no income guaranteed, cryptocurrency involves risk — are ours and stay exactly as they are. This is co-branding, not white-labelling; anyone reading your page can still see what they're looking at.

There's no logo upload on purpose: your monogram is generated from your brand name, so there's no image to moderate and nothing of yours hosted on our domain.

- + diff --git a/public/suite-copy.html b/public/suite-copy.html index 9b1ff42..f433c4b 100644 --- a/public/suite-copy.html +++ b/public/suite-copy.html @@ -59,5 +59,5 @@ - + diff --git a/public/suite-email.html b/public/suite-email.html index 44f44f6..1763df9 100644 --- a/public/suite-email.html +++ b/public/suite-email.html @@ -59,5 +59,5 @@ - + diff --git a/public/suite-founder.html b/public/suite-founder.html index caee48f..bd42bd3 100644 --- a/public/suite-founder.html +++ b/public/suite-founder.html @@ -74,5 +74,5 @@ curl -H "Authorization: Bearer YOUR_KEY" \ - + diff --git a/public/suite-funnel.html b/public/suite-funnel.html index d552154..0b61ccd 100644 --- a/public/suite-funnel.html +++ b/public/suite-funnel.html @@ -73,5 +73,5 @@ - + diff --git a/public/suite-grants.html b/public/suite-grants.html index 6bc942b..bccd8b3 100644 --- a/public/suite-grants.html +++ b/public/suite-grants.html @@ -65,5 +65,5 @@ - + diff --git a/public/suite-intel.html b/public/suite-intel.html index 732d0f2..cc3e17b 100644 --- a/public/suite-intel.html +++ b/public/suite-intel.html @@ -47,5 +47,5 @@ - + diff --git a/public/suite-leader.html b/public/suite-leader.html index fdedbd1..b1367bf 100644 --- a/public/suite-leader.html +++ b/public/suite-leader.html @@ -53,5 +53,5 @@ - + diff --git a/public/suite-page.html b/public/suite-page.html index ffce348..02c8783 100644 --- a/public/suite-page.html +++ b/public/suite-page.html @@ -86,5 +86,5 @@ - + diff --git a/public/suite-split.html b/public/suite-split.html index b77d11d..8bd5803 100644 --- a/public/suite-split.html +++ b/public/suite-split.html @@ -84,5 +84,5 @@ - + diff --git a/public/suite-traffic.html b/public/suite-traffic.html index 8b11317..75d5522 100644 --- a/public/suite-traffic.html +++ b/public/suite-traffic.html @@ -99,5 +99,5 @@ - + diff --git a/public/suite-video.html b/public/suite-video.html index 86f56bc..d5a7680 100644 --- a/public/suite-video.html +++ b/public/suite-video.html @@ -57,5 +57,5 @@ - + diff --git a/public/suite-voice.html b/public/suite-voice.html index 3cb80bd..359c442 100644 --- a/public/suite-voice.html +++ b/public/suite-voice.html @@ -43,5 +43,5 @@ - + diff --git a/public/suite.html b/public/suite.html index 4374726..cbd6406 100644 --- a/public/suite.html +++ b/public/suite.html @@ -48,8 +48,8 @@
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. Level costs, straight from the contract →
- - + + - + diff --git a/public/training.html b/public/training.html index 6eb6ac9..910cacd 100644 --- a/public/training.html +++ b/public/training.html @@ -108,5 +108,5 @@ - + diff --git a/public/wallet-check.html b/public/wallet-check.html index ad7a672..da9ae73 100644 --- a/public/wallet-check.html +++ b/public/wallet-check.html @@ -24,6 +24,6 @@
collecting…
- + diff --git a/public/weekly-rhythm.html b/public/weekly-rhythm.html index 310bec4..7da8726 100644 --- a/public/weekly-rhythm.html +++ b/public/weekly-rhythm.html @@ -97,5 +97,5 @@ - + diff --git a/server.js b/server.js index ce460d7..d45ad72 100644 --- a/server.js +++ b/server.js @@ -87,6 +87,7 @@ FACTS: - BUYING POL WITH A CARD (for people brand new to crypto): the site links to MoonPay (moonpay.com/buy/pol) on the training page, the start page, and automatically on the join page when a connected wallet's balance is short. Guidance to give: choose POL on the POLYGON network, send it to YOUR OWN wallet address, buy about entry + gas (~385 POL). When explaining gas, use the car analogy: just like a car needs fuel to get anywhere, every blockchain transaction burns a tiny bit of POL to move — keep a little in the tank beyond the entry, because a wallet with an empty tank cannot make the trip. MoonPay is an independent company (merchant of record) — it handles ID verification and charges its own card fee (~4.5%); this site never touches or holds anyone's money. First purchases can take a few minutes to arrive. - LANGUAGE: always reply in the language the member writes in — translate program terms naturally and keep level names (Scintilla, Ascensus, ...) as-is. Site pages have a floating 🌐 Translate button (bottom-left) that machine-translates any page and remembers the choice. - COACHING DOCTRINE (teach forward): whenever you give a member guidance about helping their team, frame it so they learn to run the same play for their own two — e.g. "do X, then show your two how to spot this on THEIR dashboard's Coach Your Team panel." The goal is never just fixing one member's next step; it is teaching people how to teach. Every member's dashboard has the same Coach Your Team panel, so the play duplicates at every depth. +- WALLETS: SafePal is the wallet we recommend (install only from safepal.com or the official app store); MetaMask and Trust also work, and the site's Connect picker lists SafePal first with a Recommended tag. Never share a recovery phrase with anyone. - SPENDING/CASH-OUT (the "now how do I use it?" question): guide at /training#spending, and an 8-min video of a REAL cash-out done on screen at /training#egift-video (recommend it — seeing it done answers most doubts). Easiest path: e-gift cards — send POL to CWallet (cwallet.com), swap to a USD token internally (near-free swaps), buy gift cards for everyday brands; eGifter (egifter.com) accepts crypto directly. Straight cash: regulated exchange in their country (send → sell → bank withdrawal, KYC applies). Or leave catches in the wallet to fund the next level (Lesson 8 doctrine). ALWAYS add: independent custodial services — only move what you're about to spend; region availability and fees vary; possible tax implications — keep records; never financial advice. - Telegram group for live team help: ${c.telegramUrl || 'https://t.me/cryptoteambuild'} - PUBLIC PAYMENT PROOF CHANNEL: https://t.me/rmcircleproof (RM Circle Proof). Every on-chain payout is announced there in real time with a Polygonscan link. Linked from the Live payment proof section on the home and join pages. Send people there for payment proof, not to the team help group.