# SDK Components Overview

This directory contains detailed documentation for each component of the BSV TypeScript SDK. These components are the building blocks for BSV blockchain applications.

## Purpose

SDK Components serve as modular reference documentation that can be:

* Referenced from learning path modules
* Used as quick-reference guides
* Linked from code examples
* Combined to build complete solutions

## Organization

Components are organized by functionality and complexity level. Each component includes:

* Overview and purpose
* API reference
* Usage examples
* Related components
* Common patterns

## Core Components

### Transaction Management

* [Transaction](/bsv-code-academy/sdk-components-reference/sdk-components/transaction.md) - Creating and managing BSV transactions
* [Transaction Input](/bsv-code-academy/sdk-components-reference/sdk-components/transaction-input.md) - Working with transaction inputs
* [Transaction Output](/bsv-code-academy/sdk-components-reference/sdk-components/transaction-output.md) - Working with transaction outputs
* [UTXO Management](/bsv-code-academy/sdk-components-reference/sdk-components/utxo-management.md) - Managing unspent transaction outputs

### Cryptography & Keys

* [Private Keys](/bsv-code-academy/sdk-components-reference/sdk-components/private-keys.md) - Key generation and management
* [Public Keys](/bsv-code-academy/sdk-components-reference/sdk-components/public-keys.md) - Public key derivation
* [Signatures](/bsv-code-academy/sdk-components-reference/sdk-components/signatures.md) - Digital signatures and verification
* [HD Wallets](/bsv-code-academy/sdk-components-reference/sdk-components/hd-wallets.md) - Hierarchical Deterministic wallets (BIP32)

### Scripts

* [Script](/bsv-code-academy/sdk-components-reference/sdk-components/script.md) - Bitcoin Script fundamentals
* [Script Templates](/bsv-code-academy/sdk-components-reference/sdk-components/script-templates.md) - Common script patterns
* [P2PKH](/bsv-code-academy/sdk-components-reference/sdk-components/p2pkh.md) - Pay-to-Public-Key-Hash

### Blockchain Verification

* [SPV](/bsv-code-academy/sdk-components-reference/sdk-components/spv.md) - Simplified Payment Verification
* [Merkle Proofs](/bsv-code-academy/sdk-components-reference/sdk-components/merkle-proofs.md) - Merkle tree verification
* [BEEF Format](/bsv-code-academy/sdk-components-reference/sdk-components/beef.md) - Background Evaluation Extended Format

### Broadcasting & Network

* [ARC](/bsv-code-academy/sdk-components-reference/sdk-components/arc.md) - Transaction broadcasting with ARC

### Standards (BRC)

* [BRC-42](/bsv-code-academy/sdk-components-reference/sdk-components/brc-42.md) - Key derivation protocol
* [BRC-29](/bsv-code-academy/sdk-components-reference/sdk-components/brc-29.md) - Payment protocol

## How to Use

Each component directory contains:

1. `README.md` - Component overview and API
2. `examples.md` - Code examples and patterns
3. `api-reference.md` - Detailed API documentation

Components can be referenced in learning paths like this:

```markdown
For more details on transactions, see [Transaction Component](../../sdk-components/transaction/README.md)
```

## Component Status

* ✅ Core components documented
* 🚧 Additional components in progress
* 📋 Planned components

## Contributing

When adding new components:

1. Create a dedicated folder with descriptive name
2. Include README.md with overview
3. Add examples.md with practical code
4. Document all public APIs
5. Link related components


---

# 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/sdk-components-reference/sdk-components.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.
