OTC for any ERC-20 pair, wallet to wallet: a single call moves both sides, and you read every parameter first. Open the board

Module 3: Taker allowlist

Name several counterparties without publishing a list on chain. The maker signs a root; each taker brings a proof, which the private link carries for them. For one counterparty, use the named taker field.

Status
Ready
Signed
Merkle root
Code · OrbuSettlementDesk.sol
if (o.policy.takerRoot != bytes32(0) && !_onAllowlist(o.policy.takerRoot, msg.sender, proof)) {
    revert NotOnAllowlist();
}
Tests that cover it
test_allowlist
test_namedTakerOnly
What it does

Only wallets in the signed Merkle root can fill.

On chain
Desk
Not deployed yet
Enforced
—
Roster
Opens after the token launches
Reads
the taker's proof
Use it in an order
The OTC deskA signature, a link, then one call that moves both sides.