Directory / Core Engine

BTC/SATS Logic Model

เจาะลึกกลไกการคำนวณราคาและแปลงค่าเงิน (Fiat-to-Crypto Bridge) หัวใจสำคัญที่ทำให้ Cashless Thailand รองรับการชำระเงินผ่าน Bitcoin ได้อย่างแม่นยำ

Logic & Architecture

4 Core Systems

1. Price Oracle (CoinGecko API)

ระบบดึงราคาบิตคอยน์แบบ Real-time

CoinGecko V3 Public API

Fetch Mechanism

ดึงราคา BTC/THB และ BTC/USD ทุกๆ 60 วินาที เพื่อให้ราคาอัปเดตเสมอแต่ไม่ติด Rate Limit

Fallback Rate

หาก API ล่ม จะใช้ราคาล่าสุดที่ Cached ไว้ใน LocalStorage เพื่อป้องกันหน้าเว็บพัง

Global Store

เก็บค่าราคาไว้ใน Nanostores ($btcPrice) เพื่อให้ทุก Component (Cart, Checkout) เรียกใช้ได้ทันที

Live Ticker Preview

2. Fiat-to-Sats Converter

กลไกแปลงเงินบาทเป็นหน่วย SATS

Utils Helper Function

Conversion Logic

สูตร: (ราคาบาท / ราคา BTC) * 100,000,000 = จำนวน Sats

Display Formatting

จัดรูปแบบตัวเลขให้มี Commas (เช่น 25,000 sats) เพื่อให้อ่านง่าย

Rounding Mode

ปัดเศษขึ้นเสมอ (Math.ceil) เพื่อให้มั่นใจว่าร้านค้าจะไม่ขาดทุนจากจุดทศนิยม

Format Visualization
Thai Baht
฿ 1,000.00
Bitcoin (Sats)
~ 29,500 sats
* อัตราแลกเปลี่ยนจริงขึ้นอยู่กับราคาตลาด ณ ขณะนั้น

3. Lightning Network Invoice

ระบบสร้าง QRCode สำหรับจ่ายเงิน

LNURL / BTCPay Server (Mock)

QR Generation

สร้าง QR Code ที่รองรับมาตรฐาน BIP-21 (bitcoin:...?amount=...&lightning=...)

Payment Monitoring

Polling สถานะการจ่ายเงินทุก 3 วินาที (WebSocket/REST) จนกว่าจะได้รับสถานะ 'Settled'

Slippage Protection

ล็อคอัตราแลกเปลี่ยน (Lock Rate) เป็นเวลา 15 นาที เพื่อป้องกันความผันผวนระหว่างรอจ่าย

Invoice Mockup
Mock QR
lnbc100u1......... (Lightning Invoice String)

4. Web3 / Wallet Bridge

การเชื่อมต่อกับกระเป๋าเงินผู้ใช้

Window.webln / Metamask (Future)

WebLN Standard

รองรับ Alby Browser Extension และกระเป๋าที่รองรับ WebLN เพื่อกดจ่ายในคลิกเดียว

Deep Linking

บนมือถือจะใช้ Link 'lightning:...' เพื่อเปิดแอป Wallet (Wallet of Satoshi, Phoenix) โดยตรง

Signed Messages

ใช้ลายเซ็นดิจิทัล (Sign Message) เพื่อยืนยันตัวตนในบางกรณีโดยไม่ต้องใช้ Password

# System Dependencies

External APIs

  • Price Feed CoinGecko V3
  • Payment Node BTCPay Server (Self-Hosted)

Libraries

  • QR Code qrcode.react
  • State Mgmt nanostores