# Orbit as an external routing source

Orbit exposes its own hookless Uniswap v4 liquidity through `/api/routes`. An aggregator can compare its protected exact-input output against other sources, then offer an Orbit route in its own wallet flow. A bridge can use a compatible Orbit pool as the source or destination swap leg on Robinhood Chain. The bridge and its cross-chain execution remain the integrating platform's responsibility.

This is an unsigned quoting API and downloadable source adapter, not a registration with another platform. Each DEX or bridge must implement or approve the source before its users see it. Public discovery does not automatically redirect anyone's transactions.

## Integration packet

- Source manifest: `/.well-known/orbit-route.json`
- REST specification: `/route-openapi.json`
- ES module adapter: `/integrations/orbit-route-adapter.mjs` (requires `viem`)
- Indexed pool keys and IDs: `/api/discovery`
- Protocol ABI: `/contracts/artifacts.json`
- Chain: Robinhood Chain, ID `4663`
- PoolManager: `0x8366a39CC670B4001A1121B8F6A443A643e40951`
- Official v4 quoter: `0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94`
- Factory/router: read the current manifest and verify their deployed code and references before pinning the router in the platform adapter.

## Public prices

`GET /api/routes?chainId=4663&fromToken=0x0000000000000000000000000000000000000000&toToken=<indexed-token>&fromAmount=1000000000000000&slippageBps=50`

The amount is in raw input units. `50` basis points means `0.5%` maximum slippage. A wallet is optional for pricing. Public prices contain no executable transaction. Add `recipient=<actual-wallet>` to obtain an unsigned, recipient-bound `swapRoute` transaction. Requests quote direct and two-pool paths at the same block. No server wallet, private key, allowance or input-token balance is required for quoter `eth_call`.

## Adapter example

```js
import {createOrbitRouteAdapter} from './orbit-route-adapter.mjs';

const orbit = createOrbitRouteAdapter({
  baseURL: 'https://orbitlaunch.io',
  expectedRouter: VERIFIED_CURRENT_ORBIT_ROUTER,
});
const request = {
  chainId: 4663,
  fromToken: NATIVE_ETH_ZERO_ADDRESS,
  toToken: SELECTED_INDEXED_TOKEN,
  fromAmount: '1000000000000000',
  slippageBps: 50,
  recipient: ACTUAL_TRADING_WALLET,
};
const route = await orbit.quote(request);
const unsignedTransaction = orbit.buildTransaction(route, request);
// Compare route.minimum and a full wallet gas estimate against other sources.
// Simulate unsignedTransaction from ACTUAL_TRADING_WALLET on chain 4663.
// Ask the user for any exact ERC20 approval and the final swap signature.
```

The adapter validates the chain, pinned router, path, pool IDs, input, recipient, exact approval, native value, output protection and calldata. It never requests permissions, approves tokens, signs, or sends transactions.

## Fee earnings

Native Orbit pools currently charge `1%` per pool leg: `0.5%` creator, `0.4%` reserve and `0.1%` owner. These existing fees are included in quoted output. This API adds **zero additional routing fee**. Two-hop paths each pay their own pool fee. An external platform can also implement a direct v4 pool route; it need not send users to the Orbit website for those pool fees to accrue. The existing owner fee hub observes confirmed pool swaps; collected and pending amounts remain separate.

The aggregated `/api/swap` API is a different route source. Its supported fee-forwarding routes charge `0.05%` to the owner plus quoted provider, bridge, pool and gas costs. Use `view=preview` for wallet-free pricing, then `view=quote` with the actual wallet before execution. Aggregating already aggregated liquidity may not meet another platform's source-integration criteria; submit Orbit's native pool source when a platform asks for a DEX source.

## Production requirements

- Quote lifetime is 30 seconds; identical native pricing may be reused for at most 3 seconds. Requote after expiry or any input/account/network change.
- The deployed router protects `minimum` on chain but **does not enforce a deadline**. The adapter checks expiry before building the transaction; the integrating wallet must check again immediately before submission. A delayed pending transaction remains subject to its on-chain minimum.
- `gasEstimate` measures quoter execution only. Estimate the entire router transaction, fee collection and any approval from the actual wallet. Do not advertise the quoter gas as the user's complete cost.
- Simulate the exact full transaction after any required approval, then obtain the user's explicit signature. The server does not simulate a funded transaction for the wallet.
- Respect `429`/`retryAt`; do not repeatedly retry a provider quota. Native routes do not use the aggregated provider quota.
- The API permits 90 native requests per minute per IP. Benchmark at least 1 request/second and actual response latency on the deployed worker before submitting to a platform. Warm quotes use completed caches; no production latency SLA or external integration approval is asserted.
- A price quote or unsigned transaction is not revenue. Count only confirmed swap events and independently verified fee credits.

Give the integration packet, verified current contracts and real example quotes to the platform's integration team. Platform chain support, liquidity, traffic, API capacity and source approval determine whether users will see and select Orbit. There is no automatic volume or income guarantee.
