Atomic OTC
Hibou runs an OTC desk for any ERC-20 on Robinhood Chain: tokenized stocks, USDG, WETH, Pons tokens and $HIBOU. A maker signs an offer, a taker fills it with one call, and both legs move in that one transaction or nothing moves.
The flow
The tokens stay in the maker's wallet until the fill. There is no escrow and no pool: the price is exactly the one the maker signed, so a block trade has no slippage and no price impact. If the maker no longer holds the tokens, or the taker cannot pay, the fill reverts and nothing moves.
The offer
Order( address maker, // signs, sends sellToken, receives buyToken address taker, // 0x0 = anyone; an address = private deal address sellToken, address buyToken, uint256 sellAmount, // total offered uint256 buyAmount, // asked for the whole sellAmount uint256 expiry, // unix seconds uint256 nonce, // cancel(nonce) kills it bool partialFill // false = all or nothing )
Makers can be wallets or contract accounts: signatures are checked with ERC-1271 when the maker is a contract, so an agent's smart account can post offers too. Offers posted on the site are checked on read: signature, the maker's balance and allowance, what is left to fill, and the expiry.
Filling
fill(order, signature, sellFill) sends sellFill of the sell token from the maker to the taker, and ceil(sellFill × buyAmount / sellAmount) of the buy token from the taker to the maker, plus the fee. Rounding always favours the maker. Pass the maximum uint256 to take everything left. A private deal can only be filled by its named taker.
Cancelling
cancel(nonce) kills every offer signed with that nonce. cancelUpTo(n) kills every offer with a lower nonce at once. Your desk has both buttons.
Reference prices
The board shows each offer against a reference price: the Chainlink feeds where the chain has one (RHNVDA/USD, RHTSLA/USD), otherwise the stock's USDG pool on Uniswap v3, and the WETH/USDG pool for ETH. A positive premium means the maker asks more than the reference.
Fees
The taker pays 0.2% of their leg on top, in the token they pay with; the maker receives exactly the signed amount. Stakers of 100,000 $HIBOU pay 0.1%. The fee goes to the OTC fee collector, which swaps it to ETH with a minimum output and sends it into the dispatcher, where it takes the same split as the pool fees: 20% to the live module's idea author, 40% to buy and burn $HIBOU, 40% by the live module's weights. $HIBOU paid as a fee is burned directly.
Contracts
| HibouOTC | 0x1F9ccf7467E0B734CBa02a22b9Aa614BCE691962 |
| HibouOTCFees | 0x747ed7113e1112064e7C6f9067Ab1eE9b70F31ed |
The settlement contract holds no funds between calls, is guarded against re-entry and uses SafeERC20. It is made for standard tokens; tokens that take a fee on transfer or rebase are not supported. Its owner can only point the fee at the collector and the discount at the staking check; it cannot move anyone's tokens or change an offer.
