Danish A. · verified Dolvero customer | Dolvero
Dolvero

A review ledger anchored on-chain

Reviews nobody can delete.

Only a customer who bought an account can write one. They sign it with their own device, its fingerprint goes on-chain, and next to each review you see how the account really ended. Dolvero can reply, but cannot quietly change a thing.

Audit

Do not trust us.
Recompute it.

This page does not ask for trust, it asks to be checked. Press the button: your browser downloads the public ledger, then asks Base and Arweave directly, not our server, whether they hold the same root. None of it can be faked by us.

Live check · runs in your browser

One root.
Three independent networks.

Your browser downloads the public ledger, then asks Arweave and a Base network node directly, not our server, whether they hold the same daily root. The result is the verification record on the right, raw network replies included.

  • 0requests to Dolvero during the check, apart from the ledger
  • 2third-party networks asked directly: arweave.net and mainnet.base.org
  • 1root that has to match everywhere

Open your developer tools and watch the network requests.

Verification recordnot run yet
  1. Public ledgerdolvero.com/trust-feed.json
    Waiting
  2. Arweavepermanent copy of the root · GET arweave.net
    Waiting
  3. BaseEAS attestation · eth_call to a network node
    Waiting
  4. BitcoinOpenTimestamps seal
    Waiting
Press "Run the check" or just scroll here, the check starts on its own.
Raw network replies

Monthly transparency reports

Counts only, no names.

Every month we count what happened in the ledger: how many reviews came in, how many we hid and why, how many times we replied. A closed month is written into the ledger as a leaf and cannot be rewritten.

October 20261 Oct – 31 Oct 2026 · closed 1 Nov 2026
Closed · in the ledger
8Reviewsabout failed accounts 3
0Hiddendeleted, ever 0
1Repliesedits 0
2Daily sealsBitcoin 1 · Base 10 · Arweave 10
Signed by Michal Król, CEOsha256 7dbb9a469da93698…

How a month closes

The figures freeze, the hash goes on-chain.

November 2026day 1 / 30
Closes 1 Dec 2026 · 00:40 UTCin 0d 00:00:00
  1. 01
    The last countOn the 1st at 00:40 UTC the past month is counted one last time.
    reviews 8hidden 0replies 1seals 2
  2. 02
    The report gets its hashIt enters the daily root as a leaf, next to that day’s reviews.
    kind reportsha256 7dbb9a469da9…
  3. 03
    Immutable from then onThe root goes into Bitcoin, onto Base and onto Arweave. Nobody can change the figures any more, not even us.
    #974 047EASarweave

Verify a review by its hash

One hash, the whole proof.

Paste the sha256 from your e-mail receipt or from a review card. The page finds the record and runs the same check in your browser, without our server.

01Finds the leaf in the public ledger
02Rebuilds the daily root from the path of the leaf
03Compares it with Bitcoin, Base and Arweave

The hash is in the confirmation e-mail and on every review card.

Badge for your site

Live. From the ledger. No tracking.

For partners and comparison sites: one line of script, the figures come from the public ledger every 5 minutes. No cookies, no visitor tracking.

  • Average and countfrom every signed review
  • Three chainsBitcoin, Base and Arweave side by side
  • Links to the proofa click lands on this page
Preview
<script src="https://dolvero.com/trust-badge.js" data-theme="light" data-lang="en" async></script>

Specification

dolvero.leaf.v1
Ledgertrust-feed.json · refreshed every 5 min
Leafsha256(0x00 ‖ "dolvero.leaf.v1" ‖ salt ‖ sha256(payload))
Node and treesha256(0x01 ‖ left ‖ right)depth 16, random padding, one seal a day even with no records; neither the root nor the paths reveal how many records there are
SignatureWebAuthn passkey · ECDSA P-256 · challenge = sha256 of the canonical review text
BitcoinOpenTimestamps · ots verify day.root.ots · .root file via &what=root
BaseEAS schema 0x0f2a83ff4bb9… · bytes32 payloadSha, bytes32 leafHash, string kind, string ref, uint64 ts
ArweaveJSON record tagged App-Name: Dolvero-Trust
GitHubmichal-sudo/trust-ledger · mirror, proofs, verifier, watchdog (MIT), one commit per changeWatchdog: checking the last run…
Never publishede-mail, internal IDs, IP address (country only), totals of accounts or payouts. Breach evidence only next to the review it belongs to.
verify.mjs · node 18+
1Downloads the public ledger trust-feed.json and takes one sealed record.
2Hashes the review text and signature into a leaf and walks the tree path up to the daily root.
3Compares the result with the root that sits in Bitcoin, on Base and on Arweave. A match prints root matches.
// independent check of one record
const {createHash} = require('crypto');
const h = (...p) => createHash('sha256').update(Buffer.concat(p)).digest();
const canon = v => Array.isArray(v) ? '[' + v.map(canon).join(',') + ']'
  : v && typeof v === 'object' ? '{' + Object.keys(v).sort().map(k => JSON.stringify(k) + ':' + canon(v[k])).join(',') + '}'
  : JSON.stringify(v);
const feed = await (await fetch('https://dolvero.com/trust-feed.json')).json();
const r = feed.reviews.find(x => x.leaf && x.leaf.sealed);
const payload = canon({v: 1, kind: 'review', review: JSON.parse(r.payload), signature: r.signature});
let node = h(Buffer.from([0]), Buffer.from('dolvero.leaf.v1'), Buffer.from(r.leaf.salt, 'hex'), h(Buffer.from(payload)));
for (const s of r.leaf.path) node = s.side === 'L'
  ? h(Buffer.from([1]), Buffer.from(s.hash, 'hex'), node)
  : h(Buffer.from([1]), node, Buffer.from(s.hash, 'hex'));
console.log(node.toString('hex') === r.leaf.root ? 'root matches' : 'MISMATCH');

The same computation, just in your browser (Web Crypto) instead of Node. Nothing is sent to our server.

Questions

What people ask.

Short answers, no hashes. The technical detail is in the specification above.

Can Dolvero delete a review?
No. We can hide one from the public page, at the reviewer’s request or for legal reasons, but its hashes and the reason stay visible and the monthly report counts it. Deleting it would break the chain and the public watchdog on GitHub would flag it.
Who can write a review?
Only a customer whose account was paid for. One review per account, signed with a passkey on the customer’s own device. Positive or negative, including accounts that ended by a rule breach; for those the page itself shows the rule and the time.
What do you publish about me?
Your display name or initial, country, the product, the purchase date and how the account ended. Never your e-mail, internal IDs, IP address or totals of accounts or payouts. The exact list is in the Specification under “Never published”.
Why three chains?
Bitcoin gives the timestamp with the deepest security, Base a public attestation you can query from a browser in a second, Arweave a permanent copy of the data itself. Each works without the other two; if one disappeared, the proof would remain.
I lost the receipt e-mail. What now?
Nothing is lost. The hash is on your review card on this page and on your public profile. The receipt is a convenience, the ledger is the record.
Can I change or withdraw my review later?
The signed text cannot be edited; you can add a follow-up underneath. Withdrawal: write to us from the account e-mail, we hide the review and the page says it was hidden at your request.
How do I check a review myself?
Paste its hash into the form above or run verify.mjs from GitHub. The browser asks Base and Arweave directly, not our server; the Bitcoin seal verifies offline with ots verify.
Your experience, on the record

Bought an account? Your review belongs here.

Good or bad, it stays exactly as you sign it. Dolvero can reply, nobody can delete.

Signed by youAnchored every dayDeleted, ever: 0