strait
A zero-fee cross-chain DEX aggregator built for BNB Chain. Same-chain, Strait searches its own pools and asks every enabled upstream aggregator the same question. Cross-chain, it asks every bridge the same question. Either way it ranks the answers on what actually lands after gas, and shows you the ones it turned down.
Fees
Strait charges 0 basis points. There is no fee recipient, no treasury cut and no referral skim folded into the quote you see.
Pool fees, upstream provider fees and network gas are not ours and do not go away. They are already reflected in every output figure on the page — the number you compare is the number the route produces.
Chains
| Chain | Direct venues | Upstream | Bridges |
|---|---|---|---|
BNB Chain56 | PancakeSwap V2, PancakeSwap V3 | kyber | Relay, LI.FI, deBridge, Across |
Ethereum1 | Uniswap V2, Uniswap V3 | kyber | Relay, LI.FI, deBridge, Across |
Base8453 | Uniswap V2, Uniswap V3 | kyber | Relay, LI.FI, deBridge, Across |
Arbitrum One42161 | Uniswap V2, Uniswap V3 | kyber | Relay, LI.FI, deBridge, Across |
Polygon137 | QuickSwap V2, Uniswap V3 | kyber | Relay, LI.FI, deBridge, Across |
Robinhood Chain4663 | Uniswap V2, Uniswap V3 | kyber | Relay, LI.FI, deBridge, Across |
Solana101 | — | jupiter | Relay, LI.FI, deBridge, Across |
On Solana, Strait does not run its own pool search. Jupiter already indexes that liquidity far better than a from-scratch crawler would, so Strait compares Jupiter's own routing variants against each other and is honest that this is what it is doing.
How a route is found
Strait searches offchain. You do not pay gas for the search, and the search does not touch your wallet.
Discovery
A token listing is a hint, not permission to trade. Strait asks each venue's canonical factory for the pool address, then reads live state — reserves for constant-product pools, liquidity for concentrated ones. Anything that reports nothing usable is dropped before it can reach a quote.
Paths
It walks the resulting pool graph from your input to your output, up to 3 hops, through the chain's connector assets. No path reuses a pool.
Splits
The best single path is then tested against two-way splits over disjoint path pairs on a 10% grid, with 1% refinement around whatever the coarse grid liked. Branch inputs sum to exactly the amount you entered; remainders are quoted rather than dropped.
Upstream
In parallel, Strait asks each enabled aggregator for its own plan — several routing variants each, since a balanced route and a max-output route are different answers worth comparing. A provider that is missing or rate-limited reduces coverage. It does not stop the others.
When an upstream provider supplies a route, that does not mean Strait has built a direct integration with every pool inside it.
Cross-chain
Switching the receiving side to another chain makes the order cross-chain, and changes what is being compared: bridges, not pools. Strait asks Relay, LI.FI, deBridge, Across at once — several of which are themselves aggregators, and are asked for more than one of their own routing variants.
Bridges quote net of their own fees, so their outputs are already comparable. Origin gas is not: it is paid separately, in the origin chain's native asset. Pricing it into the destination token needs a USD mark for that token, which we take from the providers that publish one.
A provider that publishes no gas figure is not ranked as free. It inherits the median of what the others reported, and the quote says so. Ranking first by staying silent is the easiest lie this comparison could tell.
One trade-off is worth writing down. deBridge's endpoint can prepend its operating expense to the input — quoting against a larger amount than you entered, which would flatter it in the comparison. Strait turns that off: the input stays exactly what you typed and the cost comes out of the output. It makes deBridge's number look worse. It also makes it comparable.
Bridges need an address to quote against, and we quote before a wallet is connected. Until then a probe address stands in and the quote says so. It is used only to price the route: nothing is signed for it, and the quote endpoint returns no calldata.
What “best route” means
same-chain: net value = assessed output − modeled execution gas
cross-chain: net value = destination output − origin gas, priced in the output tokenGas only changes the ranking when it can honestly be expressed in the output token. Native currency on either side of the trade gives us that conversion. When it does not exist, Strait ranks on output before gas and says so on the quote, rather than inventing a price.
Best means best among the candidates assessed for your request. Search limits, moving liquidity, unsupported pools and unavailable providers can all leave a better route undiscovered. This is not a global best-price guarantee, and Strait will not pretend otherwise.
Search limits
| Candidate pools | 96 |
| Paths | 32 |
| Hops | 3 |
| Split branches | 2 |
| Pool quote calls | 360 |
| Search deadline | 14s |
| Quote lifetime | 30s, refreshed about every 15s |
API
No key, no login. Request limits and validation still apply.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/config | Chains, venues and search limits |
| GET | /api/v1/tokens | Curated assets for one chain |
| GET | /api/v1/quote | Compare every enabled source |
| GET | /api/v1/activity | Settlement status and chain heads |
One endpoint serves both modes. Omit toChain for a same-chain swap; give it a different chain and the request becomes a cross-chain comparison, with tokenOut resolved on the destination chain.
curl "https://straitapp.net/api/v1/quote\
?chain=robinhood\
&toChain=bnb\
&tokenIn=ETH\
&tokenOut=BNB\
&amountIn=50000000000000000"An optional account parameter makes the bridges quote against your own address instead of the probe address.
The response carries a candidates array: every deduplicated route that entered the final comparison, with its rank, its output, its gas, and whether it was selected. That array is what draws the route graph. It contains no calldata and cannot be submitted as a swap plan.
Add &lang=zh to get the warnings back in Chinese.
What Strait does not claim
- Settlement contracts are not deployed yet. Strait quotes and compares today; it does not sign or submit anything for you, on one chain or across two.
- Cross-chain arrival times are each bridge's own estimate, not a commitment.
- Where a candidate published no origin gas, the median of the others stands in. That is an estimate, not a measurement.
- Nothing here is audited.
- A quote does not reserve liquidity, and prices move between quote and execution.
- Fee-on-transfer and rebasing tokens are unsupported.
- A logo and a symbol verify nothing. Check the full contract address.
- Price impact comes from upstream reference pricing, not an independent oracle.
- There is no MEV-protection guarantee.