MyScribe Documentation
Technical reference for the MyScribe platform and YOUTXO Protocol.
Table of Contents
Platform Overview
MyScribe is a Bitcoin-native social platform where users create permanent digital identities inscribed as Ordinals. There was a golden age when your social identity and music discovery were inseparable. We're bringing it back — permanently, on Bitcoin.
Platform
MyScribe
Consumer-facing social platform
Protocol
YOUTXO
Your Unspent Transaction Output — open Bitcoin identity protocol
Token
$SCRIBE
OP_20 governance/utility token on OP_NET (Bitcoin L1)
Brand Pillars
- "Your identity, your rules" — True ownership on Bitcoin
- badge "A place for legends" — Permanence, legacy, creator-first
- "The golden age returns" — Organic discovery, no algorithms
- "Built on Bitcoin, accessible to everyone" — No crypto jargon
- "One UTXO, infinite expression" — Responsible, efficient inscribing
OP_NET Smart Contracts
MyScribe runs on OP_NET, a Bitcoin Layer 1 smart contract platform using Tapscript-encoded calldata. Nine contracts power identity, social graph, content, curation, DeFi, and the NFT marketplace. All contracts are deployed on OP_NET testnet.
MyScribeFactory
User Registration
Deploys per-user MyScribeProfile contracts on registration. Resolves usernames to contract addresses and wallet addresses to profiles.
MyScribeProfile
Per-user OP721
Each user gets their own OP721 contract. Token #0 is the Creator Card; subsequent tokens are Blurbs and Guestbook entries, all minted as NFTs the user owns.
MyScribeSocial
Social graph
Manages bidirectional friendships, Top 8, Boosts (content endorsement with BTC/SCRIBE tips), background inscriptions, and Legend Score computation. Includes UpdatablePlugin for future upgrades.
ScribeToken
OP_20 Reflection Token
21 billion $SCRIBE with a 3% transfer tax routed to the referral treasury, perpetually funding the referral rewards program. Excluded addresses (treasury, presale, faucet, rewards, governance) neither pay nor collect tax.
ScribeRewards
Rewards pool
Pre-funded with 15% of the total supply (3.15B $SCRIBE). Admin allocates rewards for engagement, streaks, and other activities. Users claim their pending rewards on-chain.
ScribeGovernance
Token-weighted voting
Admin-created proposals with token-weighted voting. Your $SCRIBE balance equals your voting power. Supports for/against votes with double-vote prevention via bitmap tracking.
ScribeFaucet
Testnet faucet
Distributes testnet $SCRIBE tokens to users with per-address cooldowns. Available on the My DeFi page.
OP721 Marketplace
NFT trading
Deploy OP721 NFT collections, mint tokens, list for sale, and trade with other users. Hosted at market.myscribe.org.
CurationNFT
Curation tokens
Global OP721 contract for curation tokens. Minted when users boost with a tip. Stores original content reference, booster, and tip amounts. Transferable proof of patronage.
Deployed on OP_NET testnet (Bitcoin L1). Contract calls require a connected wallet and gas costs are paid in testnet sats.
Wallet Integration
MyScribe uses the @btc-vision/walletconnect SDK to connect wallets. Two extension wallets are supported: MyScribe Wallet and OP_WALLET. All on-chain actions require a connected wallet.
MyScribe Wallet / OP_WALLET Extension
Connect via the MyScribe Wallet or OP_WALLET browser extension to sign transactions. The extension handles key management and signing for all contract interactions.
Wallet-Required Actions
Registration, profile updates, friend requests, guestbook signing, content minting, and likes all require a connected wallet. No on-chain action proceeds without it.
Gas Costs
Gas costs are paid in testnet sats. OP_NET testnet uses a Signet fork; obtain testnet sats from a faucet to interact with contracts.
Profile System
Wallet-first registration and on-chain profile data. Profiles live at clean URLs and display data stored directly on OP_NET.
Wallet-First Registration
New users register at /register. Connect your wallet first; the registration flow creates your on-chain identity via MyScribeRegistry.
Clean URLs
Profiles are served at myscribe.org/{username}. Usernames are unique and stored on-chain.
On-Chain Profile Data
Display name, bio, avatar inscription ID, CSS inscription ID, and playlist inscription ID are stored on-chain in MyScribeRegistry. Updates require a wallet-signed transaction.
Music Player
The music player loads audio from Ordinals inscriptions. The playlist pointer in the registry points to the inscribed playlist data.
CSS Customization
Profile styling is driven by inscribed CSS files. The CSS inscription ID in the registry references the stylesheet; update the inscription to change your theme.
Legend Score
Computed from social and registry data. Reflects friend count, guestbook activity, likes, and other on-chain engagement. Displayed on profiles.
Content Model
Two content types: blurbs (short) and blogs (long-form). Both are minted as on-chain tokens and can appear in the feed.
Blurbs
Short posts up to 280 characters. Minted as on-chain tokens via MyScribeContent. Each blurb is a distinct token on OP_NET.
Blogs
Long-form content. Title and content hash are stored on-chain; full text lives in the database. The on-chain token references the content by hash for integrity.
Publish to Feed
Optional toggle when composing. When enabled, content appears on the Billboard where it can be discovered and boosted by other users.
The Billboard
The Billboard is Bitcoin's content-first feed where quality rises based on economic signal, not algorithms. Available at /billboard.
Two Primary Tabs
The Billboard has two top-level tabs:
- Billboard — Content-focused feed showing blurbs with boost data
- Activity — Event stream of all platform actions
Billboard Sub-Views
The Billboard tab offers three sorting modes:
- New — Chronological blurbs, newest first
- Hot — Ranked by boost power with time decay (see Boost System)
- Top — Highest boosted blurbs by period (24h, 7d, 30d, all time)
Activity Tab
The Activity tab shows all platform events:
- New user registrations
- Friend connections
- Guestbook entries
- Boosts (content endorsements)
Auto-Refresh
The Billboard auto-refreshes every 30 seconds, pulling new events from OP_NET blocks as they confirm on Bitcoin.
Boost System
Boosts are on-chain endorsements that raise blurbs on the Billboard. They replace algorithmic curation with economic signal — content rises because real users put value behind it.
Free Boost vs Tipped Boost
Free Boost
Costs only gas. Increases the blurb's visibility on the Billboard. No tip is sent, and no Curation NFT is minted.
Tipped Boost
Includes a BTC and/or $SCRIBE tip that goes 100% to the content creator. A Curation NFT is minted to the booster's wallet as transferable proof of patronage.
Constraints
Self-boosting is prevented by the contract. One boost per user per blurb, enforced on-chain. $SCRIBE tips carry a 2x multiplier on ranking power (governance-adjustable).
Ranking Formula
The Hot view on the Billboard ranks blurbs using a time-decayed boost score:
hotScore = (totalBtcSats + totalScribe * 2) / (1 + 0.01 * hoursSincePost)
// Time decay is slow and governance-adjustable
// Hot view: ordered by hotScore (boost power with time decay)
// Top view: ordered by raw total boost power (totalBtcSats + totalScribe * 2)Curation NFTs
What is a Curation NFT?
A Curation NFT is minted on the global CurationNFT contract (OP721) when a user boosts with a tip (BTC or $SCRIBE). It is a transferable, tradeable proof of patronage.
Stored Data
Each Curation NFT records:
- Original contract address and token ID of the boosted blurb
- Booster address
- BTC tip amount (sats)
- $SCRIBE tip amount
- Timestamp
Transferable
Curation NFTs are standard OP721 tokens. They can be transferred, traded, or held as collectible proof that you supported a creator early. Displayed in your wallet as an NFT.
Smart Contract: MyScribeSocial.boost()
boost(
myProfile, // Caller's profile contract address
contentHash, // u256 hash of the blurb content
originalContract, // Profile contract that owns the blurb
originalTokenId, // Token ID of the blurb in that contract
btcTipSats, // BTC tip amount in satoshis (0 for free boost)
scribeTipAmount, // $SCRIBE tip amount (0 for free boost)
creatorProfile // Creator's profile contract address
)BTC Tips
BTC tips flow via extraOutputs directly to the creator's Bitcoin address. The contract verifies the output but never custodizes BTC.
$SCRIBE Tips
$SCRIBE tips are sent as a separate OP-20 transfer to the creator's wallet.
View Methods
| Method | Description |
|---|---|
| getBoostCount(contentHash) | Total number of boosts for a blurb |
| hasBoosted(user, contentHash) | Check if a user has already boosted a blurb |
| getTotalBoosted(contentHash) | Aggregate BTC + SCRIBE totals for a blurb |
| getBoostDetail(contentHash, user) | Individual boost amounts for a specific user |
| getUserBoosts(user, offset, limit) | Paginated list of all boosts by a user |
| getBoostSource(contentHash) | Original contract address + token ID |
YOUTXO 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.
Sat 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, audio, etc.) |
Inscription Costs (Estimated)
The Utility Ladder
Progressive value — start with a simple business card for a few dollars, grow into a full on-chain social identity over time. Each level builds on the previous.
A permanent, styleable identity card on Bitcoin. Update your look anytime.
Your card becomes an interactive page with widgets and customization.
Blurbs, blogs, friends, music — each a modular, activatable feature.
YOUTXO identity works across any platform that adopts the protocol.
Your inscribed identity enters the BLiX 3D world on Bitmap.
Architecture
Tech Stack
Container Layout
services:
app: # myscribe-testnet-app — Next.js production build
# Exposed: 127.0.0.1:8087 -> :3000
opnet: # myscribe-testnet-opnet — OP_NET RPC proxy
# JSON-RPC passthrough, :4000
music: # myscribe-testnet-music — music app
# Exposed: 127.0.0.1:8089 -> :3000
# NFT marketplace: separate repository (myscribemarketplace)
# Container: 127.0.0.1:8088 -> :3000
# Caddy: testnet.myscribe.org -> localhost:8087
# market.myscribe.org -> localhost:8088
# music.myscribe.org -> localhost:8089Authentication
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 (PassSeeds) — Coming Soon
This feature is not yet available. The passkey wallet will follow 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.
PassSeeds Flow
- User creates passkey — WebAuthn registration with Face ID, Touch ID, or device PIN
- Seed extraction — PRF extension extracts 32-byte seed, or hash of P-256 public key
- HD wallet derivation — BIP86 taproot paths: Creator ID, Inscriptions, Payments, Signing
- Client-side signing — Every inscription signed locally, keys re-derived from passkey each time
Features
Powerful tools made accessible through intuitive wizards.
Affordable Audio Inscribing
Inscribe music and audio directly on Bitcoin at accessible prices. Creators permanently preserve their sound alongside their identity.
On-Chain Guestbook
Visitors sign your guestbook via wallet connect. Cryptographic signatures verified on-chain — a permanent record of your community.
Rich Article Composer
Full rich-text editor for long-form content. Format beautifully, then inscribe permanently on Bitcoin with one click.
Cross-Platform Identity
YOUTXO Creator Cards are a plug-and-play identity standard. Any platform can adopt them as an account system.
Intuitive Wizards
Every inscription flow is guided step-by-step. Zero Bitcoin knowledge required through clear, friendly wizards.
Personal Profile Pages
Your permanent home on Bitcoin. Showcasing your Creator Card, blurbs, blogs, Top 8 friends, and more.
Inscription 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)$SCRIBE Token
Total Supply
21,000,000,000
Standard
OP_20 (Reflection)
Transfer Tax
3% (to referral treasury)
$SCRIBE uses a 3% treasury tax on every non-exempt transfer. The tax is sent directly to the ScribeReferral contract, perpetually funding the referral rewards program. Excluded addresses (system contracts) are exempt from the tax. $SCRIBE boosts have 2x ranking power on the Billboard, creating natural demand for the token.
Distribution
DeFi
MyScribe's DeFi system has three pillars: referral rewards, active rewards, and community governance.
Reflections (Passive)
Every $SCRIBE transfer incurs a 3% tax that is sent to the referral treasury, perpetually funding the referral rewards program. Excluded addresses (system contracts) are exempt.
Rewards Pool (Active)
15% of the total supply (3.15B $SCRIBE) is pre-funded into the ScribeRewards contract. The admin allocates rewards for engagement, streaks, and other activities. Users visit the Rewards page to claim their pending tokens.
Governance (Community)
Token-weighted voting where your $SCRIBE balance equals your voting power. The admin creates proposals and all holders can vote for or against. Double-voting is prevented via bitmap tracking.
Testnet Faucet
Claim free testnet $SCRIBE tokens from the faucet on the My DeFi page. Per-address cooldowns apply.
NFT Marketplace
The MyScribe NFT Marketplace is a standalone app at market.myscribe.org for deploying, minting, listing, and trading OP721 NFTs on Bitcoin L1.
Deploy Collections
Create new OP721 NFT collections on Bitcoin L1 with custom metadata, supply limits, and minting rules.
Mint & Trade
Mint NFTs in any collection, list them for sale, browse listings, and purchase from other users. All transactions settled on Bitcoin L1 via OPNet.
Portfolio
View your NFT holdings across all collections. Track your deployed collections and minted tokens.
Roadmap
Profiles, Factory, Social Graph — on-chain identity via YOUTXO Protocol.
Blurbs, Guestbook, Billboard with Boosts, Curation NFTs — content-first feed on Bitcoin.
$SCRIBE token with treasury tax, Presale rounds, Faucet — community-powered economy.
Rewards, Governance, NFT Marketplace, Billboard Ranking API — full DeFi stack on Bitcoin L1.
MyScribe Music platform, audio inscriptions — creator-first audio on Bitcoin.
Mobile apps, DMs, enhanced search — social everywhere.
YOUTXO identities enter the BLiX 3D world on Bitmap.
Design System
"MySpace Nostalgia + Clean Modern Structure" — Bold blues, square corners, visible structure, and personality. Verdana for all text provides the authentic MySpace feel with consistent rendering across every device and platform.
Typography
Color Palette
BG Deepest
#0A1628
Blue Darkest
#003366
Blue Dark
#004080
Blue Primary
#0066CC
Blue Light
#3399FF
Blue Lightest
#CCE5FF
BG Page
#D4D4D4
BG Card
#FFFFFF
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 Icons (Classic Outlined) for all icons — no emojis
- 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)
- Verdana for all text (authentic MySpace font stack)
