Bit Protocol
Decentralized IP Proof of Existence on Bitcoin.
Stamp your files, code, and ideas to the Bitcoin blockchain as immutable proof that you had them at a specific point in time. No disclosure. No gatekeepers. No subscription fees.
✅ Verified on Bitcoin Testnet — txid: b98761beaf2b4e8fb60b3fe6ee767f2cb9347fb785f8b57e02328b00cef4ab4c
pip install bit-protocol
bit init
bit stamp my-whitepaper.pdf --utxo=<txid>:<vout>
bit verify my-whitepaper.pdf --txid=<txid>
Why
| Problem | Bit Protocol |
|---|---|
| Patents cost $10K+ and take years | Stamp in seconds for cents in fees |
| Trade secrets have no legal protection if leaked | Prove possession without disclosure |
| Bernstein.io costs $54–$329/mo | Open-source, self-host, free |
| Vendor lock-in | Your keys, your node, your stamps |
| Centralized registries can be seized or shut down | Bitcoin is permissionless and unstoppable |
How It Works
Your file → SHA-256 hash → OP_RETURN payload → Bitcoin tx → Immutable proof
↓
Local SQLite cache
OP_RETURN Schema
| 3 bytes | 1 byte | 1 byte | 32 bytes | 4 bytes | ≤42 bytes |
| Protocol | Version | Type | SHA-256 | Key FP | Metadata |
| "BIT" | 0x01 | 0x01-04 | File hash | Key ID | JSON |
Total: 41–83 bytes — fits within Bitcoin's original OP_RETURN limit and is forward-compatible with Bitcoin Core v30's 100KB expansion.
Quickstart
1. Install
pip install bit-protocol
2. Generate your identity
bit init
Creates a secp256k1 keypair at ~/.bit/key.pem.
3. Get testnet BTC
Send some tBTC to your address (shown by bit status) from a testnet faucet.
4. Stamp a file
bit stamp myfile.pdf --utxo=<txid>:<vout>
5. Verify
bit verify myfile.pdf --txid=<txid>
6. Check your stats
bit status
Real Example (Testnet)
# Generate key (one-time)
bit init
# Stamp a file
bit stamp whitepaper.pdf --utxo=62256e0bda6e7972...:0
# Output:
# ✓ Stamped to Bitcoin testnet!
# txid: b98761beaf2b4e8fb60b3fe6ee767f2cb9347fb785f8b57e02328b00cef4ab4c
# View: https://blockstream.info/testnet/tx/b98761beaf2b4e8fb60b3fe6ee767f2cb9347fb785f8b57e02328b00cef4ab4c
# Verify
bit verify whitepaper.pdf --txid=b98761beaf2b4e8fb60b3fe6ee767f2cb9347fb785f8b57e02328b00cef4ab4c
# Output:
# ✓ MATCH — PROVEN: You possessed this exact file at block time.
Commands
| Command | Description |
|---|---|
bit init |
Generate your identity key |
bit status |
Show identity, wallet, and stamp count |
bit stamp <file> |
Stamp a file to Bitcoin |
bit verify <file> --txid=<id> |
Verify a file against an on-chain stamp |
bit search <query> |
Search your local stamp database |
Options
bit stamp file.pdf --type=source_code # Tag content type
bit stamp file.pdf --mainnet # Use Bitcoin mainnet
bit stamp file.pdf --utxo=abc123:0 # Specify UTXO for fees
bit stamp --text "my idea" --utxo=abc:0 # Stamp from text, not file
bit stamp file.pdf --meta='{"v":"1.0"}' # Attach metadata
bit stamp file.pdf --fee=5000 # Custom fee in satoshis
Public Index (optional)
Share stamps with the network via an optional public index:
docker compose up -d
curl http://localhost:8787/health
# Record a stamp
curl -X POST http://localhost:8787/stamp \
-H "Content-Type: application/json" \
-d '{"hash":"abc...","txid":"def...","content_type":"document","key_fingerprint":"abcd1234"}'
# Look up a stamp
curl http://localhost:8787/stamp/abc...
# Search
curl "http://localhost:8787/search?q=abc&field=hash"
Pre-commit Hook (optional)
Auto-stamp files on every commit:
cp scripts/pre-commit.sh .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
Stamps all staged .md and .pdf files. Edit the hook to change tracked extensions.
Roadmap
- Core protocol schema
- CLI (init, stamp, verify, search)
- Bitcoin testnet broadcast
- Local SQLite database
- Public index API
- Pre-commit git hook
- Live on-chain verification
- PyPI release (
pip install bit-protocol) - GitHub Action for CI stamping
- VS Code extension
- UTXO scanner (auto-select inputs)
- HD key derivation (BIP32/BIP44 for IP families)
- Fractional IP tokenization
- Multi-chain support (Ethereum, Solana)
Development
git clone https://github.com/washingtoneimae-dot/bit.git
cd bit
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -v
Strategy
Bit Protocol is the Linux to Bernstein's Windows — an open-source protocol that any developer can self-host, customize, or contribute to.
| Bernstein | Bit | |
|---|---|---|
| Model | Closed SaaS | Open Core |
| Price | $54–$329/mo | Free (self-host) |
| Keys | Account-based | Self-sovereign |
| Registry | Centralized | Bitcoin + optional index |
| Legal | WIPO-recognized | Community-built |
| Tokenization | None | Planned (fractional IP) |
The strategy: free self-host → developer adoption → prior art shield → network of interoperable registries that no single entity controls or can ignore.
License
MIT
Metadata
Release files for bit-protocol 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bit_protocol-0.2.0.tar.gz | 23.0 kB | Without provenance | Details for bit_protocol-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bit_protocol-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for bit_protocol-0.2.0-py3-none-any.whl |
Total release size: 43.5 kB
Release files / bit_protocol-0.2.0.tar.gz
| Download URL | bit_protocol-0.2.0.tar.gz |
|---|---|
| Size | 23.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8ae413b892684b645ff0a430ca1f227b3c242a102f57e289f68114d7c52c133
|
|
BLAKE2b-256 checksum How to use checksums |
0e6f1497e8225726d96bdb132bb66c030d9af6ab90eaa382b37b4bac5f1739d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / bit_protocol-0.2.0-py3-none-any.whl
| Download URL | bit_protocol-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35b2c3cd8c1c7867d670830bf98693f78ab98de555fdd0d04a5cefb4bad426dd
|
|
BLAKE2b-256 checksum How to use checksums |
c8599a411e9bb23c50a3b3a4e070cf6d19e62507f57d52168294563e1d9a4f57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Security for bit-protocol 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.