MyTXO Documentation
Technical reference for the MyTXO platform and YOUTXO Protocol.
Table of Contents
infoPlatform Overview
MyTXO is a Bitcoin-native social platform where users create permanent digital identities inscribed as Ordinals. The platform combines the personality and organic discovery of early social networks with the permanence and self-sovereignty of Bitcoin.
Platform
MyTXO
Consumer-facing social platform
Protocol
YOUTXO
Your Unspent Transaction Output — open Bitcoin identity protocol
Token
$MYTXO
BRC-20 governance/utility token (21B supply)
Brand Pillars
- verified "Your identity, your rules" — True ownership on Bitcoin
- star "A place for legends" — Permanence, legacy, creator-first
- history "The golden age returns" — Organic discovery, no algorithms
- public "Built on Bitcoin, accessible to everyone" — No crypto jargon
- diamond "One UTXO, infinite expression" — Responsible, efficient inscribing
schemaYOUTXO Protocol v2.0
The YOUTXO Protocol separates concerns across three sat ranges on a single UTXO. Each user gets one UTXO that serves as their entire on-chain identity, from their Creator Card to every piece of content they ever publish.
Card Range
Creator Card — the user's Bitcoin business card (master assembler, identity, HTML, CSS)
Feature Range
Profile structure, widgets, feature cards — the presentation/logic layer
Content Range
Raw content data (blurbs, blogs, media) — reinscribed with each new piece of content
Feature cards (sat4-19) are the presentation/logic layer — they contain display code that knows how to render content. Content sats (sat20+) are the data layer — raw JSON payloads reinscribed with each new piece of content. When a user posts a blurb, sat20 is reinscribed with the latest blurb JSON, which includes a previous pointer forming a linked list.
mapSat Allocation Map
Card Range (sat0-3) — Inscribed at account creation
| Sat | Name | Content-Type | Description |
|---|---|---|---|
| sat0 | Master Assembler | text/html | Permanent HTML loader. Fetches sat1-3 for card rendering. Never updated. |
| sat1 | Core Identity | application/json | Username, displayName, pfp, bio, links, btcAddress. Shared across all features. Updatable. |
| sat2 | HTML Structure | text/html | Canonical Creator Card v1.0 template. LOCKED — same for all cards. |
| sat3 | CSS Styles | text/css | Visual styling. Updatable. Editions: default, og-gold, custom. |
Feature Range (sat4-19) — Inscribed when features activate
| Sat | Name | Phase | Description |
|---|---|---|---|
| sat4 | Profile Assembler | Phase 2 | Full profile page HTML that orchestrates all widgets. |
| sat5 | Profile CSS | Phase 2 | Theme/styles for the full profile. |
| sat6 | Feature Registry | Phase 2 | JSON manifest listing active features. |
| sat7 | Friends / Top 8 | MVP | Display logic for the Top 8 friends widget. |
| sat8 | Blurbs Feature Card | MVP | Display logic for rendering blurbs. Fetches data from sat20. |
| sat9 | Blogs Feature Card | MVP | Display logic for rendering blogs. Fetches data from sat21. |
| sat10-19 | Reserved | Future | Music player, guestbook, gallery, etc. |
Content Range (sat20+) — Reinscribed with each new piece of content
| Sat | Name | Content-Type | Description |
|---|---|---|---|
| sat20 | Blurbs Content | application/json | Latest blurb JSON. Reinscribed per blurb. Linked list via 'previous' field. |
| sat21 | Blogs Content | application/json | Latest blog JSON (title + markdown). Reinscribed per blog. |
| sat22+ | Reserved | — | Future content types (media, etc.) |
Inscription Costs (Estimated)
architectureArchitecture
Tech Stack
Container Layout
services:
app: # mytxo-app — Next.js production build
# Exposed: 127.0.0.1:8086 -> :3000
db: # mytxo-db — PostgreSQL 17 Alpine
# Internal network only, persisted volume
redis: # mytxo-redis — Redis 7 Alpine
# Internal network only, persisted volume
# Host Caddy: mytxo.space -> localhost:8086 (auto-SSL)lockAuthentication
X OAuth 2.0 Flow
- User clicks "Sign in with X"
- Redirect to X OAuth consent screen (PKCE + state param)
- X redirects back with auth code
- Backend exchanges code for access + refresh tokens
- Fetch user profile (username, bio, avatar)
- Existing user: log in, set session. New user: redirect to signup wizard
- HTTP-only session cookie stored in Redis (7-day TTL)
Passkey Wallet Flow (Stubbed)
The passkey wallet follows the PassSeeds approach (reference: github.com/bitbragi/passseeds). WebAuthn PRF extension is used for seed derivation, with a fallback of hashing the P-256 public key from attestation. BIP86 taproot derivation paths produce four addresses: Creator ID, Inscriptions, Payments, and Signing.
account_balance_walletWallet System
Two wallet paths are supported via a clean adapter interface that will support Nexus SDK in the future.
Path A: Extension Wallets
Unisat adapter implemented. All signing in extension. User pays BTC fees directly.
Future: Nexus SDK for Unisat, Xverse, Leather
Path B: Passkey Wallet
WebAuthn + PassSeeds key derivation. Client-side signing, keys never leave device.
BIP86 taproot, 4 derivation paths
diamondInscription System
All signing happens in the user's wallet. The backend never holds private keys. PSBTs are constructed client-side, signed by the wallet, and broadcast via mempool.space API.
- User fills out form (Creator Card / Blurb / Blog)
- Frontend builds inscription payload (JSON, HTML, or CSS)
- Frontend requests fee estimation from mempool.space
- Frontend constructs PSBT with appropriate UTXOs
- PSBT sent to wallet for signing (extension or passkey re-derive)
- Broadcast signed tx via mempool.space API
- Backend records inscription in DB, feed updated
Structured Properties (tag 17)
Every inscription carries protocol metadata:
--trait "protocol" "youtxo"
--trait "component" "master|identity|card-html|card-css|feature-*|content-*"
--trait "version" "1.0" (identity)
--trait "locked" "true" (card-html)
--trait "edition" "default" (card-css)apiAPI Reference
Authentication
| GET | /api/auth/x/login | Initiate X OAuth flow (PKCE redirect) |
| GET | /api/auth/x/callback | X OAuth callback (token exchange, session) |
| POST | /api/auth/x/complete | Complete signup (username, profile) |
| GET | /api/auth/me | Current authenticated user info |
| POST | /api/auth/logout | Destroy session |
Users
| GET | /api/users/check?username=x | Username availability check |
| PUT | /api/users/me | Update own profile (displayName, bio, avatar) |
Feed
| GET | /api/feed?type=&cursor=&limit= | Paginated feed (cursor-based, type filter) |
| POST | /api/feed | Create feed item (after inscription/publish) |
Content
| GET | /api/blurbs?username=x | User's blurbs (paginated) |
| POST | /api/blurbs | Create blurb (draft or publish) |
| GET | /api/blogs?username=x | User's blogs (paginated) |
| POST | /api/blogs | Create blog (draft or publish) |
Social
| GET | /api/friends?username=x | User's Top 8 friends |
| PUT | /api/friends | Update own Top 8 |
| GET | /api/features?username=x | User's activated features |
| POST | /api/features | Activate a feature (blurbs, blogs, friends) |
Inscriptions
| POST | /api/inscriptions/prepare | Prepare inscription payload + cost estimate |
| POST | /api/inscriptions/confirm | Record completed inscription in DB |
Wallet
| GET | /api/wallet/fees | Current fee estimates (proxied from mempool.space) |
| POST | /api/wallet/broadcast | Broadcast signed transaction |
Presale
| GET | /api/presale/current | Current presale round info + all 8 rounds |
token$MYTXO Token
Total Supply
21,000,000,000
Network
Bitcoin (BRC-20)
Platform
Subfrost
Distribution
Staking & Fee Discounts
| Staked | Fee Discount | Voting Power |
|---|---|---|
| 100,000 $MYTXO | 10% off | 2x |
| 500,000 $MYTXO | 50% off | 2x |
| 1,000,000 $MYTXO | 100% off (zero fees) | 2x |
Maximum 21,000 users can achieve zero fees (1M tokens each = 21B supply).
paletteDesign System
"Retro MySpace Blue + Clean Modern iOS Glass" — Bold blues, square corners, visible structure, and personality layered with subtle iOS-style glassmorphism on key interactive elements.
Color Palette
Blue Darkest
#003366
Blue Dark
#004080
Blue Primary
#0066CC
Blue Light
#3399FF
Blue Lightest
#CCE5FF
BG Page
#D4D4D4
BG Card
#FFFFFF
BG Dark
#1A1A2E
Gold
#FFD700
Orange
#FF6600
Green
#00CC00
BTC Orange
#F7931A
Key Design Rules
- ZERO border radius on structural elements (cards, buttons, inputs)
- Visible 1-2px solid borders on cards, not box-shadows
- Deep blue sticky header with subtle glass effect
- Light grey page background (#D4D4D4)
- White card backgrounds with solid borders
- Glass effects ONLY on header, modals, tooltips, toasts
- Material Symbols for all icons — no emojis anywhere
- Square buttons with visible borders and bold text
- Gold accents for Bitcoin/premium elements
- Dense information layout, personality over empty minimalism
- Retro hover effects: color shifts, underlines (not subtle opacity fades)
- Share Tech Mono for display text, Verdana for body text