"ticker": "rc77", "quantity": 15, "btcPricePerToken": "0.00009934", "totalBTC": "0.0014901", "paymentAddress": "bc1q2ul0yunxnchlzwuu6l9l8k6rt0685wllzgfdmk" } const { tokens, btcPriceUSD } = require('./mintWrapper.config'); function getBtcPricePerToken(ticker) { const token = tokens.find(t => t.ticker === ticker.toLowerCase()); return token ? token.priceUSD / btcPriceUSD : null; } function calculateTotalBTC(ticker, quantity) { const perTokenBTC = getBtcPricePerToken(ticker); if (!perTokenBTC) throw new Error("Invalid token"); return (perTokenBTC * quantity).toFixed(8); } module.exports = { btcPriceUSD: 108480.00, vaultAddress: "bc1q2ul0yunxnchlzwuu6l9l8k6rt0685wllzgfdmk", tokens: [ { ticker: "rc77", priceUSD: 10.78 }, { ticker: "rr77", priceUSD: 5.00 }, { ticker: "rcai", priceUSD: 277.00 }, { ticker: "vvalt", priceUSD: 5.38 }, { ticker: "btbbz", priceUSD: 2777.00 }, { ticker: "a00i", priceUSD: 0.0044 }, { ticker: "ai77", priceUSD: 108.26 }, { ticker: "bibb", priceUSD: 3.00 }, { ticker: "diph", priceUSD: 2.22 }, { ticker: "rcxo", priceUSD: 627.05 }, { ticker: "rcci", priceUSD: 7184.00 } ] }; async function checkIncomingPayments() { const response = await fetch("https://blockstream.info/api/address/" + vaultAddress + "/utxo"); const utxos = await response.json(); // Compare each UTXO against expected totals and track sender } ORDINALS_API_KEY=your_ordinalsbot_key_here VAULT_ADDRESS=bc1q2ul0yunxnchlzwuu6l9l8k6rt0685wllzgfdmk NETWORK=mainnet # Use 'Normal' style for fixed-width lines to avoid KeyError for 'Courier' doc = Document() doc.add_heading("BRC-20 Mint Wrapper System – Full Project Structure", level=1) doc.add_paragraph("This document outlines the full terminal-ready structure of the BRC-20 Mint Wrapper System, supporting 11 tokens with enforced BTC payment and auto-mint functionality.") # Project Structure doc.add_heading("šŸ“ Project Structure: brc20-mint-wrapper/", level=2) structure = [ "brc20-mint-wrapper/", "ā”œā”€ā”€ backend/", "│ ā”œā”€ā”€ index.js # Express server w/ BTC listener + mint API", "│ ā”œā”€ā”€ btcListener.js # Monitors BTC payments to vault", "│ ā”œā”€ā”€ inscriptionTrigger.js # Triggers OrdinalsBot/UniSat inscription", "│ ā”œā”€ā”€ mintQuote.js # Calculates BTC per token", "│ ā”œā”€ā”€ mintLogs.json # Stores mint logs (or use MongoDB)", "│ └── mintWrapper.config.js # Token pricing + vault address config", "ā”œā”€ā”€ frontend/", "│ ā”œā”€ā”€ public/", "│ │ └── index.html", "│ ā”œā”€ā”€ src/", "│ │ ā”œā”€ā”€ App.jsx # Main UI logic", "│ │ ā”œā”€ā”€ components/", "│ │ │ └── MintForm.jsx # Dropdown + BTC calc + QR display", "│ │ └── utils/", "│ │ └── api.js # Calls backend for BTC quote", "│ └── package.json # React project config", "ā”œā”€ā”€ README.md # Setup + Deployment Guide", "ā”œā”€ā”€ .env # OrdinalsBot API key, etc.", "ā”œā”€ā”€ package.json # Root config if using combined setup", "└── start.sh # Optional launch script" ] for line in structure: doc.add_paragraph(line, style='Normal') "1. Clone or unzip project", " cd brc20-mint-wrapper", "2. Install backend dependencies", " cd backend", " npm install", "3. Install frontend", " cd ../frontend", " npm install", "4. Run backend API", " cd ../backend", " node index.js", "5. Run frontend", " cd ../frontend" "ORDINALS_API_KEY= 7620924852: AAHxL1PU166EbwdZUZBNV OIicRAsc9xe00Iā€ "VAULT_ADDRESS=bc1q2ul0yunxnchlzwuu6l9l8k6rt0685wllzgfdmk", "NETWORK=mainnet" ] " + datetime.utcnow().strftime("%Y-%m-%d %H:%M UTC")) "/mnt/data/BRC20_Mint_Wrapper_Project_ā€