Agreely Français

Tamper-evident record

Verify a decision

Paste a decision id to verify it was recorded and has not been altered.

Verified: recorded and unaltered

This decision was recorded and has not been altered since. Its proof is anchored on the public Base chain.

Recorded decision
analytics : accepted functional : accepted marketing : accepted
Type
grant
Recorded at (UTC)
2026-08-10T13:48:55Z
Banner shown (fingerprint)
0x8e4146690855c6dda3be080de0b5ce8d0e49242d3cb931d45843ef3287f0353c
Banner version
1
Cryptographic commitment
0xd0ae44fe4b0a22ede6a3fb1228fc348c0ad525c26b67c751e3887040bb6c33e6
  1. 1 Epoch root (Merkle)0x008448fd63fa7c8d2381c546789e8cb12bb6f7d3f636cac76c3b4a3f7069359a
  2. 2 Merkle inclusion path 0x2ff5984b116a4e8c7dbd7bbfe2fbf31355125d4cfeb597a5ca6f323ce1f3619e
  3. 3 On-chain transaction0x1e3a233ac8669f4fe0038d524883845917e0883b464ac1086c29d47312d542d6
View on Basescan

Recomputed in your browser

This block redoes the calculations above directly in your browser, from the values this page shows. Nothing is sent to Agreely while it runs.

  1. waiting computing matches differs undetermined

    Commitment recomputed

    keccak256( JCS(boundClaim) || salt )

    Shown by the register
    0xd0ae…33e6
    Recomputed here
    waiting
  2. waiting computing matches differs undetermined

    Row hash recomputed

    keccak256( prevHash || JCS({chain_seq, action, config_version, occurred_at, commitment}) )

    Shown by the register
    0xe40f…4ddd
    Recomputed here
    waiting
  3. waiting computing matches differs undetermined

    Merkle fold up to the root

    keccak256( min(a, b) || max(a, b) ), from the row hash up to the epoch root

    Shown by the register
    0x0084…359a
    Recomputed here
    waiting
  4. waiting computing matches differs undetermined

    Signature of the organization's DID key

    Ed25519( JCS(epoch descriptor), public key )

    Registered public key
    0x3b61…e4f4
    Recomputed here
    waiting
  5. public fact

    Anchor on the public chain

    This block does not read the chain. The anchor is checked on the public explorer, outside Agreely.

    On-chain transaction
    0x1e3a…42d6

    View on Basescan

This recomputation did not happen: JavaScript is not active in this browser, or the module could not load. That is not a verification failure. The statement above is complete on its own, and the recipe further down lets you redo all of it yourself.

This recomputation does run in your browser, but the code running it comes from the same origin as the statement above. For a genuinely independent check, redo the offline recipe further down with your own tools.

Recompute it yourself

The bound claim, the salt, the previous hash and the sequence number are revealed so anyone can recompute everything offline, without trusting the displayed value.

Bound claim (canonical JSON)
{"action":"grant","banner_locale":"fr","company_id":"1c990b4f-9a7c-4349-97bc-4b7a4f045ad7","config_hash":"0x8e4146690855c6dda3be080de0b5ce8d0e49242d3cb931d45843ef3287f0353c","config_version":"1","consent_id":"a4ff4c25-d5bf-4dd2-930f-3260d38a0667","decisions":"{\"analytics\":true,\"functional\":true,\"marketing\":true}","ip_trunc":null,"occurred_at":"2026-08-10T13:48:55Z","user_agent":null,"website_id":"6c0f602c-d82a-4eb0-955b-2464f97764c5"}
Salt
0x111431bccda17798954aa34516f3e7a139c136b043f9a9953ee4453cd375f8ac
Cryptographic commitment
0xd0ae44fe4b0a22ede6a3fb1228fc348c0ad525c26b67c751e3887040bb6c33e6
Previous hash (prev_hash)
0xa0d5edd354dae0d9c9db21013de8de53cce3780677bb0fa092799303f65578ff
Sequence number (chain_seq)
15
  1. 1 Recompute the commitment and compare it to the commitment shown abovecommitment = keccak256( JCS(claim) || salt )
  2. 2 Recompute the row hashrowHash = keccak256( prevHash || JCS({chain_seq, action, config_version, occurred_at, commitment}) )
  3. 3 Fold the row hash along the inclusion path to the anchored root.
Full recipe (pseudo-code)
rowHash = keccak256( fromHex(prevHash) || JCS({chain_seq: chainSeq, action, config_version, occurred_at, commitment}) ) with keys sorted; leaf = rowHash; root = commutative-keccak fold of leaf with the inclusion path

Why is there no "request my data" button?

This record is designed to contain nothing that could identify you, directly or indirectly: it logs a cookie choice, not a person. To the extent it cannot identify you, it does not constitute personal information under the law.

Your right to access and correct your personal information applies to the personal information held by the site you visited, exercised with its person in charge of the protection of personal information, named in its privacy policy. It is not this decision record you should request from them.

Agreely provides tamper-evidence (that the decision was recorded and has not been altered), and helps you document and demonstrate your compliance. It is not a compliance guarantee in itself.