Intent 106: Deadlines, withdrawals and the time buffer
Every order carries two deadlines and the Hub adds a third clock. Here is what each one protects, and the attack the time buffer was built to stop.
Before the order there is a request. How iLayer broadcasts your RFQ to every solver over Waku, and how each answer comes back to you alone.
Every order starts as a question: who will give me the best 9,900 DAI on Polygon for 10,000 USDC on Ethereum? On iLayer that question is a Request For Quote, and it does not go to a server. It goes to a topic on Waku, a censorship-resistant messaging protocol, where every solver in the network is listening. Nobody registers, nobody passes KYC, nobody can be silenced.
The interface builds an RFQ message with the same information the final Order will carry:
{
"deadline": 1750000, "nonce": 3,
"user": "0x00…", "recipient": "0x00…", "filler": "",
"inputs": [{ "tokenAddress": "USDC", "amount": 10000000, "type": "FUNGIBLE_TOKEN", "tokenId": 0 }],
"outputs": [{ "tokenAddress": "DAI", "amount": 9900000000000000000, "type": "FUNGIBLE_TOKEN", "tokenId": 0 }],
"sourceChainId": 1, "destinationChainId": 137, "sponsored": false,
"primaryFillerDeadline": …, "callRecipient": "", "callData": "", "callValue": 0
}The message is published on a dedicated rfq topic. Waku is publish/subscribe: every solver subscribes to that topic once and receives every request from then on. There is no queue to join and no operator deciding who sees what.
iLayer runs its own Waku nodes alongside the public network, so message propagation does not depend on third parties, while anyone else can run a node too.
Each solver evaluates the request with its own logic and market view, then publishes its quote on a topic named after your public address. Two consequences:
The interface aggregates the replies. You see prices and execution terms side by side and pick one.
Choosing a quote fixes two fields of the Order: the outputs (the exact amounts the solver committed to) and the filler (that solver’s address). From here there are three ways to proceed:
Either way the solver is now bound: if it does not fill inside its primary window, any other solver can, at the same amounts. The quote is a commitment, not a suggestion.
Decentralised, scalable, private, interoperable: those are Waku’s properties, and they become the RFQ’s properties. A central quote server would be simpler to build and would give one party the power to censor requests, front-run them, or go offline. The rfq topic gives that power to nobody. We wrote a separate piece on the choice: Why Waku for the RFQ.
Next: the three clocks inside every order and the small delay that keeps solvers safe.
Every order carries two deadlines and the Hub adds a third clock. Here is what each one protects, and the attack the time buffer was built to stop.