25 min

The correspondent relay

No bank has branches everywhere, so a payment hops through partner banks called correspondents, and each hop adds a fee, a delay and a fresh point of failure. One of those hops screens the payment against sanctions lists (AML, anti-money-laundering checks, defined here at first use), and a compliance hold can dwarf every other delay.

Where you are. Lesson 1 built the wall: two Worlds, dollars and yen, each complete in itself, with no account bridging them and no central bank above both. Lesson 2 sent across the only thing that can cross - the instruction - and proved with a diff that receiving it moves no money at all. So you arrive holding an awkward pair: a message that travels but changes nothing, and value that changes things but cannot travel. This lesson adds the machinery that resolves the pair, a relationship between commercial banks that turns one impossible international payment into a relay of ordinary domestic ones.

The answer is already in Tokyo

In New York, ann banks at Alder and needs to pay hana, who banks at Kiri in Tokyo, 2,400 dollars’ worth of yen. After two lessons of walls, this feels like it should need heroic machinery: a world central bank, a shared ledger spanning the Pacific, some treaty-grade rail the course has hidden from you. There is no such rail. There has never needed to be.

The actual answer is embarrassingly old, and it fits in one sentence: Alder keeps money at Kiri. Years before ann asked, Alder opened an ordinary deposit account on Kiri’s books - the same kind of account ann holds at Alder - wired yen into it, and left the balance sitting there for exactly this moment. When ann’s payment arrives, no money attempts the border. Alder takes ann’s dollars at home, sends Kiri the instruction, and Kiri pays hana out of the balance Alder parked. Two closed zones, stitched together by banks doing the most banal thing imaginable: banking with each other.

The idea in one paragraph

Correspondent banking crosses the border by refusing to cross it. Banks that hold accounts with each other turn one impossible international payment into a relay of possible domestic ones: the dollar leg settles in the dollar World, on Alder’s own books; the instruction crosses the border the way lesson 2 showed instructions do; and the yen leg settles in the yen World, paid out of the account Alder keeps at Kiri, funded with yen in advance. At no point does money cross anything - the border is crossed by a message and a parked balance. The price of the trick is the relay itself: every hop is a bank, and every bank charges a fee, keeps its own hours and can say no. One hop is a compliance checkpoint, where the payment stops to be screened against sanctions lists, and that hold can dwarf every other delay in the chain.

Hop 1: the dollars stop at home

Watch the exercise run the first hop before you build the rest. At minute 540 - nine in the morning, dollar-zone time - ann asks Alder to pay hana. Alder does the only thing a bank in a closed World can do: a domestic payment. Through the same two-phase submit and settle every rail in module 2 used, ann’s deposit goes down 2,400 and an account Alder holds on its own books, alder settlement, goes up 2,400. Both accounts sit on one ledger, so this is module 0’s same-bank run: two edits to Alder’s liabilities that cancel, while tier 1 sleeps.

Read what it means rather than what it does. ann is finished: her part of an international payment was an ordinary domestic one, and she is paid out of the story four minutes in. And the dollars now belong to Alder. They will never leave this World - there is nowhere for them to go - and they are not lost or in transit. They are Alder’s compensation, collected at home, for the yen its Tokyo balance is about to give up.

Hop 2: the queue for human eyes

The instruction leaves Alder and, four stylised minutes later, lands at Kiri: lesson 2’s relay, performing the only crossing this payment will ever make. Then it stops, and stays stopped for four hours.

The stop is not congestion, and it is not distance. Kiri is legally obliged to know whose money it is about to move. Every jurisdiction wraps its own statutes around that one invariant, and the family of rules is called AML, anti-money-laundering: the obligation on a bank to identify the people behind a payment, watch for the patterns of laundering, and refuse to pay the people, firms and places its government has listed. The face of AML a payment actually meets is the sanctions screen from module 2’s ISO 20022 lesson: every name on the instruction checked against the lists, every near-miss parked for a human to clear. Structured fields shrank the false alarms; they did not abolish the queue. The exercise’s four hours is a stylised number, but the mechanism is real, and it is the largest single line in this payment’s travel time.

Hop 3: paid from the parked balance

Released, the instruction reaches its last hop, and Kiri does something almost anticlimactic: one balanced posting on its own books. The account it holds in Alder’s name goes down 2,400; hana’s deposit goes up 2,400. Both legs are deposits - Kiri’s liabilities - so the posting balances with no asset stirring, module 1’s double-entry rule working unchanged in Tokyo. No reserves move. No central bank hears about it. The final leg of a payment that “went to Japan” is module 0’s same-bank payment, and assert_world() passes as if nothing foreign ever happened.

What made the hop possible has been sitting on Kiri’s books since before the lesson started: the balance Alder parked there. Seen from Kiri, it is one deposit account among thousands. Seen from Alder’s chair it is “ours at theirs”, and the trade’s shorthand names it from that chair:

Hold on to the “ours”. On Alder’s balance sheet the nostro sits on the asset side, next to reserves and loans: money Alder owns that happens to live abroad. Lesson 4 walks around the desk and looks at this same account from Kiri’s side, where it carries a different name and the opposite sign; lesson 5 asks what keeping it funded actually costs.

dollar zone yen zone the border: only the instruction crosses it Alder origin bank, New York ann -2,400 alder settlement +2,400 the dollars stop here hop 1: the dollar leg, settled at home a fee is charged at every hop instruction: 4 min screening AML watchlist check hold: 240 min hop 2: compliance, not distance Kiri correspondent bank, Tokyo the nostro alder 50,000 -> 47,600 Alder's money, on Kiri's books hana +2,400 hop 3: the yen leg, paid at home cutoff: after 17:00, it waits for tomorrow
The correspondent relay: the dollar leg settles inside Alder, only the instruction crosses the border into screening, and Kiri pays hana from the nostro Alder funded in advance

Wider than the screen; scroll it sideways.

Review

Crossing the border by refusing to cross it

Correspondent banking crosses the border by refusing to cross it. Banks that hold accounts with each other turn one impossible international payment into a relay of possible domestic ones. The dollar leg settles in the dollar world on the sending bank’s own books; the instruction crosses the border the way instructions do; and the yen leg settles in the yen world, paid out of the account the sending bank keeps in Tokyo, funded with yen in advance. At no point does money cross anything. The border is crossed by a message and a parked balance.

Every hop is a bank, and one of them screens you

The price of the trick is the relay itself. Every hop is a bank, and every bank charges a fee, keeps its own hours and can say no. That is three separate costs, and only the first appears on a price list. One hop is a compliance checkpoint, where the payment stops to be screened against sanctions lists, and that hold can dwarf every other delay in the chain. It is worth being precise about why: the other delays are mechanical, set by opening hours and settlement cycles you can read off a timetable, while this one is a decision made by a person about your payment, on no schedule at all.

Check yourself

1. The payment “went from New York to Tokyo”. List what actually crossed the border, and what only changed owner at home.

Exactly one thing crossed: the instruction - lesson 2’s message, four minutes of relay plus four hours of screening. The value never travelled; it changed owner twice, at home, in two places. The dollars moved between two accounts on Alder’s books (ann down, Alder’s settlement account up), and the yen moved between two accounts on Kiri’s (the nostro down, hana up). The border was crossed by a message and a balance parked years in advance.

2. Kiri’s payout posting has two legs, both deposits, and touches no reserves. Why does it balance, and which earlier lesson is it a rerun of?

Both legs are liabilities on Kiri’s sheet, equal and opposite, so the changes cancel and module 1’s rule - dAssets equals dLiabilities plus dEquity - holds with every asset untouched. It is module 0’s same-bank run: two IOU edits cancelling inside one bank while tier 1 sleeps. That is the correspondent trick stated as a posting: arrange the accounts so that every leg of an international payment is a domestic edit somewhere.

3. The screen checks hana, finds no match, and still holds the payment for 240 minutes. Why do clean payments wait, and what happens to a true match instead?

Every payment is screened, and the queue exists for the near-misses: names that resemble a listed one and need human eyes to clear. Module 2’s ISO 20022 lesson showed structured fields cutting the false alarms, not the checking. A true match is never held - it is refused on the spot, because paying it is the crime the apparatus exists to prevent. The delay is therefore a cost paid entirely by honest traffic.

4. On the two-tier map, what kind of money is the 50,000 Alder keeps at Kiri, and what risk does it carry that reserves do not?

It is tier-2 money: a deposit, Kiri’s IOU, an entry on a commercial bank’s ledger. Reserves sit on the central bank’s ledger, the one balance that cannot fail to be honoured; a nostro is a commercial promise, good exactly as long as Kiri is. Domestic interbank legs settle in tier-1 money, but no shared tier 1 exists between currency zones, so cross-border value rides on commercial credit - and a failed correspondent turns the nostro into a bankruptcy claim.

5. Of the 244 minutes the relay took, the ledger edits took none. Where did the time go, and why would a faster network barely help?

Four minutes was the message crossing; 240 was the compliance hold; the postings themselves were instant. A faster network attacks the four minutes, which is already the smallest term. The hold is a queue for human review, and it shrinks with better data and more reviewers, not more bandwidth. Lesson 6 stacks cutoffs and time zones on top of this hold, which is where cross-border payments find their days.

Do this

Twenty minutes, from module-03-across-borders; the script adds the repo root to its own path, so the miniledger import resolves on its own. Open code/correspondent_relay.py. build_zones is written, and it is lesson 1’s wall with one new brick: the dollar World with ann’s 10,000, the yen World with hana’s 2,000, and a deposit account at Kiri opened in Alder’s name and endowed with 50,000 - the nostro, funded in advance. Amounts are dollar-equivalent units at a deliberate one-to-one rate; lesson 7 prices the conversion honestly. The relay’s tolls are also deferred: today every hop charges nothing, so the clock is the only cost on screen - lesson 6 adds the per-hop fees.

Work the TODO(you) markers in the two functions that carry the lesson. screen checks the payee against the watchlist: a true match raises LedgerError with REFUSED, and everything else waits out SCREENING_HOLD minutes before release. yen_leg is one balanced posting on Kiri’s books - Alder’s account down by the amount, hana’s up by the same - followed by assert_world().

python3 code/correspondent_relay.py

Green prints one line per hop and ends with exactly:

relay complete: three hops, every ledger balanced, and the screening hold was 240 of the 244 minutes - compliance, not distance, set the travel time

If unbalanced posting greets you, your two legs do not cancel: you moved both deposits the same direction, and Kiri’s sheet refused to record half a payment. If the travel-time assert fires, screen returned the arrival minute instead of arrival plus hold. And once you are green, run the refusal: change the payee in the screen call to 'vex holdings' and the run dies at hop 2 with REFUSED: 'vex holdings' is on the watchlist - refused, not held, the asymmetry from this lesson made executable. The completed version is solutions/correspondent_relay.py; compare after you are green.

What you can now do. You can settle a payment between two Worlds that share no account, no ledger and no central bank, and name every piece of the machinery that did it: a correspondent bank executing the local leg, a nostro funded in advance to pay it from, an instruction performing the only real crossing, and a screening hold setting nearly all of the travel time. You can state exactly what crossed the border - a message - and what the value did instead: change owner twice, at home, in two Worlds at once. And you can name the quiet cost of the trick: the border is crossed on a commercial bank’s IOU, not on central bank money. Lesson 4 examines the nostro from both ends of the relationship, lesson 5 counts what the world’s parked nostro balances tie up, and lesson 6 chains the hops into a four-bank relay with fees, cutoffs and time zones, where days-not-seconds stops being a slogan and becomes your own program’s output.

What you can now do

You can settle a cross-border payment through a bank's account at another bank, and name the machinery.