--- title: Introduction description: Hular is a cross-chain intent bridge. A user deposits on the source chain and receives on the destination chain out of operator-held inventory. --- import { API_URL, APP_URL, EXPLORER_URL } from "/snippets/vars.mdx"; Hular moves value between chains, currently Arbitrum and Solana. A user asks for a quote, deposits the source asset into the Hular contracts with the quote hash attached, and receives the destination asset from inventory the operator already holds on that chain. There is no guardian set and no message-passing wait. Deposits land in an escrow contract on the source chain and stay there until they settle deep enough to rule out a reorg; the destination payout comes from the solver contract, whose float is already on that chain. ## What you integrate against Two surfaces, and you will normally use both. Quotes, swap instructions, the token catalog, and order state. Served at {API_URL} over gRPC and gRPC-web. Where the deposit lands. One call on the source chain, carrying the quote hash returned by the API. ## The shape of a swap `GetQuote` prices the trade and persists the exact order parameters. Its keccak hash is the quote hash. The user calls the deposit contract on the source chain with that quote hash. The funds stay in the escrow. Hular indexes the deposit, waits for the required confirmations, and pays the recipient on the destination chain out of solver float. `GetOrder` reports the order state until it reaches a terminal one: `fulfilled`, `refunded`, or a failure state. The quote hash is the join key for everything. It binds the deposit to a price, identifies the order in every API call, and is the URL of the order in the explorer at {EXPLORER_URL}. ## Start here A working cross-chain swap, quote to settlement. Roles, the settlement path, and what happens when it fails. Chains, routers, and per-chain limits. Rate limits, and why keyless quotes price worse. The user-facing application lives at {APP_URL}.