Markdown Provenance
A Claude Code slash command for uploading markdown files to Arweave permanent storage.
Why Provenance Matters
In an age where AI generates millions of pieces of content daily, proving the authenticity and origin of your work has never been more important. Strong provenance means your content has four cryptographically verifiable properties: it's permanent (cannot be deleted or altered), precisely timestamped (proving exactly when it was created), signed (your wallet's cryptographic signature proves you uploaded it), and unconstrained (anyone can verify it). By uploading your markdown to Arweave, you anchor something ephemeral into the real time domain with assurances around permanence—proving you authored this content at this specific moment, before anyone else could copy, modify, or claim it.
This matters whether you're a writer establishing priority over your ideas, a researcher documenting findings, or anyone who needs to prove "I wrote this first." As deepfakes proliferate and AI-generated content becomes indistinguishable from human work, having a tamper-proof timestamp on the blockchain provides the receipts you need. Think of it as a digital notary—permanent, global, and cryptographically secure.
Learn More About Content Provenance
Security Note
This command is explicit invocation only. It will NOT automatically trigger when you mention "arweave" or "permanent storage" in conversation. You must explicitly run /markdown-provenance to upload anything.
Quick Start
- Install the plugin (see Installation below)
- Set up your Arweave wallet (see Wallet Setup below)
- Run:
/markdown-provenance path/to/file.md
- Receive your permanent viewblock.io URL
Installation
Via Claude Code Plugin Marketplace (Recommended)
# Add the marketplace (one-time)
/plugin marketplace add https://github.com/rickmanelius/markdown-provenance
# Install the plugin
/plugin install markdown-provenance
After installation, install npm dependencies:
# Find and install dependencies in the plugin directory
cd ~/.claude/plugins/cache/markdown-provenance/markdown-provenance/*/ && npm install
Or if that path doesn't work, find it with:
find ~/.claude/plugins/cache -name "package.json" -path "*markdown-provenance*" -exec dirname {} \; | head -1 | xargs -I {} sh -c 'cd {} && npm install'
Via Git Clone (Alternative)
git clone https://github.com/rickmanelius/markdown-provenance.git
cd markdown-provenance/plugins/markdown-provenance
npm install
# Symlink the plugin to Claude plugins directory
ln -s "$(pwd)" ~/.claude/plugins/markdown-provenance
Wallet Setup
Generate a New Wallet
npx -y arweave wallet generate > wallet.json
IMPORTANT: Keep this file secure and never commit it to git!
Set Environment Variables
Add to your ~/.zshrc or ~/.bashrc:
export MP_WALLET_PATH="/path/to/your/wallet.json"
export MP_AUTHOR="Your Name" # Optional - adds Author tag to uploads
Then reload your shell:
source ~/.zshrc # or source ~/.bashrc
Fund Your Wallet (for files >100KB)
Files under 100KB are FREE via Turbo.
For larger files, you need AR tokens:
-
Get your wallet address:
npx arweave wallet address wallet.json
-
Purchase AR from an exchange (Binance, Gate.io, etc.)
-
Send AR to your wallet address
Usage
Via Claude Code
/markdown-provenance ./my-document.md
Via Command Line
cd /path/to/markdown-provenance
npm run upload ./my-document.md
Or directly:
npx tsx /path/to/markdown-provenance/scripts/upload-to-arweave.ts ./my-document.md
Options
All options are optional and can be combined:
npm run upload ./doc.md --author "Jane Doe" --fileName "my-article" --source "https://example.com/original"
| Option | Description |
|---|
--author "Name" | Override the MP_AUTHOR environment variable |
--fileName "name" | Add a File-Name tag for easier lookup on Arweave |
--source "URL" | Add a Source tag referencing the origin URL or URI |
Output
On success, you'll receive: