How it works
The bank looks at paper, not the box.
A letter of credit is a promise to pay when the documents match the terms. Redline is that check. The opinion is a contract on X Layer testnet — hash, PASS or FAIL, public receipt.

01
Read three papers
Payment promise (the credit), invoice (what was billed), shipping receipt (what left the dock). Layman names on the desk. Trade names in the subtitle.
02
Mark disagreements
Each mismatch cites the field, the two values, and the UCP 600 article. The demo uses a canned broken set and a matching control so the path cannot fail if a model is down.
03
Write the stamp
The contract stores a hash of the papers, PASS or FAIL, and a data-URI of the opinion. The public page /s/[id] decodes that URI. No database. No wallet to read it.
What we mark
Not the whole rulebook. The five fails that actually stop payment on the broken shipment.
| Field | Rule | In plain language |
|---|---|---|
| Amount | UCP 600 Art. 18 | The invoice must bill the amount of the credit. $90,000 against a $100,000 promise is a fail. |
| Goods | UCP 600 Art. 18 | Quantity and description have to match. 900 bales is not 1,000 bales. |
| Port | UCP 600 Art. 20 | The shipping receipt must name the discharge port in the credit. Lagos is not Apapa. |
| Ship date | UCP 600 Art. 14 | On board after the latest shipment date is a discrepancy, even if the cargo is real. |
| Insurance | UCP 600 Art. 28 | If the credit requires a certificate and none is presented, payment should not move. |
What this is not
- Not a bank, and not a decision that moves real funds.
- Not a legally wrapped RWA or a security offering.
- Not a lending pool. We do not tell you how much you can borrow. That is a later product, on a later question.
- The contract records what the desk sends. It does not independently re-read the papers. Treat the stamp as an opinion with a hash, not as a court.