# Intermediate Overview

Welcome to the Intermediate Learning Path! This path takes you beyond the fundamentals to build **real-world, production-ready BSV blockchain applications** through hands-on project development.

## What Makes This Path Different

The intermediate path is **project-based**. Instead of learning concepts in isolation, you'll build multiple complete, deployable applications that demonstrate real blockchain use cases. Each project includes:

* **Full working code** you can run and deploy
* **Backend implementation** (custodial wallet management)
* **Frontend implementation** (user-controlled wallets with WalletClient + MetaNet Desktop Wallet)
* **Best practices** for production deployment
* **SDK-first approach** using pre-built components

## What You'll Build

By completing this path, you will build four production-ready applications:

1. **Desktop Wallet Management** - Comprehensive wallet data integration with identity keys, key derivation, and basket management
2. **Inscription Platform** - On-chain data storage with OP\_RETURN patterns, basket organization, and file hashing
3. **MessageBox Platform** - Peer-to-peer encrypted messaging and BRC-29 payments with identity certification
4. **Crowdfunding Platform** - Token-based campaign funding with escrow and automated payouts

## Prerequisites

Before starting this path, you should have completed the [Beginner Learning Path](/bsv-code-academy/beginner-path/beginner.md) or have equivalent knowledge:

* BSV SDK installation and setup
* Creating and signing basic transactions
* Understanding UTXOs and transaction structure
* Wallet management with both backend and frontend approaches
* Using WalletClient for frontend wallet integration

## Core Projects

### Project 1: [Desktop Wallet Management](/bsv-code-academy/intermediate-path/intermediate/desktop-wallet-management.md)

**Duration**: 2-3 hours | **Difficulty**: Intermediate

Build a comprehensive wallet information dashboard that connects to the BSV Desktop Wallet to retrieve and display wallet data.

**What You'll Build**:

* Wallet connection and authentication flow
* Identity key retrieval and display
* Public key derivation (Identity, Payment, Data)
* Address generation from public keys
* Custom key derivation with different protocols
* Network status detection (mainnet/testnet)
* Balance checking for multiple addresses
* Basket management and output listing
* Wallet capabilities discovery

**Key Features**:

* WalletClient integration for frontend wallet communication
* Multiple key type derivation (Identity, Payment, Data)
* Protocol-based key derivation (BRC-42)
* Address generation and balance queries
* Basket organization for wallet outputs
* Real-time network detection
* Comprehensive capability discovery (encryption, signing, certificates, HMAC, etc.)

**SDK Components Used**:

* WalletClient for wallet integration
* PublicKey for key management and address generation
* Key derivation protocols (BRC-42)
* Balance and UTXO queries

**Why Start Here**: Understanding wallet integration and key management is fundamental to building user-facing blockchain applications. This project teaches core patterns for working with user-controlled wallets that you'll use in all frontend blockchain applications.

***

### Project 2: [Inscription Platform](/bsv-code-academy/intermediate-path/intermediate/inscription-platform.md)

**Duration**: 2-3 hours | **Difficulty**: Intermediate

Build a minimal inscriptions platform that stores data permanently on the BSV blockchain using OP\_RETURN outputs.

**What You'll Build**:

* Text and JSON data inscriptions on-chain
* Document and image hash storage for verification
* Basket-based inscription organization (text, json, hash-document, hash-image)
* Transaction history with localStorage persistence
* Frontend-only implementation with WalletClient

**Key Features**:

* OP\_RETURN data storage with OP\_FALSE OP\_RETURN pattern
* Multiple inscription types with basket organization
* SHA-256 file hashing for document/image verification
* Client-side transaction history
* Data permanence and timestamping

**SDK Components Used**:

* WalletClient for wallet integration
* Script for OP\_RETURN construction
* Utils for data encoding
* Transaction building with basket organization

**Why This Project**: Learn fundamental patterns for storing arbitrary data on-chain. This project demonstrates immutable data storage, proof of existence, and timestamping - core concepts for building verification systems, document registries, and data anchoring applications.

***

### Project 3: [MessageBox Platform](/bsv-code-academy/intermediate-path/intermediate/messagebox-platform.md)

**Duration**: 3-4 hours | **Difficulty**: Intermediate

Build a peer-to-peer messaging and payment platform using BSV's MessageBox network for encrypted, ephemeral message delivery and BRC-29 identity-based payments.

**What You'll Build**:

* Identity certification on the BSV blockchain
* Encrypted peer-to-peer messaging via MessageBox network
* BRC-29 compliant identity-based payments
* Transaction internalization for payment tracking
* Frontend wallet integration with WalletClient
* Backend session management and database storage

**Key Features**:

* Identity-based architecture using public keys as universal identities
* End-to-end encrypted, ephemeral message delivery
* BRC-29 payments directly to identities (no address management)
* Blockchain-certified identity proofs
* Payment token creation with key derivation instructions
* MongoDB storage for certified users
* Wallet session management with automatic expiration

**SDK Components Used**:

* WalletClient for browser-based identity management
* MessageBoxClient for identity certification and message delivery
* PeerPayClient for BRC-29 payment token creation
* Transaction internalization for wallet balance updates
* BRC-42 key derivation protocols

**Why This Project**: Learn how to build decentralized identity and messaging systems on BSV. This project teaches you the MessageBox protocol, BRC-29 payment addressing, identity certification, and how to integrate overlay services for privacy-preserving communication. Perfect for building social platforms, payment apps, and peer-to-peer applications.

**Complete Code Repository**: [messagebox-platform](https://github.com/bsv-blockchain-demos/messagebox-platform)

***

### Project 4: [Crowdfunding Platform](/bsv-code-academy/intermediate-path/intermediate/crowdfunding-platform.md)

**Duration**: 4-6 hours | **Difficulty**: Intermediate

Build a complete token-based crowdfunding platform with escrow mechanisms and automated payouts.

**What You'll Build**:

* Token issuance for campaign shares
* Escrow smart contracts for fund security
* Automated payout logic when goals are met
* Campaign dashboard and tracking
* Both backend (custodial) and frontend (WalletClient) implementations

**Key Features**:

* Campaign creation and management
* Token distribution to backers
* Goal tracking and automated payouts
* Refund mechanisms for failed campaigns
* Multi-party escrow patterns

**SDK Components Used**:

* Transaction building with automatic fee handling
* Token template creation
* Escrow script patterns
* BEEF transaction bundles

***

## Development Paradigms

Throughout this path, you'll learn two essential approaches to BSV application development:

### Backend/Service Development

**When to Use**: Internal business systems, automated services, custody solutions

* Application controls wallets and manages keys
* Server-side transaction creation and signing
* SDK handles all transaction mechanics automatically
* Use cases: payment processors, tokenization services, supply chain backends, enterprise wallets

### Frontend Integration Development

**When to Use**: User-facing dApps, consumer applications

* Users control their own wallets via MetaNet Desktop Wallet
* Browser-based transaction signing through WalletClient
* SDK's WalletClient component handles wallet communication
* Use cases: crowdfunding platforms, marketplace frontends, consumer verification apps

**Reference**: [Wallet Toolbox Documentation](https://fast.brc.dev/) and [BRC Standards](https://hub.bsvblockchain.org/brc)

***

## SDK-First Philosophy

All four projects emphasize using the **BSV SDK's pre-built components** rather than manual low-level configuration:

✅ **DO**: Use SDK's built-in transaction methods that handle broadcasting, fees, and UTXO management automatically

✅ **DO**: Use WalletClient for frontend wallet integration with MetaNet Desktop Wallet

✅ **DO**: Let the SDK abstract away infrastructure details

❌ **DON'T**: Manually configure ARC broadcasters, fee calculators, or UTXO managers as primary methods

❌ **DON'T**: Use external APIs (like WhatsOnChain) when SDK provides built-in methods

❌ **DON'T**: Implement low-level protocol details that the SDK handles for you

The SDK provides **ready-to-use, pre-configured components** that let you focus on building applications, not blockchain infrastructure.

***

## Learning Path Completion

After completing this path, you will have:

* ✅ Built four production-ready, deployable BSV applications
* ✅ Mastered WalletClient integration for user-controlled wallets
* ✅ Implemented key derivation, address generation, and basket management
* ✅ Implemented on-chain data storage with OP\_RETURN inscriptions
* ✅ Built peer-to-peer encrypted messaging with MessageBox protocol
* ✅ Implemented identity certification and BRC-29 payment addressing
* ✅ Mastered transaction internalization for payment tracking
* ✅ Implemented both backend (custodial) and frontend (user-wallet) architectures
* ✅ Mastered the BSV SDK's pre-built components and patterns
* ✅ Created token systems, escrow mechanisms, and multi-party workflows
* ✅ Built data verification and timestamping systems
* ✅ Integrated overlay services for privacy-preserving communication
* ✅ Developed real-world blockchain solutions you can adapt for your own projects

## Real-World Applications

The projects in this path directly prepare you to build:

**From Desktop Wallet Management:**

* Wallet information dashboards
* Multi-key management applications
* Developer tools and debugging interfaces
* Portfolio management systems
* Identity verification applications
* Basket-based output organization tools

**From Inscription Platform:**

* Document timestamping services
* Copyright registration systems
* Data anchoring applications
* Public statement platforms
* Verification and proof-of-existence systems
* NFT metadata storage

**From MessageBox Platform:**

* Peer-to-peer messaging applications
* Social media platforms with monetization
* Decentralized identity systems
* Payment apps with identity-based addressing
* Content creator platforms with tips/donations
* Encrypted communication services
* Universal identity across applications

**From Crowdfunding Platform:**

* Campaign funding systems
* Token-based investment platforms
* Donation and grant management
* Community funding applications

## Getting Help

* Check the [SDK Components](/bsv-code-academy/sdk-components-reference/sdk-components.md) for detailed API reference
* Browse [Code Features](/bsv-code-academy/code-features/code-features.md) for working examples
* Reference [Wallet Toolbox Documentation](https://fast.brc.dev/) for WalletClient API
* Reference [BRC Standards](https://hub.bsvblockchain.org/brc) for protocol specifications
* Visit [BSV Skills Center](https://hub.bsvblockchain.org/bsv-skills-center) for additional resources
* Download [MetaNet Desktop Wallet](https://desktop.bsvb.tech/) for testing frontend integration
* Join BSV developer communities for peer support

## Estimated Time

**Core Projects**: 11-16 hours total

* Desktop Wallet Management: 2-3 hours
* Inscription Platform: 2-3 hours
* MessageBox Platform: 3-4 hours
* Crowdfunding Platform: 4-6 hours

**Total Path Duration**: 11-16 hours depending on depth and customization

This is a hands-on learning path - you'll spend most of your time writing and deploying real code, not just reading documentation.

***

## Recommended Learning Path

1. **Start with Desktop Wallet Management** - Learn WalletClient integration, key derivation, and wallet data management
2. **Continue with Inscription Platform** - Master on-chain data storage, OP\_RETURN patterns, and basket organization
3. **Build MessageBox Platform** - Learn identity certification, encrypted messaging, and BRC-29 payment addressing
4. **Move to Crowdfunding Platform** - Build on your knowledge to create token systems, escrow mechanisms, and automated payouts
5. **Build both implementations** (backend and frontend) for projects that support it
6. **Customize and deploy** your own versions with unique features

Ready to build production BSV applications? Start with [**Desktop Wallet Management**](/bsv-code-academy/intermediate-path/intermediate/desktop-wallet-management.md) to master wallet integration, then move to [**Inscription Platform**](/bsv-code-academy/intermediate-path/intermediate/inscription-platform.md) for data storage patterns, continue with [**MessageBox Platform**](/bsv-code-academy/intermediate-path/intermediate/messagebox-platform.md) for identity and messaging systems, and finally [**Crowdfunding Platform**](/bsv-code-academy/intermediate-path/intermediate/crowdfunding-platform.md) to build complete token applications!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hub.bsvblockchain.org/bsv-code-academy/intermediate-path/intermediate.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
