back to the router

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

ChainDirect venuesUpstreamBridges
BNB Chain
56
PancakeSwap V2, PancakeSwap V3kyberRelay, LI.FI, deBridge, Across
Ethereum
1
Uniswap V2, Uniswap V3kyberRelay, LI.FI, deBridge, Across
Base
8453
Uniswap V2, Uniswap V3kyberRelay, LI.FI, deBridge, Across
Arbitrum One
42161
Uniswap V2, Uniswap V3kyberRelay, LI.FI, deBridge, Across
Polygon
137
QuickSwap V2, Uniswap V3kyberRelay, LI.FI, deBridge, Across
Robinhood Chain
4663
Uniswap V2, Uniswap V3kyberRelay, LI.FI, deBridge, Across
Solana
101
jupiterRelay, 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 token

Gas 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 pools96
Paths32
Hops3
Split branches2
Pool quote calls360
Search deadline14s
Quote lifetime30s, refreshed about every 15s

API

No key, no login. Request limits and validation still apply.

MethodPathPurpose
GET/api/v1/configChains, venues and search limits
GET/api/v1/tokensCurated assets for one chain
GET/api/v1/quoteCompare every enabled source
GET/api/v1/activitySettlement 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.