> ## Documentation Index
> Fetch the complete documentation index at: https://corridor.udokaam.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR 0003: A reference in each chain's native memo

> One 32-byte Corridor Reference rides in Tempo's TIP-20 memo, Solana's SPL Memo, Zcash's encrypted memo and the partner's free-text field. Reconciliation is a join, with no indexer.

## Context

A payment touches up to four venues. Matching them by amounts and timestamps is fragile; maintaining an off-chain index of transaction hashes per payment is a second source of truth that can drift.

## Decision

**Every movement carries the same 32-byte Corridor Reference** in the venue's native field. On Tempo the memo is an indexed event topic, so `eth_getLogs` filters by reference directly. The layout encodes version, kind, currency pair, flags, a UUIDv7, a keyed customer tag and a checksum.

## Consequences

* Reconciliation is a join on the reference, the same on every venue.
* No customer identity on-chain: the customer tag is a keyed hash.
* A wrong or truncated reference fails its checksum instead of silently matching nothing.
* 32 bytes is fixed: new fields need a new version, and decoders reject unknown versions.

## Alternatives rejected

* **An indexer keyed by transaction hash:** a second source of truth that must itself be reconciled.
* **Free-form memos:** not fixed size, not checksummed, and too easy to leak customer data into.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.