Files
archy/.cursor/rules/10-bitcoin-only.mdc
T
Dorian c28e6dd811 feat: initialize AIUI monorepo with project rules and core types
Foundation for the next-generation AI content surface UI:
- 16 Cursor rules files covering philosophy, Vue conventions, design system,
  content surfaces, plugin system, AI integration, renderers, security,
  Bitcoin-only policy, dev/prod modes, accessibility, performance, animation,
  mobile UX, and git workflow
- pnpm workspaces + Turborepo monorepo (@aiui/core, @aiui/app)
- Vue 3 + Vite + TypeScript + Tailwind CSS 4
- Core type system: plugins, renderers, messages, content blocks
- Plugin registry with renderer registration
- 50 mock film fixtures with search/filter utilities
- App shell with chat page layout
- Environment config templates

Made-with: Cursor
2026-03-02 14:15:39 +00:00

73 lines
2.6 KiB
Plaintext

---
description: Bitcoin-only payment and monetary policy - on-chain, Lightning, ecash
globs: "**/*"
alwaysApply: true
---
# Bitcoin Only
## Core Rule
Bitcoin is the only monetary unit in AIUI. This applies everywhere — UI labels, data models, API responses, documentation, and conversation context.
## Supported Payment Protocols
- **On-chain Bitcoin**: BIP21 URI scheme (`bitcoin:bc1q...?amount=0.001`)
- **Lightning Network**: BOLT11 invoices, LNURL-pay, LNURL-withdraw, keysend
- **Cashu ecash**: Cashu tokens, mint interactions (`cashu:` URI, `web+cashu:`)
- **Fedimint/Fedi**: Federation ecash (`fedi:` URI)
- **Nostr Zaps**: NIP-57 Lightning zaps (social tipping)
## AIUI is NEVER a Wallet
### Never Do
- Store private keys or seed phrases
- Sign Bitcoin transactions
- Build or broadcast transactions
- Track wallet balances
- Display transaction history
- Create send/receive screens
- Implement payment processing logic
- Hold funds in custody
### Always Do
- Construct deep-link URIs and hand off to external wallet apps
- Detect installed wallet apps (via URI scheme probing or Tauri app detection)
- Let users configure preferred wallets in settings
- Display payment requests as QR codes with "Open in Wallet" buttons
- Show invoice/address details (amount, memo, expiry) as read-only information
## Wallet Deep-Linking
```typescript
// Construct URI, open external wallet — that's it
const uri = `lightning:${bolt11Invoice}`
window.open(uri) // or Tauri shell.open(uri)
```
Supported wallet URI schemes:
- `bitcoin:` — BIP21 (any on-chain wallet)
- `lightning:` — BOLT11 (any Lightning wallet)
- `cashu:` — Cashu tokens
- `fedi:` — Fedimint
- Wallet-specific: `phoenix://`, `zeus://`, `mutiny://`, `alby://`
## Denomination
- Primary unit: **sats** (1 BTC = 100,000,000 sats)
- Display: `1,234 sats` or `₿0.00001234`
- User preference: sats or BTC (configurable in settings)
- AI cost tracking: show token costs in sats
## Prohibited
- No fiat currencies (USD, EUR, etc.) — not in UI, not in code, not in variable names
- No altcoins or tokens
- No stablecoins (USDT, USDC, etc.)
- No fiat-denominated pricing
- No payment processor integrations (Stripe, PayPal, etc.)
- No KYC/AML flows
## Renderer Components
- `LightningInvoiceRenderer` — BOLT11 QR + amount + memo + "Open in Wallet"
- `BitcoinAddressRenderer` — BIP21 QR + "Open in Wallet"
- `CashuTokenRenderer` — ecash token + mint info + "Redeem in Wallet"
- `FedimintRenderer` — federation ecash + "Open in Fedi"
- `PaymentRequestRenderer` — unified card with payment method options
- `ZapRenderer` — Nostr zap display (NIP-57)