Wallets guide: website, App Store, Google Play and extension links per wallet; MoonPay button

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-09-11 08:47:30 -05:00
parent fe1edd945c
commit 8b16d52ca6
2 changed files with 23 additions and 1 deletions
+14
View File
@@ -6,4 +6,18 @@
const signedIn = !!(me && me.signedIn && me.email);
document.getElementById('gate').style.display = signedIn ? 'none' : 'block';
document.getElementById('body').style.display = signedIn ? 'block' : 'none';
if (!signedIn) return;
// MoonPay: same signed link the Buy pane uses, prefilled with this member's wallet when one is linked
const mb = document.getElementById('wlMoonpay'), note = document.getElementById('wlMoonpayNote');
if (note && !me.address) note.textContent = 'Link your wallet first (Wallet tab) and MoonPay opens with your address already filled in. Without it you paste the address yourself.';
if (mb) mb.addEventListener('click', async () => {
let pol = 30;
try { const { products } = await (await fetch('/api/catalog')).json(); const p20 = (products || []).find(p => p.priceCents === 2000); if (p20 && p20.costWei) pol = Math.max(30, Math.ceil(Number(p20.costWei) / 1e18) + 3); } catch (e) {}
try {
const r = await (await fetch('/api/moonpay-url?pol=' + pol + (me.address ? '&address=' + encodeURIComponent(me.address) : ''))).json();
if (!r.url) throw new Error('no url');
window.open(r.url, '_blank', 'noopener');
IAP.status(r.signed ? 'MoonPay opened with your wallet address pre-filled. Choose the amount, pay, and the POL lands in your wallet.' : 'MoonPay opened. Choose POL on the Polygon network and paste your own wallet address as the destination.', 'ok');
} catch (e) { IAP.status('Could not open MoonPay. Try again in a minute.', 'bad'); }
});
})();
+9 -1
View File
@@ -23,6 +23,8 @@
.steps li{counter-increment:s;position:relative;padding:0 0 16px 46px;font-size:15px;line-height:1.5}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:rgba(67,232,195,.12);border:1px solid rgba(67,232,195,.45);color:var(--mint);font-family:var(--disp);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px}
.steps li b{color:var(--ink)}
.wl-links{margin:10px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.wl-links .btn{margin-top:0}
.note{background:rgba(4,8,7,.45);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-size:14px;color:var(--muted);margin:0 0 12px}
.note b{color:var(--ink)}
h2{margin:34px 0 10px;font-size:26px}
@@ -53,22 +55,27 @@
<div class="rec">
<h3>MetaMask <span class="tag">recommended</span></h3>
<p>Browser extension on desktop, app on phone. The one to use for Qualified Start, because it lets you add extra accounts under the same wallet, one per position. Connects directly on desktop and through WalletConnect on mobile.</p>
<p class="wl-links"><a class="btn small sec" href="https://metamask.io/download" target="_blank" rel="noopener">Website</a> <a class="btn small sec" href="https://apps.apple.com/app/id1438144202" target="_blank" rel="noopener">App Store</a> <a class="btn small sec" href="https://play.google.com/store/apps/details?id=io.metamask" target="_blank" rel="noopener">Google Play</a> <a class="btn small sec" href="https://metamask.io/download" target="_blank" rel="noopener">Browser extension</a></p>
</div>
<div>
<h3>Phantom</h3>
<p>Clean phone and desktop apps, Polygon supported. No purchase-size block. Good choice if you are new and only ever plan to run one position.</p>
<p class="wl-links"><a class="btn small sec" href="https://phantom.com/download" target="_blank" rel="noopener">Website</a> <a class="btn small sec" href="https://apps.apple.com/app/id1598432977" target="_blank" rel="noopener">App Store</a> <a class="btn small sec" href="https://play.google.com/store/apps/details?id=app.phantom" target="_blank" rel="noopener">Google Play</a> <a class="btn small sec" href="https://phantom.com/download" target="_blank" rel="noopener">Browser extension</a></p>
</div>
<div>
<h3>SafePal</h3>
<p>Phone app with a built-in card purchase option for POL. Connects through WalletConnect. Works well for members who do everything on a phone.</p>
<p class="wl-links"><a class="btn small sec" href="https://www.safepal.com/download" target="_blank" rel="noopener">Website</a> <a class="btn small sec" href="https://apps.apple.com/app/id1548297139" target="_blank" rel="noopener">App Store</a> <a class="btn small sec" href="https://play.google.com/store/apps/details?id=io.safepal.wallet" target="_blank" rel="noopener">Google Play</a></p>
</div>
<div>
<h3>Coinbase Wallet</h3>
<p>The self-custody wallet from Coinbase, not the exchange account. Handy if you already buy crypto on Coinbase: buy POL there and send it to this wallet on the Polygon network.</p>
<p class="wl-links"><a class="btn small sec" href="https://www.coinbase.com/wallet" target="_blank" rel="noopener">Website</a> <a class="btn small sec" href="https://apps.apple.com/app/id1278383455" target="_blank" rel="noopener">App Store</a> <a class="btn small sec" href="https://play.google.com/store/apps/details?id=org.toshi" target="_blank" rel="noopener">Google Play</a> <a class="btn small sec" href="https://www.coinbase.com/wallet" target="_blank" rel="noopener">Browser extension</a></p>
</div>
<div style="grid-column:1/-1">
<h3>Trust Wallet <span class="tag warn">works, with one catch</span></h3>
<p>Trust Wallet blocks any purchase that would spend most of the POL in the wallet. You see a red "this transaction will drain your wallet" screen with no way past it. If you use Trust, keep about <b>twice the package cost</b> in POL, or buy a smaller package first. The extra POL stays yours. If a blocked attempt leaves the connection dead, open Wallet, tap Disconnect, then Connect again.</p>
<p class="wl-links"><a class="btn small sec" href="https://trustwallet.com/download" target="_blank" rel="noopener">Website</a> <a class="btn small sec" href="https://apps.apple.com/app/id1288339409" target="_blank" rel="noopener">App Store</a> <a class="btn small sec" href="https://play.google.com/store/apps/details?id=com.wallet.crypto.trustapp" target="_blank" rel="noopener">Google Play</a> <a class="btn small sec" href="https://trustwallet.com/download" target="_blank" rel="noopener">Browser extension</a></p>
</div>
</div>
@@ -84,6 +91,7 @@
<h2>Buy POL with a card through MoonPay</h2>
<p class="muted" style="margin:0 0 14px">MoonPay is a licensed card-to-crypto service. You pay them, they send POL to your wallet. InstantAdPay is never in the middle of that payment.</p>
<p style="margin:0 0 18px"><button class="btn" id="wlMoonpay" type="button">💳 Buy POL with a card (MoonPay)</button> <span class="small muted" id="wlMoonpayNote">Opens in a new tab with POL on Polygon selected.</span></p>
<ol class="steps">
<li><b>Have your wallet connected first</b> (Wallet tab). Then open <b>Buy packages</b> and look at the live POL price for the package you want. Plan to buy that amount <b>plus 2 or 3 POL</b> for network fees. Trust Wallet users: buy about double.</li>
<li><b>Tap "Buy POL with a card"</b> under the packages. MoonPay opens in a new tab with <b>POL on Polygon</b> selected and <b>your own wallet address filled in</b>. If for any reason it is not filled in, choose POL (Polygon) yourself and paste your address from step 5 above.</li>
@@ -114,6 +122,6 @@
</footer>
</div>
<script src="/assets/common.js?v=20260910c"></script>
<script src="/assets/wallets.js?v=20260910a"></script>
<script src="/assets/wallets.js?v=20260911b"></script>
</body>
</html>