Phase 3 · New Contracts
MyScribe
menu_book

MyScribe Documentation

Technical reference for the MyScribe platform and YOUTXO Protocol.

infoPlatform 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)

Domain

myscribe.org

Visit the platform

Brand Pillars

hubOP_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.

badge

MyScribeFactory

User Registration

Deploys per-user MyScribeProfile contracts on registration. Resolves usernames to contract addresses and wallet addresses to profiles.

person

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.

group

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.

toll

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.

redeem

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.

how_to_vote

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.

water_drop

ScribeFaucet

Testnet faucet

Distributes testnet $SCRIBE tokens to users with per-address cooldowns. Available on the My DeFi page.

storefront

OP721 Marketplace

NFT trading

Deploy OP721 NFT collections, mint tokens, list for sale, and trade with other users. Hosted at market.myscribe.org.

token

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.

account_balance_walletWallet 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.

extension

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.

verified_user

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.

payments

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.

personProfile System

Wallet-first registration and on-chain profile data. Profiles live at clean URLs and display data stored directly on OP_NET.

app_registration

Wallet-First Registration

New users register at /register. Connect your wallet first; the registration flow creates your on-chain identity via MyScribeRegistry.

link

Clean URLs

Profiles are served at myscribe.org/{username}. Usernames are unique and stored on-chain.

storage

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_note

Music Player

The music player loads audio from Ordinals inscriptions. The playlist pointer in the registry points to the inscribed playlist data.

palette

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.

emoji_events

Legend Score

Computed from social and registry data. Reflects friend count, guestbook activity, likes, and other on-chain engagement. Displayed on profiles.

articleContent Model

Two content types: blurbs (short) and blogs (long-form). Both are minted as on-chain tokens and can appear in the feed.

chat_bubble_outline

Blurbs

Short posts up to 280 characters. Minted as on-chain tokens via MyScribeContent. Each blurb is a distinct token on OP_NET.

menu_book

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.

rss_feed

Publish to Feed

Optional toggle when composing. When enabled, content appears on the Billboard where it can be discovered and boosted by other users.

trending_upThe Billboard

The Billboard is Bitcoin's content-first feed where quality rises based on economic signal, not algorithms. Available at /billboard.

view_list

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
sort

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)
hub

Activity Tab

The Activity tab shows all platform events:

  • New user registrations
  • Friend connections
  • Guestbook entries
  • Boosts (content endorsements)
schedule

Auto-Refresh

The Billboard auto-refreshes every 30 seconds, pulling new events from OP_NET blocks as they confirm on Bitcoin.

rocket_launchBoost 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

bolt

Free Boost

Costs only gas. Increases the blurb's visibility on the Billboard. No tip is sent, and no Curation NFT is minted.

paid

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.

block

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:

Hot Score Formula
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

token

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.

storage

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
swap_horiz

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() method signature
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
)
payments

BTC Tips

BTC tips flow via extraOutputs directly to the creator's Bitcoin address. The contract verifies the output but never custodizes BTC.

toll

$SCRIBE Tips

$SCRIBE tips are sent as a separate OP-20 transfer to the creator's wallet.

View Methods

MethodDescription
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

device_hubYOUTXO 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, audio, 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

trending_upThe 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.

1
Updatable Business Card~$3-5

A permanent, styleable identity card on Bitcoin. Update your look anytime.

2
Full On-Chain Profile+$10-20

Your card becomes an interactive page with widgets and customization.

3
On-Chain Widget Features+$1-3 each

Blurbs, blogs, friends, music — each a modular, activatable feature.

4
Platform InteroperabilityOpen standard

YOUTXO identity works across any platform that adopts the protocol.

5
BLiX 3D World IntegrationComing soon

Your inscribed identity enters the BLiX 3D world on Bitmap.

dnsArchitecture

Tech Stack

Next.js16.1.6
React19.2.4
Tailwind CSS4
Prisma6.19.2
Zustand5.0.11
TypeScript5.9.3
Tiptap3.20.0
Recharts3.7.0
ioredis5.9.3
Socket.io4.8.3
AuthWallet-based (OPNet WalletConnect)
DatabaseSQLite (Prisma, feed cache)
ContainersDocker Compose (app, opnet, music; marketplace separate)
Reverse ProxyCaddy (auto-HTTPS)
Bitcoin APIsmempool.space (UTXOs, fees, broadcast)
Smart ContractsOP_NET (AssemblyScript/WASM on Bitcoin L1)
DeFiReflection token, rewards pool, governance
NFT MarketplaceOP721 deploy, mint, list, trade

Container Layout

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

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 (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

  1. User creates passkey — WebAuthn registration with Face ID, Touch ID, or device PIN
  2. Seed extraction — PRF extension extracts 32-byte seed, or hash of P-256 public key
  3. HD wallet derivation — BIP86 taproot paths: Creator ID, Inscriptions, Payments, Signing
  4. Client-side signing — Every inscription signed locally, keys re-derived from passkey each time

starFeatures

Powerful tools made accessible through intuitive wizards.

music_note

Affordable Audio Inscribing

Inscribe music and audio directly on Bitcoin at accessible prices. Creators permanently preserve their sound alongside their identity.

menu_book

On-Chain Guestbook

Visitors sign your guestbook via wallet connect. Cryptographic signatures verified on-chain — a permanent record of your community.

article

Rich Article Composer

Full rich-text editor for long-form content. Format beautifully, then inscribe permanently on Bitcoin with one click.

public

Cross-Platform Identity

YOUTXO Creator Cards are a plug-and-play identity standard. Any platform can adopt them as an account system.

auto_awesome

Intuitive Wizards

Every inscription flow is guided step-by-step. Zero Bitcoin knowledge required through clear, friendly wizards.

home

Personal Profile Pages

Your permanent home on Bitcoin. Showcasing your Creator Card, blurbs, blogs, Top 8 friends, and more.

starsInscription 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)

toll$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

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

pie_chartDeFi

MyScribe's DeFi system has three pillars: referral rewards, active rewards, and community governance.

auto_awesome

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.

redeem

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.

how_to_vote

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.

water_drop

Testnet Faucet

Claim free testnet $SCRIBE tokens from the faucet on the My DeFi page. Per-address cooldowns apply.

storefrontNFT Marketplace

The MyScribe NFT Marketplace is a standalone app at market.myscribe.org for deploying, minting, listing, and trading OP721 NFTs on Bitcoin L1.

rocket_launch

Deploy Collections

Create new OP721 NFT collections on Bitcoin L1 with custom metadata, supply limits, and minting rules.

add_photo_alternate

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.

collections

Portfolio

View your NFT holdings across all collections. Track your deployed collections and minted tokens.

timelineRoadmap

1
FoundationDONE

Profiles, Factory, Social Graph — on-chain identity via YOUTXO Protocol.

2
Content & BillboardDONE

Blurbs, Guestbook, Billboard with Boosts, Curation NFTs — content-first feed on Bitcoin.

3
TokenomicsDONE

$SCRIBE token with treasury tax, Presale rounds, Faucet — community-powered economy.

4
DeFi & MarketplaceLIVE

Rewards, Governance, NFT Marketplace, Billboard Ranking API — full DeFi stack on Bitcoin L1.

5
Music & AudioIN PROGRESS

MyScribe Music platform, audio inscriptions — creator-first audio on Bitcoin.

6
Mobile & DiscoveryUPCOMING

Mobile apps, DMs, enhanced search — social everywhere.

7
BLiX 3D WorldUPCOMING

YOUTXO identities enter the BLiX 3D world on Bitmap.

paletteDesign 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

Display / HeadersVerdanaFallback: Arial, sans-serif
Body TextVerdanaFallback: Arial, sans-serif

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

  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 Icons (Classic Outlined) for all icons — no emojis
  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. Verdana for all text (authentic MySpace font stack)