Skip to main content

Decentralized IP Proof of Existence — stamp your ideas on Bitcoin

Project description

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 Testnettxid: 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bit_protocol-0.2.0.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bit_protocol-0.2.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file bit_protocol-0.2.0.tar.gz.

File metadata

  • Download URL: bit_protocol-0.2.0.tar.gz
  • Upload date:
  • Size: 23.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for bit_protocol-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b8ae413b892684b645ff0a430ca1f227b3c242a102f57e289f68114d7c52c133
MD5 230b6011450c49d72c23a7f5e4751270
BLAKE2b-256 0e6f1497e8225726d96bdb132bb66c030d9af6ab90eaa382b37b4bac5f1739d7

See more details on using hashes here.

File details

Details for the file bit_protocol-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: bit_protocol-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for bit_protocol-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35b2c3cd8c1c7867d670830bf98693f78ab98de555fdd0d04a5cefb4bad426dd
MD5 824e93ea9610f1138aa4b092bbb1671f
BLAKE2b-256 c8599a411e9bb23c50a3b3a4e070cf6d19e62507f57d52168294563e1d9a4f57

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page