blacklistrc 0.0.1

BRC: Blacklist Request for Comment
Documentation
# BRC: Blacklist Request for Comment

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Blacklist Network](https://img.shields.io/badge/Layer2-Blacklist%20Network-black)](https://blacklists.app)

## Overview

**BRC** is the official smart contract standard for the [Blacklist Network](https://blacklists.app), the first Bitcoin Layer 2 to support channels, smart contracts, invoices, and NFTs. Inspired by Ethereum's ERC-721, BRC goes further by integrating Blacklist payments, automatic royalties, and payment streaming, fostering a robust ecosystem for digital assets and smart contracts on the Bitcoin network.

## Modular Structure

All BRC standards are implemented as internal modules of a single crate. This means you only need to add one dependency, and you have access to all standards through the main `brc` crate:

- **brc002:** Payment channels and channel states
- **brc003:** Smart contracts and terms
- **brc004:** Payment invoices
- **brc005:** NFT structures, events, traits, validation, payments, and royalties
- **brc006:** (Describe what this module does here)
- **validation:** (Describe what this module does here, if public)

The main crate (`brc`) re-exports all modules, providing centralized access:

```rust
use brc::brc002::*;
use brc::brc003::*;
use brc::brc004::*;
use brc::brc005::*;
use brc::brc006::*;
// use brc::validation::*; // Se for público
```

## Installation

Add to your `Cargo.toml`:

```toml
[dependencies]
brc = "0.0.1"
```

> **Note:** For local development, simply clone the repository and edit the code directly. No need to use `path` dependencies, as all modules are internal.

## Usage Example

```rust
use brc::brc005::{BRCToken, BRCMintRequest, MintBRC};

struct MyNFTContract;

impl MintBRC for MyNFTContract {
    fn mint(&self, req: &BRCMintRequest) -> BRCToken {
        // Custom implementation
    }
}
```

## Features

- **Standardized NFTs:** Structures and events compatible with wallets, marketplaces, and dApps.
- **Blacklist Payments:** Minting, transfers, and royalties via Blacklist invoices.
- **Payment Streaming:** Native support for recurring payments (sats/second).
- **Automatic Royalties:** Configurable percentages, including for secondary sales.
- **Traceable Events:** Full audit of operations (mint, transfer, approval, payments, streams).
- **Modular structure:** Each BRC standard is an internal module, making maintenance and extensibility easier.

## Use Cases

- Minting and transferring NFTs with Blacklist payment integration.
- NFTs with recurring payments (subscriptions, licenses).
- Automatic royalties for creators on primary and secondary sales.
- Integration with dApps, wallets, and marketplaces on the Blacklist Network.

## Contributing

Contributions are welcome! Open an issue or pull request.

## License

MIT © [Blacklist](https://blacklists.app)