Data & ownership
The exit button is a file
Ditto can gather a Nostr history onto a device and send it back to a different relay. The useful part is the restore. The limits matter too.
Owning an account is one thing; keeping its history is another. Ditto’s import and export tools give that distinction a practical form: a file on the reader’s own disk, and a way to put its contents back on the network.
In a guide surfaced in today’s reading, Derek Ross describes fetching signed events from the user’s relays into a local database, then downloading a JSONL archive. Notes, reactions, follows, relay lists, long-form posts and deletions all belong in it. The archive records events; it does not bundle the photographs and other media their links point to.
The other limit is what remains to be collected. As Ross puts it, If every relay pruned a post, that post is gone from the network.
An export can preserve what the relays still hold. It cannot recover a history that has already disappeared from all of them.
Import is the more consequential half. The file can go back through Ditto, which checks its lines before publication. Valid signed events retain their signatures; unsigned entries become templates for the user to sign individually. Events belonging to another account are counted as warnings and are neither re-signed nor published.
There is also a route without the file transfer. Add a new write relay and Ditto can offer it the archive already on the device. A fresh server need not begin with a blank account history merely because it was added after the posts were written.
Interrupted transfers resume from remembered progress. A full network scan can search for older material again; a full network push can resend an archive to a relay that has lost its copy. The promise is modest enough to be useful: ownership includes a recoverable copy, and moving services should not require starting over.