MyTXO
menu_book

MyTXO Documentation

Technical reference for the MyTXO platform and YOUTXO Protocol.

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)

Domain

mytxo.space

Visit the platform

Brand Pillars

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.

0-3

Card Range

Creator Card — the user's Bitcoin business card (master assembler, identity, HTML, CSS)

4-19

Feature Range

Profile structure, widgets, feature cards — the presentation/logic layer

20+

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

SatNameContent-TypeDescription
sat0Master Assemblertext/htmlPermanent HTML loader. Fetches sat1-3 for card rendering. Never updated.
sat1Core Identityapplication/jsonUsername, displayName, pfp, bio, links, btcAddress. Shared across all features. Updatable.
sat2HTML Structuretext/htmlCanonical Creator Card v1.0 template. LOCKED — same for all cards.
sat3CSS Stylestext/cssVisual styling. Updatable. Editions: default, og-gold, custom.

Feature Range (sat4-19) — Inscribed when features activate

SatNamePhaseDescription
sat4Profile AssemblerPhase 2Full profile page HTML that orchestrates all widgets.
sat5Profile CSSPhase 2Theme/styles for the full profile.
sat6Feature RegistryPhase 2JSON manifest listing active features.
sat7Friends / Top 8MVPDisplay logic for the Top 8 friends widget.
sat8Blurbs Feature CardMVPDisplay logic for rendering blurbs. Fetches data from sat20.
sat9Blogs Feature CardMVPDisplay logic for rendering blogs. Fetches data from sat21.
sat10-19ReservedFutureMusic player, guestbook, gallery, etc.

Content Range (sat20+) — Reinscribed with each new piece of content

SatNameContent-TypeDescription
sat20Blurbs Contentapplication/jsonLatest blurb JSON. Reinscribed per blurb. Linked list via 'previous' field.
sat21Blogs Contentapplication/jsonLatest blog JSON (title + markdown). Reinscribed per blog.
sat22+ReservedFuture content types (media, etc.)

Inscription Costs (Estimated)

Creator Card (sat0-3)~$2.50-5.00
CSS Update (sat3)~$0.75-1.50
Identity Update (sat1)~$0.50-1.00
Activate Blurbs (sat8 + sat20)~$1.50-3.00
Activate Blogs (sat9 + sat21)~$2.00-4.00
New Blurb (sat20 reinscribe)~$0.50-1.00
New Blog (sat21 reinscribe)~$1.00-3.00

architectureArchitecture

Tech Stack

FrontendNext.js 16 (App Router) + TypeScript
StylingTailwind CSS 4 (custom MyTXO theme)
IconsMaterial Symbols (Google variable icon set)
StateZustand 5
AuthX OAuth 2.0 + WebAuthn Passkeys
DatabasePostgreSQL 17 (via Prisma 6 ORM)
Cache/SessionsRedis 7
Rich TextTiptap 2
ChartsRecharts
ContainersDocker Compose (3 services)
Reverse ProxyCaddy (auto-HTTPS)
Bitcoin APIsmempool.space (UTXOs, fees, broadcast)

Container Layout

docker-compose.yml (simplified)
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

  1. User clicks "Sign in with X"
  2. Redirect to X OAuth consent screen (PKCE + state param)
  3. X redirects back with auth code
  4. Backend exchanges code for access + refresh tokens
  5. Fetch user profile (username, bio, avatar)
  6. Existing user: log in, set session. New user: redirect to signup wizard
  7. 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.

  1. User fills out form (Creator Card / Blurb / Blog)
  2. Frontend builds inscription payload (JSON, HTML, or CSS)
  3. Frontend requests fee estimation from mempool.space
  4. Frontend constructs PSBT with appropriate UTXOs
  5. PSBT sent to wallet for signing (extension or passkey re-derive)
  6. Broadcast signed tx via mempool.space API
  7. 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/loginInitiate X OAuth flow (PKCE redirect)
GET/api/auth/x/callbackX OAuth callback (token exchange, session)
POST/api/auth/x/completeComplete signup (username, profile)
GET/api/auth/meCurrent authenticated user info
POST/api/auth/logoutDestroy session

Users

GET/api/users/check?username=xUsername availability check
PUT/api/users/meUpdate own profile (displayName, bio, avatar)

Feed

GET/api/feed?type=&cursor=&limit=Paginated feed (cursor-based, type filter)
POST/api/feedCreate feed item (after inscription/publish)

Content

GET/api/blurbs?username=xUser's blurbs (paginated)
POST/api/blurbsCreate blurb (draft or publish)
GET/api/blogs?username=xUser's blogs (paginated)
POST/api/blogsCreate blog (draft or publish)

Social

GET/api/friends?username=xUser's Top 8 friends
PUT/api/friendsUpdate own Top 8
GET/api/features?username=xUser's activated features
POST/api/featuresActivate a feature (blurbs, blogs, friends)

Inscriptions

POST/api/inscriptions/preparePrepare inscription payload + cost estimate
POST/api/inscriptions/confirmRecord completed inscription in DB

Wallet

GET/api/wallet/feesCurrent fee estimates (proxied from mempool.space)
POST/api/wallet/broadcastBroadcast signed transaction

Presale

GET/api/presale/currentCurrent presale round info + all 8 rounds

token$MYTXO Token

Total Supply

21,000,000,000

Network

Bitcoin (BRC-20)

Platform

Subfrost

Distribution

Micro-Presales10%2.1B tokens
Dutch Auction30%6.3B tokens
Liquidity Pool30%6.3B tokens
Community15%3.15B tokens
Development10%2.1B tokens
Team5%1.05B tokens

Staking & Fee Discounts

StakedFee DiscountVoting Power
100,000 $MYTXO10% off2x
500,000 $MYTXO50% off2x
1,000,000 $MYTXO100% 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

  1. ZERO border radius on structural elements (cards, buttons, inputs)
  2. Visible 1-2px solid borders on cards, not box-shadows
  3. Deep blue sticky header with subtle glass effect
  4. Light grey page background (#D4D4D4)
  5. White card backgrounds with solid borders
  6. Glass effects ONLY on header, modals, tooltips, toasts
  7. Material Symbols for all icons — no emojis anywhere
  8. Square buttons with visible borders and bold text
  9. Gold accents for Bitcoin/premium elements
  10. Dense information layout, personality over empty minimalism
  11. Retro hover effects: color shifts, underlines (not subtle opacity fades)
  12. Share Tech Mono for display text, Verdana for body text