Borg backups with Bitcoin timestamping - your data lives on forever
npm install borg-anchor

Borg backups with Bitcoin timestamping. Your data lives on forever.
borg-anchor combines BorgBackup (deduplicating archiver) with Bitcoin timestamping to create backups with cryptographic proof of existence.
```
Your Data → Borg Backup → Bitcoin Anchor → Immortal Proof
- Deduplication - Only store changes, not duplicates
- Compression - Efficient storage with lz4/zstd
- Encryption - Optional AES-256 encryption
- Bitcoin Timestamping - Immutable proof your backup existed
- Chained Proofs - Each backup linked to previous via UTXO chain
`bash`
npm install -g borg-anchor
- BorgBackup installed
- blocktrails CLI for Bitcoin anchoring
- Node.js 18+
`bashInitialize a new backup repository
borg-anchor init ~/backups
Commands
| Command | Description |
|---------|-------------|
|
info | Dashboard of all projects (CLI) |
| dashboard | Web dashboard (localhost:3077) |
| init [path] | Initialize borg repo and config |
| backup | Create backup and anchor on Bitcoin |
| list | List backups and trail status |
| verify | Verify backup is anchored |
| restore | Restore backup to destination |
| show | Show config and trail status |Options
$3
| Option | Default | Description |
|--------|---------|-------------|
|
--repo | repo | Borg repository directory name |
| --encryption | none | none, repokey, repokey-blake2 |
| --network | tbtc4 | btc (mainnet) or tbtc4 (testnet) |$3
| Option | Default | Description |
|--------|---------|-------------|
|
--name | backup-YYYY-MM-DD | Archive name |
| --no-anchor | - | Skip Bitcoin anchoring |
| --dry | - | Dry run (don't broadcast) |How It Works
1. Borg creates a deduplicated backup with a unique fingerprint (SHA-256)
2. The fingerprint is anchored on Bitcoin via a chained UTXO trail
3. Anyone can verify the backup existed at the anchored time
`
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Your Files │ ──▶ │ Borg Backup │ ──▶ │ Bitcoin TX │
│ │ │ fingerprint │ │ timestamp │
└─────────────┘ └─────────────┘ └─────────────┘
`Files
After initialization, your backup directory contains:
`
~/backups/
├── .borg-anchor.json # Configuration
├── .blocktrail.json # Bitcoin trail state
├── .git/ # Git repo (holds keys)
└── repo/ # Borg repository
`Projects are also registered globally for the dashboard:
`
~/.borg-anchor/
└── projects.json # List of all borg-anchor projects
`Verification
To verify a backup:
`bash
Get the fingerprint
borg info ~/backups/repo::my-backup | grep fingerprintCheck it's anchored
borg-anchor verify my-backup
`The fingerprint in your backup must match the fingerprint recorded on Bitcoin.
Networks
| Network | Flag | Use Case |
|---------|------|----------|
|
tbtc4 | --network tbtc4 | Testing (free, default) |
| btc | --network btc` | Production (real Bitcoin) |AGPL-3.0