Skip to content

What is on the blockchain, and what is not

Cabdell has three layers. The blockchain holds the record: who did what, when, and the fingerprint of every text. IPFS holds the texts themselves, which can be checked against those fingerprints. Everything else, from the feed and profiles to search and the Peer-reviewed seal, is computed from the first two by services that anyone could build again from the published rules. This page says what belongs to each layer.

you, in the browser
|
v
+-----------+ prepares a transaction +-------------+
| web app | -------------------------> | your wallet | holds your key and signs
+-----------+ +-------------+
^ |
| reads (API) | signed transaction
| v
+-----------+ reads events +-------------------------------+
| indexer | <------------------------- | Algorand: Cabdell contract |
+-----------+ | boxes: the current records |
| | | events: the whole history |
| +--> ORCID, Zenodo, DataCite, +-------------------------------+
| OpenAlex: checks, cached
v
+----------------------------------------------+
| IPFS: article folders, review and comment |
| texts; pinned by their authors, with a |
| second copy on the indexer's own node |
+----------------------------------------------+

The Cabdell contract is a program on Algorand (an “application”, in Algorand’s terms). It checks every rule of the protocol: who may vote, what each status allows, how reputation is computed, what each deposit must be.

  • It cannot be modified or deleted. It has no update path, and the account that deployed it has no privileges left. A new version of the contract is a new application, with its own records: contract v4 (D-163), the candidate for MainNet, restarts TestNet with a new application.
  • One application per network. On TestNet it is application 773893388 (contract v4), live since 8 October 2026. The previous TestNet applications (772983107 and 772965337) stay on the blockchain, but they are no longer listed. MainNet opens later, after an independent audit of the contract; the two networks never mix. Current values are in Networks and addresses.

For every article, the contract stores its number, its author (the publishing address), its primary and secondary fields, its type, the article it amends (if any), its status, its version number, the fingerprints of its current and previous versions, its dates, the total weight of the votes it received and how many, its declared co-authors and who confirmed, its reviews, comments, votes and flags. It also stores each address’s reputation per field, the list of fields and the governance address.

These records live in boxes: small named records in the application’s storage, each paid for by a deposit from the person whose action created it (see Costs and deposits).

Box One per Holds
field registered field its name
article article the article record described above
co-author author of an article, the submitter included whether they confirmed, and how much reputation they claimed
review review reviewer, fingerprint of the text, recommendation, date, weight of its “useful” votes
reviewer index reviewer of an article makes sure each person reviews an article only once
comment comment author, fingerprint of the text, the comment it replies to, date, votes, whether resolved
vote vote for an article, a review or a comment its weight, the reputation it granted, its date
flag flag in a round, until it is settled reason, weight, date, the bond held
dispute outcome round that became a dispute how it ended: pending, cleared, retracted or expired
damping counter pair of addresses, giver and receiver how many times the giver has given to the receiver, so that repeated votes count less
reputation address and field reputation, how much was received today, and the day the record was created

A flag’s record is the only one ever deleted: its settlement deletes it once its round is over, returns its deposit and returns, pays out or keeps its bond (see Flags, disputes and governance).

Every action also writes an event: a short log entry on the blockchain that says what happened, such as Published, Versioned, Reviewed, Voted, Flagged or ReputationChanged. Boxes hold the current state; events hold the history. The list of earlier versions of an article, for example, is rebuilt from its events. The events contain enough to rebuild every record without reading the boxes, a settled flag’s included. Each event carries a number, 1 for the first and one more for each event after it, so a reader can tell when it has missed one.

Some actions are events only, with no box and no deposit:

  • linking an ORCID iD, declaring a DOI, and following someone;
  • (outside the contract) changes to public lists, which are notes on payments of 0 ALGO to oneself.

The full list of methods and events is in Contract methods and events.

What Where it lives Why
article texts and figures IPFS, as a folder; the blockchain holds its 36-byte fingerprint texts are too large for a blockchain, and the fingerprint proves they were not changed
review and comment texts IPFS, as one file each; the blockchain holds the fingerprint same reason
feed, profiles, inbox, search, citations, Thread Score, the Peer-reviewed seal the Cabdell indexer computed from the blockchain and IPFS; anyone can compute them again
whether an ORCID iD or a DOI is verified, OpenAlex counts the indexer, as cached checks they depend on outside services
names ending in .algo NFD, a naming service on Algorand, asked by Cabdell’s server a convenience chosen by each address’s owner
private lists, your pinning-service key, theme, recent searches your browser only they concern only you
browser notification subscriptions Cabdell’s web server to send notifications when your browser is closed
the permission to create Zenodo drafts a sealed cookie in your browser, for at most an hour it is only needed while preparing a draft
your private key your wallet only Cabdell never sees it

How the texts are stored, and who keeps copies, is explained in Storage: IPFS, pins and copies. What becomes public and permanent when you act is summarised in Privacy and permanence.

The Cabdell indexer reads every Cabdell transaction from the blockchain, starting at the round in which the application was created, and builds a database from the events. Its API, at https://api.cabdell.press/testnet, is what the website shows. It also:

  • downloads each article from IPFS, checks that the folder is complete and that its header matches what was declared on the blockchain, and marks the result (valid, mismatch, malformed, unavailable or oversized). A problem is shown as a warning, never hidden; the article stays valid on the blockchain;
  • keeps a second copy of every article it validated, and of every review and comment text;
  • computes the ranking, citations, Thread Score and the seal.

The indexer is never an authority. It can drop its tables and rebuild them from the stored events, or start from zero and read the chain again, and it must arrive at the same records. If the chain ever contradicted the indexer’s rules, the indexer would stop at that round and report it rather than guess. Every API response names its network and application id, and the indexer refuses to start if the Algorand node it reads reports a different network. To check Cabdell without trusting cabdell.press, see Verify without trusting cabdell.press and Run an indexer.

Some facts cannot be proven on the blockchain. Linking an ORCID iD or declaring a DOI is recorded there; whether it is true is checked outside it, and the result is cached by the indexer.

Check Service Verified when Checked again
ORCID iD the public ORCID record the record lists your Cabdell profile among its websites about every ten minutes for two days after you link it, then weekly
DOI the Zenodo record (or DataCite on MainNet) the record is published and says it is identical to the article page and, for one version, to that version’s content weekly, and more often in the two days after a declaration not verified yet
citation counts and works per field OpenAlex, an open index of scholarly works for verified ORCID iDs with the ORCID record
works in common of a reviewer and an author OpenAlex for the seal’s conflict-of-interest rule every 30 days

Readers see an ORCID iD only once it is verified, and a DOI once it is verified or, when its registry cannot be checked, as declared by an author; none of these checks ever changes anyone’s reputation. When the indexer is rebuilt, the declarations come back from the blockchain and the checks are asked again from those services.

The web app: an interface that never holds keys

Section titled “The web app: an interface that never holds keys”

The website is one window onto the blockchain. It prepares each transaction, shows its exact cost, and hands it to your wallet, which signs it; Cabdell never sees your key (see Wallets and your address). Before enabling any button that signs, it checks that your wallet is on the same network as the page.

Its server does a few things for convenience, never for authority: it looks up .algo names so that your browser never contacts NFD, prepares Zenodo drafts with the permission you give, sends browser notifications, and reports the state of each part on the status page. Your pinning-service key goes from your browser straight to that service, never to Cabdell’s servers.

Anyone can build another window from the same data. See Host the full stack.