
The Solvent
One shared maker-liquidity layer for every intent—protocol-agnostic, non-custodial, cross-chain.
Demo
About
Solvent is a **zero-inventory, protocol-agnostic intent resolver** built around **1inch Aqua** and **1inch SwapVM**. DeFi liquidity is fragmented across pools, price ranges, protocols, strategies, and chains before anyone knows where demand will appear. A maker may have enough assets to fill an order, yet those assets may be in the wrong place or stranded on another network. [Research commissioned by 1inch](https://1inch.com/aqua/learn/why-aqua/shared-liquidity) measured approximately **$1.84 billion of concentrated liquidity** across leading pools and found **29.5% completely outside its fee-earning range**. On the measured Uniswap v3-family pools, the broader unused share reached approximately **85%** after including in-range liquidity untouched by swaps. Those assets have not disappeared; they were allocated before demand arrived. A conventional pool deposit can serve only that pool, while concentrated liquidity can trade only inside its selected range. Quoting across markets therefore requires makers to divide capital in advance. Intent solvers compensate by funding inventories across every supported protocol and chain. This ties up capital, requires continuous rebalancing, and makes new networks and long-tail pairs expensive to serve. Solvent addresses one question: **How can a single non-custodial maker balance safely serve multiple strategies, intent protocols, and chains without requiring the resolver to maintain fragmented, pre-funded inventories?** Solvent is a **zero-inventory, protocol-agnostic intent resolver** built around **1inch Aqua** and **1inch SwapVM**. Aqua lets one maker wallet balance support multiple programmable positions. Tokens remain in the maker's wallet and move only when an authorized swap executes. This is shared liquidity, not leverage: Solvent does not create debt or make the same assets spendable twice. Every execution remains limited by the maker's real wallet balance. SwapVM lets makers define their pricing strategies. Solvent requests live quotes from those programs and executes without bypassing the maker's pricing logic. Solvent builds a complete resolution layer around these primitives. It discovers positions, requests quotes, estimates execution costs, constructs routes, reserves balances, submits settlement transactions, and reconciles its local state with the blockchain. The maker retains custody and controls prices. Solvent discovers orders, calculates routes, coordinates settlement, pays execution costs, and retains the remaining spread from profitable fills. Tokens may temporarily pass through a filler contract, but Solvent holds no inventory before or after settlement. Protocol-specific adapters normalize formats such as UniswapX and ERC-7683 for Solvent's Rust engine, allowing them to access the same Aqua-backed liquidity while keeping their signatures and settlement interfaces isolated. The engine validates the order, discovers eligible positions, requests live SwapVM quotes, and checks profitability after maker payments, gas, slippage, protocol requirements, and safety margins. Solvent's **water-fill routing algorithm** divides an order among several positions according to marginal price. It combines the competitive portions of multiple curves instead of forcing the complete trade through one increasingly expensive source. Before execution, Solvent's reservation ledger holds the selected liquidity so simultaneous orders cannot plan against the same maker balance. Aqua supplies the final on-chain balance guarantee. A thin Solidity filler validates the callback and execution plan, calls SwapVM for the selected positions, and delivers the promised output to the intent protocol's settlement contract. The same-chain trade is atomic. If a balance changed, a quote became invalid, or the required output cannot be delivered, everything reverts. The Rust engine reconciles the receipt and settles or releases its reservations. Cross-chain delivery and payment happen on separate networks, so they cannot be completed atomically in one transaction. SolventX separates the lifecycle into four responsibilities: **The Compact locks, Aqua fills, Chainlink CCIP proves, and Circle CCTP repays.** The user's source funds enter a non-custodial resource lock through Uniswap's The Compact rather than a Solvent-owned wallet. Solvent prices the destination fill using its same-chain quoting, routing, and reservation systems. Maker tokens are sourced just in time from Aqua-backed balances and delivered to the recipient, eliminating the need for a Solvent treasury on every destination chain. After delivery, the destination contract records the fill against a unique order identifier. The record binds the proof to the chains, assets, recipient, delivered amount, and settlement contract, preventing one fill from being reused for another order. Chainlink CCIP carries authenticated proof to the source chain, where the receiver verifies the remote chain, sender, order, and settlement payload before allowing the Compact claim. Circle CCTP then burns USDC on the source chain and mints native USDC on the destination chain after attestation, providing the repayment asset. **CCIP proves delivery; CCTP moves repayment value.** A recoverable Rust state machine tracks the lock, destination delivery, proof, claim, CCTP transfer, repayment, and reconciliation. Delays and temporary failures can be retried without duplicating deliveries, proofs, claims, or repayments. SwapVM strategies provide on-chain price protection: Solvent cannot force a maker to trade outside the conditions encoded in their program. The reservation ledger prevents off-chain overcommitment, and Aqua remains the final real-balance safeguard. Solvent also identifies profitable opportunities to restore maker positions after a trade. Part of the surplus remaining after restoration costs can return to the maker as a rebate. This is **loss-versus-rebalancing mitigation and arbitrage-value recapture**, not protection from every form of MEV. The Rust engine handles normalization, quoting, profitability, routing, reservations, tracking, retry, and reconciliation. Thin Solidity contracts enforce custody, pricing, callback authentication, and settlement constraints. Protocol adapters let new intent systems reuse the core liquidity engine; not every protocol is already integrated. Privy provides embedded wallets and email or social authentication for makers and takers. Users receive a familiar onboarding experience while custody and settlement remain enforced by their wallets and the contracts. The interface lets participants create maker positions, request quotes, submit intents, inspect route allocations, follow same-chain and cross-chain settlement, and view restoration opportunities without hiding the underlying execution stages. Makers can use one non-custodial balance across more strategies. Takers access routes combining several positions. Intent protocols gain reusable Aqua-backed liquidity, while resolvers can enter new markets without funding a separate treasury for every protocol and chain. Solvent's distinctive contribution is the **non-custodial passive-maker, reservation, routing, settlement, and protocol-adapter layer** built around Aqua. It separates the capital provider from the resolver operator and makes externally owned maker liquidity usable across heterogeneous intent flows. Shared capital follows intent demand instead of remaining fragmented. **One balance. Every intent. Every chain.**
How it's made
We built Solvent as a hybrid off-chain intent engine and on-chain settlement system. The backend is written in Rust and handles the full intent lifecycle: ingesting orders, discovering eligible maker positions, requesting live quotes, calculating profitability after gas, routing trades across multiple positions, reserving liquidity to prevent concurrent fills from over-committing the same balance, and tracking every order through a deterministic state machine until completion or recovery. On-chain settlement is implemented in Solidity using thin filler contracts. For same-chain swaps, the filler connects intent protocols such as UniswapX and ERC-7683 to 1inch Aqua. Aqua lets makers keep tokens in their own wallets while exposing programmable virtual balances, and 1inch SwapVM provides the pricing and swap-execution layer. This allowed us to build a zero-inventory resolver: Solvent does not maintain a pre-funded trading treasury and instead sources maker liquidity just in time during atomic settlement. For cross-chain execution, the taker’s source funds are secured in The Compact while destination liquidity is supplied through Aqua. Chainlink CCIP transports authenticated proof that the destination fill occurred, enabling the source-side claim to be released safely. Circle CCTP then burns USDC on the source chain and mints native USDC on the destination chain to repay the liquidity used for the fill, avoiding wrapped assets and traditional bridge liquidity pools. Privy provides embedded wallets and a familiar email/social-login experience, removing the need for browser extensions, seed-phrase setup, or manual network configuration. A notable engineering challenge was coordinating systems with very different timing and failure models. We addressed this by representing cross-chain settlement as an explicit, recoverable Rust state machine and separating quoting, liquidity reservation, transaction execution, proof delivery, claiming, and repayment into individually observable stages. The result is a non-custodial architecture in which Solidity enforces atomic settlement, Rust coordinates execution and recovery, Aqua supplies reusable liquidity, CCIP proves delivery, CCTP handles repayment, and Privy makes the system accessible to users.