Wikipedia for files
Arca is a shared library that people everywhere build together. Anyone can add files, anyone can search and read them, and the people who keep them safe are paid for it. No servers: every app is a relay, every byte travels over I2P, and a phone is a full participant.
Files vanish
Radio archives, maps, books, recordings, manuals, family photos and community records live on single servers and personal drives. They disappear when one person stops paying or one service shuts down. Arca gives files what Wikipedia gave articles.
Six ideas at the heart of Arca
Each one exists somewhere on its own. Arca is the first to put them together for files.
Proof of Keeping
Mining is keeping files people chose to keep. Keepers prove every day that they still hold their copies and earn marcas for it. The more meaningful data people keep, the stronger the network.
Circles that curate, like Wikipedia
Communities build collections together: anyone proposes, moderators accept, every version is signed. Members who dislike their moderators fork the circle with their disks the same day.
Every client is a relay
Identities, comments, likes and edits are Nostr events. There are no relay servers: every Arca app stores and answers them itself, over I2P, so no server ever learns an IP address.
Phones are full participants
The chain keeps state, not history. A phone follows headers, reads its balance with Merkle proofs and drops any block an honest node proves wrong with a few-KB fraud proof.
Private money, public keeping
Payments hide amounts, payer and payee (Mimblewimble with stealth outputs). What earns stays public and auditable: anyone can check that no marca was ever made from nothing.
Files that carry their knowledge
Each file's description and subtitles sit next to it as Talk.arca.json and Talk.en.srt. Subtitles are made on the device by whisper.cpp, so speech becomes searchable.
How a file lives in Arca
From a proposal to a library that pays the people who keep it.
| Role | Does | Gets |
|---|---|---|
| Reader | browses, searches, downloads | a free daily allowance; a 24-hour pass for more |
| Contributor | proposes files, folders and descriptions | a share of the circle's pool if its policy says so |
| Keeper | keeps collections on disk, proves it daily, serves downloads | marcas through the pool, free access, pass revenue for bytes served |
| Moderator | reviews proposals, admits members, signs the circle's index | a share of the pool if the policy says so |
| Circle | curates collections under its own rules | marcas through its members' keeping, and trust shown in search |
Proof of Keeping
One coin, the marca, created only by the global chain on a fixed schedule. Its mining input is the keeping of data someone chose to keep. The rules are built so that faking it always costs more than doing it.
The replication curve
Rewards for a piece of data rise with each keeper up to ten copies, then freeze and are split among all. The incentive: be one of the first ten keepers of something worth keeping.
Total reward of a piece of data by number of copies (n squared over 100 of ten copies' worth, frozen from the eleventh).
Two budgets each day
- Storage pays for bytes kept, deduplicated, so even rarely read archives are kept.
- Interest pays for what the wider library wants: keepers from other circles and paid reading, never free clicks.
- Half of every pass is burned, so buying your own popularity always loses half.
- Only a third of standing passes on, so rings of circles keeping each other's junk are capped at 1.5x honest earnings.
Every copy is unique
Each chunk is stored XOR a memory-hard keystream of the keeper's key. Remaking a slice costs 1,355x reading it (measured, testnet), so one disk cannot pretend to be a hundred.
Speed buys nothing
A clock names random slices once a second; a faster disk reads no more of them. A Raspberry Pi with used disks competes.
Caught within a day
Each day names one random chunk per declared partition; a missed or wrong 2 KB proof drops everything the keeper had built up.
Private by construction
Arca publishes what must be checked to be rewarded, and nothing that maps a person or a machine to a place or a time.
I2P only
No clearnet path, no relay on the internet, no server that learns an address. The pure Dart I2P node runs inside the app.
Separate profiles
Each profile has its own key and I2P address; nothing links two profiles unless their owner does.
Nothing that locates you
Latency, throughput and serving limits never leave the device. Search history and opened files stay local.
Private payments
Pedersen commitments, Bulletproof range proofs and stealth outputs: amounts, payers and payees hidden; supply still auditable by anyone.
What works today
A working prototype for Linux and Android, tested on the live I2P network and on a public test network of its own chain. Test marcas have no value.
| Area | Working now | Next |
|---|---|---|
| Profiles | Several per device, own key and I2P address, encrypted vaults, import and export | passphrases |
| Network | Embedded I2P node, one destination per profile, self-healing | per-destination tunnel pools |
| Collections | Create, edit, moderators, suggestions, follow and keep copies fetched over I2P | review queues, quotas |
| Media | Previews, playback, on-device subtitles (whisper.cpp) | text extraction, OCR |
| Search | Words in titles, paths, tags, descriptions; SHA-256 and SHA-1 | full text, similarity (TLSH, PDQ), circle catalogs |
| Chain | Packing, mining, daily proofs, rewards, circles and anchors, payouts, passes, fraud proofs, light clients, private marcas | an always-on public seed |
Download and try it
No account, no setup: the app creates a profile and an I2P address on first launch. Join the test network from the wallet with one button (test marcas have no value).
Download once: Arca updates itself over I2P. New versions are announced with a signature by Arca's release key and travel from device to device over I2P, checked by their SHA-256; Arca downloads them in the background and installs on your click (Settings, About). Android users of 0.1.0: uninstall it once and install 0.1.1 by hand, after exporting your profile key, since 0.1.0 was signed with a temporary key.
All releases, checksums and the speech models: github.com/x1watt/arca/releases. Arca is a prototype: expect rough edges, and keep backups of files you care about.
Build from source
Build the app, open it, and you have a profile, an I2P address and a library. Join the test network from the wallet with one button.
git clone --recursive https://github.com/x1watt/arca git clone https://github.com/x1watt/i2p-dart cd arca/app flutter build linux # or: flutter build apk
Then
- Create a collection from a folder and describe your files.
- Share your address so others follow, comment and suggest edits.
- Keep a copy of a collection you care about.
- Download a speech model for subtitles in Settings.
- In the wallet: "Take part in the test network".
Read more: the whitepaper, the architecture, running a seed node, and the draft web archive format.