# BRC: Blacklist Request for Comment
[](LICENSE)
[](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)