New Financial World Logo The New Financial World LLC

Navigate the Future

Learn. Adapt. Prosper.

Crypto Strategy & Literacy

Who we are

Practical consulting and plain-English education, plus the official book.

Disclaimer: I am not a financial advisor. The goal is to demystify crypto and blockchain technology through education and clear guidance.

Ready to get started?

Tell us about your goals. We will reply with a quick assessment and next steps.

const CHECKOUT_LINKS = { eth: "REPLACE_WITH_ETH_CHECKOUT_URL", sol: "REPLACE_WITH_SOL_CHECKOUT_URL", btc: "REPLACE_WITH_BTC_CHECKOUT_URL", usdc: "REPLACE_WITH_USDC_CHECKOUT_URL", card: "REPLACE_WITH_STRIPE_OR_CARD_CHECKOUT_URL", paypal: "REPLACE_WITH_PAYPAL_CHECKOUT_URL" }; const SOL_ADDRESS = "BYPbKQrT3LhU7rVGPx4W5iGNGo6mtpAxgyZprFQ9Zhfo"; const ETH_ADDRESS = "0x1c26f78543AAF80FF313AFa8d40ac1D95bc8aB74"; const BTC_ADDRESS = "bc1qw42j9z3dwvu0dcsz7rlwwx7qlxs9kecu72hzwv"; const PRICES = { ebook: 14.99, paperback: 25.99 }; const SIGNED_FEE = 40.00; const qtyEl = document.getElementById('qty'); const totalEl = document.getElementById('total'); const perUnitEl = document.getElementById('perUnit'); const formatEls = Array.from(document.querySelectorAll('input[name="format"]')); const signedEl = document.getElementById('signed'); const getFormat = () => (formatEls.find(el => el.checked) || {value: 'ebook'}).value; const basePrice = () => PRICES[getFormat()]; const isSignedAllowed = () => getFormat() === 'paperback'; const extraSigned = () => (isSignedAllowed() && signedEl.checked) ? SIGNED_FEE : 0; const unitPrice = () => basePrice() + extraSigned(); const updateSignedState = () => { const allowed = isSignedAllowed(); signedEl.disabled = !allowed; if (!allowed) signedEl.checked = false; }; const updateTotal = () => { updateSignedState(); const qty = Math.max(1, parseInt(qtyEl.value || '1', 10)); const price = unitPrice(); const total = (price * qty).toFixed(2); totalEl.textContent = `$${total}`; perUnitEl.textContent = `($${price.toFixed(2)} per unit)`; }; qtyEl.addEventListener('input', updateTotal); signedEl.addEventListener('change', updateTotal); formatEls.forEach(el => el.addEventListener('change', updateTotal)); updateTotal(); document.querySelectorAll('button[data-coin]').forEach(btn => { btn.addEventListener('click', () => { const coin = btn.getAttribute('data-coin'); const qty = Math.max(1, parseInt(qtyEl.value || '1', 10)); const format = getFormat(); const signed = (format === 'paperback' && signedEl.checked) ? 'yes' : 'no'; const amount = (unitPrice() * qty).toFixed(2); const base = CHECKOUT_LINKS[coin]; if (coin === 'sol' && (!base || base.startsWith('REPLACE_'))) { const label = encodeURIComponent('New Financial World'); const message = encodeURIComponent(`Order: ${format}${signed==='yes'?' (signed)':''} x${qty} — $${amount} USD`); const solUri = `solana:${SOL_ADDRESS}?label=${label}&message=${message}`; const modal = document.getElementById('solModal'); document.getElementById('solAddr').textContent = SOL_ADDRESS; document.getElementById('openSolLink').href = solUri; document.getElementById('solQR').src = `https://api.qrserver.com/v1/create-qr-code/?size=360x360&data=${encodeURIComponent(solUri)}`; modal.classList.remove('hidden'); return; } if (coin === 'eth' && (!base || base.startsWith('REPLACE_'))) { const ethUri = `ethereum:${ETH_ADDRESS}`; const modal = document.getElementById('ethModal'); document.getElementById('ethAddr').textContent = ETH_ADDRESS; document.getElementById('openEthLink').href = ethUri; document.getElementById('ethQR').src = `https://api.qrserver.com/v1/create-qr-code/?size=360x360&data=${encodeURIComponent(ethUri)}`; modal.classList.remove('hidden'); return; } if (coin === 'btc' && (!base || base.startsWith('REPLACE_'))) { const btcUri = `bitcoin:${BTC_ADDRESS}`; const modal = document.getElementById('btcModal'); document.getElementById('btcAddr').textContent = BTC_ADDRESS; document.getElementById('openBtcLink').href = btcUri; document.getElementById('btcQR').src = `https://api.qrserver.com/v1/create-qr-code/?size=360x360&data=${encodeURIComponent(btcUri)}`; modal.classList.remove('hidden'); return; } if (coin === 'usdc' && (!base || base.startsWith('REPLACE_'))) { const modal = document.getElementById('usdcModal'); let chain = 'eth'; const applyChain = (c) => { chain = c; const addr = c === 'eth' ? ETH_ADDRESS : SOL_ADDRESS; document.getElementById('usdcAddr').textContent = addr; document.getElementById('openUsdcLink').href = addr; document.getElementById('usdcQR').src = `https://api.qrserver.com/v1/create-qr-code/?size=360x360&data=${encodeURIComponent(addr)}`; document.querySelector('[data-usdc-chain="eth"]').className = c==='eth' ? 'rounded-lg px-3 py-1.5 text-sm bg-slate-900 text-white' : 'rounded-lg px-3 py-1.5 text-sm bg-slate-100 hover:bg-slate-200'; document.querySelector('[data-usdc-chain="sol"]').className = c==='sol' ? 'rounded-lg px-3 py-1.5 text-sm bg-slate-900 text-white' : 'rounded-lg px-3 py-1.5 text-sm bg-slate-100 hover:bg-slate-200'; }; applyChain('eth'); modal.classList.remove('hidden'); modal.addEventListener('click', (e) => { const t = e.target; if (t.matches('[data-usdc-chain]')) applyChain(t.getAttribute('data-usdc-chain')); }, { once: true }); return; } if (!base || base.startsWith('REPLACE_')) { alert('Checkout link not configured yet. Please add your gateway URLs in the script.'); return; } const url = new URL(base); if (!url.searchParams.has('amount')) url.searchParams.set('amount', amount); if (!url.searchParams.has('currency')) url.searchParams.set('currency', 'USD'); url.searchParams.set('item_name', 'Introduction to The New Financial World'); url.searchParams.set('variant', format); url.searchParams.set('signed', signed); url.searchParams.set('quantity', String(qty)); window.location.href = url.toString(); }); }); document.addEventListener('click', (e) => { const t = e.target; if (t.matches('[data-close="sol"]')) document.getElementById('solModal').classList.add('hidden'); if (t.matches('[data-close="eth"]')) document.getElementById('ethModal').classList.add('hidden'); if (t.matches('[data-close="btc"]')) document.getElementById('btcModal').classList.add('hidden'); if (t.matches('[data-close="usdc"]')) document.getElementById('usdcModal').classList.add('hidden'); }); document.getElementById('copySol').addEventListener('click', async () => { try { await navigator.clipboard.writeText(SOL_ADDRESS); const btn = document.getElementById('copySol'); const prev = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = prev, 1200); } catch(err) { alert('Copy failed. Please copy the address manually.'); } }); document.getElementById('copyEth').addEventListener('click', async () => { try { await navigator.clipboard.writeText(ETH_ADDRESS); const btn = document.getElementById('copyEth'); const prev = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = prev, 1200); } catch(err) { alert('Copy failed. Please copy the address manually.'); } }); document.getElementById('copyBtc').addEventListener('click', async () => { try { await navigator.clipboard.writeText(BTC_ADDRESS); const btn = document.getElementById('copyBtc'); const prev = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = prev, 1200); } catch(err) { alert('Copy failed. Please copy the address manually.'); } }); document.getElementById('copyUsdc').addEventListener('click', async () => { try { const addr = document.getElementById('usdcAddr').textContent.trim(); await navigator.clipboard.writeText(addr); const btn = document.getElementById('copyUsdc'); const prev = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = prev, 1200); } catch(err) { alert('Copy failed. Please copy the address manually.'); } }); document.getElementById('year').textContent = new Date().getFullYear();