Wiki · Zikaron

Recording and anchoring

Your ledger is a record book of your own: entries are written one after another, and every entry stays exactly as written. Recording adds a file to the ledger; putting it on chain lets anyone check its time.

Recording

  1. Drop a file onto Home or the Records page to open the “New record” card. Folders and Git repositories work too.
  2. Fill in “Record name”; left empty, it takes the file’s full name, extension included.
  3. Press “Add to ledger” on the card; the record is written to the ledger and joins the pending queue.

What the app records is the file’s content fingerprint: the same file always gives the same fingerprint, and changing one byte gives a wholly different one. The file itself stays where it is, and the app records its fingerprint. To record several files at once, drop them together onto the “New record” card while it is open; each gets a record of its own. A folder gives the same fingerprint on every system.

  • Keep the original files safe. To prove something later, you show the very file that matches the fingerprint.
  • Record names and notes travel with your ledger to whoever you give it to, and stay for good.
  • For short content that is easy to guess (a date, an amount), combine it with some random text in one file before recording it.

Putting it on chain

Putting entries on chain sends your new records in one transaction to the blockchain. From then on, anyone can check that they existed by that moment.

  1. New records wait under “Pending”. Click the “Pending” card on Home, which opens the “Put on chain” card; or press “Put all on chain” in the “Pending” segment of the Records page.
  2. The card shows the number of entries, the gas estimate and the gas cap.
  3. Press “Confirm and send”. A few minutes later the state turns “Confirmed”.

All the records in a batch travel in one transaction for the price of one, so sending several together costs less. You can close the app meanwhile; it picks up the wait when you open it again. The pending queue follows the ledger and the chain: entries the chain already holds leave the queue as on chain, and entries the chain lacks (adopted ones, say) join it after the next ledger check.

  • When the balance falls short, the message at the top says how much is needed and how much is there; press “Copy address” on it and send a little ETH.
  • When a batch stays out of a block for long, “Resend with higher fees” appears on the “Last batch” row of the ledger status card at the top of the Ledger page; it sends the batch again with higher fees, and the batch is paid for once.
  • When some records in the batch are already on chain (sent by the command line, say), the app sends nothing and says “Some records in this batch are already on chain; nothing was sent this time.”; once the ledger check takes those off the queue, send the rest.
  • To send after every write, turn on “Auto put on chain” in Settings › Network.

The more often you put records on chain, the more precise their time: once a day makes it precise to the day.

States

StateMeaning
PendingQueued, waiting for you to send it
Waiting to go on chainSent, waiting to get into a block
ConfirmingIn a block, waiting for the app to check it
ConfirmedChecked against the chain: done
Reverted, Not sentThis attempt did not go through; the record stays queued and can be sent again

The ledger status card at the top of the Ledger page reads “OK” or “Problems”. Every few minutes the app compares your ledger with the chain; when it says “Problems”, open “Ledger check” on the card to see which item. The Ledger page’s “Unconfirmed” lists every entry the chain has not confirmed yet; with no ledger yet, a blue “Create the ledger” sits below the table.

When something is wrong

A ledger only grows at the end. For an entry already written, there are two ways:

  • Add an explanation: “Add note” in the “More” menu of the Ledger page puts a note on that entry.
  • Delete the record: press “Delete record” at the bottom of the record’s detail page. The record is struck through and leaves the list of records you can grant; the original entry and grants already issued stay as they are.

Networks

Each identity uses one network, and its records go to that chain:

NetworkUse
Ethereum mainnetThe default, the most widely read
Arbitrum One, OP MainnetFees usually a small fraction of mainnet’s
Sepolia testnetFree to try, with test coins

Choose it in the “Network” field when you make an identity. The app comes with public nodes; to use nodes of your own, press “Edit nodes” in Settings › Network, make the change in “Edit nodes and chain” and press “Save”. To verify other people’s records anchored on another chain, add that chain under “Read-only networks” in Settings › Network.

VPN and proxy. “Proxy” in Settings › Network decides how the app’s connections to nodes go out, one setting for every identity on this computer:

System
The default. Follows the system’s proxy settings: an automatic configuration script (PAC) address set in the system comes first, then a proxy entered in the system. The script has to be at an https address or on this computer; for a script served over http from another machine, fill in “Custom proxy”, or have it served over https.
Off
Always connects straight.
Custom proxy
Pick the proxy type (HTTP, HTTPS, SOCKS5 or SOCKS4) and fill in “Host” and “Port”; for a proxy that asks who you are, fill in “User name” and the password too (SOCKS4 has “User ID” alone), then press “Save”. A whole address copied from a proxy app can be pasted into “Host”, and the app splits it into the cells. The password is kept encrypted on this computer and shows as “Password set” once saved.

Nodes on this computer are always reached straight; with a custom proxy, nodes on private networks, link-local addresses and .local names are reached straight too. The line below, “New connections now: …”, says whether connections go straight or through which proxy; after a change, the next connection follows the new setting.

  • A VPN in global mode that carries all traffic: keep “System”.
  • A VPN that only sets a system proxy: use “System”.
  • Nodes still out of reach: find the VPN’s proxy address in the VPN app (HTTP, HTTPS, SOCKS5 or SOCKS4, with a user name and password if it has them) and enter it under “Custom proxy”.
  • When the app says “The proxy cannot be reached.”, check the address; when it says “The proxy asks for a user name and password.” or “The proxy refused the user name and password.”, fill in the right ones under “Custom proxy”.

When the command line works through the desktop app, or with a credential puts entries on chain, scans the chain or looks up an encryption recipient’s public key, it uses these settings too; with “System”, it follows the system’s proxy settings alone. On its own, the command line’s --proxy system (the default) follows the terminal’s https_proxy, http_proxy and all_proxy first (with no_proxy), and the system’s proxy settings when none of those three is set.