SwapVM vs Uniswap v4 Hooks vs Algebra

1inch Aqua's SwapVM is a programmable pricing engine, in the same category as Uniswap v4 hooks, Algebra Integral plugins, and Balancer v3 hooks. The difference is where the liquidity lives and how you extend the pricing.

At a glance

SwapVM (1inch Aqua) Uniswap v4 hooks Algebra plugins Balancer v3 hooks
Custody Self-custodial: tokens stay in the maker's wallet under a revocable allowance; the protocol holds 0 tokens Pooled: tokens deposited into the PoolManager Pooled: tokens in the pool Pooled: tokens in the Vault
Capital per position One wallet balance backs many strategies on a chain (Shared Liquidity Ratio) One deposit per position One deposit per position One deposit per pool
Extend pricing Compose opcodes (Path B) or embed a contract via Extruction (Path C); or a custom AquaApp (Path A) Write a hook contract with before/after callbacks Write a plugin (AbstractPlugin + factory) Write a hook or a custom pool (5 functions)
No-code path Yes: compose deployed opcodes into a program, no new contract (Path B) No: a hook is a deployed contract No: a plugin is a deployed contract No: a hook/pool is a deployed contract
Deployment No contract to deploy for Path B; ship a strategy from your wallet Deploy the hook + mine an address with the right permission flags Deploy the plugin + register with the factory Deploy the hook/pool + register
Safety model Opcodes are curated on an immutable router; custom logic via Extruction must be non-upgradeable and return identical quote()/swap() amounts Hook permissions encoded in the address; hook bugs affect the pool Plugin flags library; plugin bugs affect the pool Hook flags; hook bugs affect the pool

Which to reach for

  • Compose existing opcodes (Path B) when a constant-product, concentrated, pegged or decay curve — with fees and access control — covers your case. No contract, no audit of new code.

  • Extruction (Path C) when you have proprietary pricing in your own non-upgradeable contract and want it priced against wallet-held liquidity.

  • Custom AquaApp (Path A) when you are building a protocol on Aqua as a shared-inventory substrate.

See Write your own opcode, Extruction, and Build an AquaApp.

Did you find what you need?