YunZheng Credits

Ledger proofs

Once a day, the Debit and Chips ledger is sealed into one fingerprint, linked to the one before it and timestamped on the Bitcoin blockchain through OpenTimestamps. Anyone can check that the published history has not been changed, and you can check that your own entries are part of it. Built on Orbit.

What is published

  • For each day: a fingerprint of all ledger entries of that day, the fingerprint of the day before, and how many entries there were.
  • A timestamp proof for each fingerprint, usually confirmed in a Bitcoin block within a day.

Never published: names, email addresses, account IDs, amounts or balances. Each entry is fingerprinted with a private pseudonym that cannot be linked to an account from outside.

Check a proof file

Choose a proof file you downloaded here (.json). Nothing is uploaded.

Your entries

Sign in to get proofs for your own entries.

Daily fingerprints

Anchor 2 · 2026-09-28

Waiting for a Bitcoin block
Period (UTC)
2026-09-28 00:00 – 12:30
Entries
9
Lines
18
Fingerprint of the entries
2762fb5623aca358827215791f885dc48268c28fe10cecbf1eea9340c04ceebb
Previous anchor
eed7f0a19246274149229e2886741ee101db093e9076e0e20f81bb5af5c1dd57
Anchor fingerprint
44d35a82b27a45690513931f2fdbf38349a626f753ca07a412c78b8bd3c4a109

Part of a day: the rest of the day is in the next anchor.

Anchor 1 · 2026-09-27

Waiting for a Bitcoin block
Period (UTC)
2026-09-27 00:00 – 2026-09-28 00:00
Entries
0
Lines
0
Fingerprint of the entries
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Previous anchor
0000000000000000000000000000000000000000000000000000000000000000
Anchor fingerprint
eed7f0a19246274149229e2886741ee101db093e9076e0e20f81bb5af5c1dd57

How to verify

With the open-source OpenTimestamps client:

  1. Download the record and the timestamp proof of an anchor into one folder.
  2. Install the client:
    pip install opentimestamps-client
  3. See what the proof contains:
    ots info credits-anchor-2.txt.ots
  4. While it is waiting for a Bitcoin block, fetch the completed proof (updates the file):
    ots upgrade credits-anchor-2.txt.ots
  5. Once confirmed, check it against the Bitcoin blockchain with your own Bitcoin node:
    ots verify credits-anchor-2.txt.ots
  6. Or without a node: the client prints the block and the value to look up in any block explorer:
    ots --no-bitcoin verify credits-anchor-2.txt.ots
  7. Each record's "prev" line is the SHA-256 of the record before it:
    shasum -a 256 credits-anchor-1.txt     # macOS
    sha256sum credits-anchor-1.txt         # Linux
  8. The proof for one of your entries is a JSON file. Check it on this page, or by hand with the specification below.

Specification

Lines. One line per posting of every entry created in the period (both currencies; test-account entries excluded):

yzc-leaf-v1|<entry id>|<account pseudonym>|<USD or CHIPS>|<amount>|<balance after>|<created at>|<idempotency key hash>

  • Amounts are integers: micro-US-dollars for USD (1 USD = 1,000,000), whole Chips for CHIPS; negative for money leaving the account.
  • The account pseudonym (32 hex) and the idempotency key hash (64 hex) are HMAC-SHA-256 values under a private key, so they cannot be linked to an account from outside.
  • Lines are sorted by created at, then entry id, then pseudonym.

Tree. Line hash = SHA-256(0x00 ‖ UTF-8 line). Node = SHA-256(0x01 ‖ left ‖ right). Pairs are formed left to right on each level; an odd last node moves up unchanged. An empty period has the fingerprint SHA-256 of nothing (e3b0c442…b855). A proof path lists, from the line upwards, each sibling and the side it is on (L or R).

Record. The text that is timestamped, UTF-8 with a newline after each line:

YunZheng Credits ledger anchor v1
seq: <n>
window: <start>/<end>
entries: <entries>
leaves: <lines>
merkle_root: <fingerprint of the entries>
prev: <anchor fingerprint of seq n-1, or 64 zeros>

Anchor fingerprint = SHA-256 of the record. It is submitted to several public OpenTimestamps calendars; the .ots file is the combined proof. Periods are consecutive, each within one UTC day.