The core is a port of Uniswap V3 — rewritten for modern Solidity and verified against Uniswap’s own compiled bytecode. On top of that base sits a typed hook system, which is the capability people reach for V4 for, plus pieces no Uniswap version has: a native StableSwap curve, on-chain limit orders, and a no-fee-tier market structure.
For traders — one canonical pool per pair means depth is never split across fee tiers of the same market, and the fee adapts to volatility instead of being whichever tier the LPs happened to pick.For LPs — V3-style concentrated positions where you want efficiency, V2-style full-range where you want simplicity, an amplified curve for pegged pairs — one venue, one interface.For integrators — the events are byte-identical to Uniswap V3’s, so existing subgraphs and indexers work unchanged; execution goes through the native periphery. Full details in Uniswap V3 Compatibility.
It is not a Uniswap V4 deployment: V4 is a singleton with flash accounting; here every pool is its own contract with its own plugin, attached at creation and opted into hook by hook. The design goal was V4’s extensibility on V3’s battle-understood architecture — not V4’s architecture itself.
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Lunya Documentation","colors":{"primary":"#5b32d6","light":"#9d7bff","dark":"#4826ad"},"logo":{"light":"https://mintcdn.com/lunya/0BJDpfenH347wx8M/logo/light.svg?fit=max\u0026auto=format\u0026n=0BJDpfenH347wx8M\u0026q=85\u0026s=048f42898b9efa3ef39e82d0a1ce9e39","dark":"https://mintcdn.com/lunya/0BJDpfenH347wx8M/logo/dark.svg?fit=max\u0026auto=format\u0026n=0BJDpfenH347wx8M\u0026q=85\u0026s=706450d2d5f6c48c7b8c5974d921af82"},"favicon":"https://mintcdn.com/lunya/_FPHay4ld9_Fp6Zl/favicon.svg?fit=max\u0026auto=format\u0026n=_FPHay4ld9_Fp6Zl\u0026q=85\u0026s=4a9fc4fb9bfb54fa08efdb1f09d5be57","appearance":{"default":"system","strict":false},"background":{"color":{"light":"#f7f5fd","dark":"#0b0714"}},"navbar":{"primary":{"type":"button","label":"Launch App","href":"https://www.lunya.io"}},"contextual":{"options":["copy","view","claude","chatgpt","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"X","icon":"x-twitter","href":"https://x.com/lunya_io"},{"anchor":"Telegram","icon":"telegram","href":"https://telegram.lunya.io"},{"anchor":"Discord","icon":"discord","href":"https://discord.lunya.io"},{"anchor":"GitHub","icon":"github","href":"https://github.com/lunyaio"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lunya","hasAudioNarration":false,"actualSubdomain":"lunya","customDomains":["docs.lunya.io"],"gitSource":{"type":"github","owner":"lunyaio","repo":"docs","deployBranch":"docs-v2","contentDirectory":"lunya-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aad9773b6e6786cb13cb435","collectionId":"8fd5ac55-3846-42a0-a85c-e319b33549c8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aad9773b6e6786cb13cb435"},"entitlements":{},"buildId":"6aad9773b6e6786cb13cb435","clientVersion":"0.0.3908","searchFilterCounts":[{"language":"default","tag":"Developers","count":13},{"language":"default","tag":"Exchange","count":8},{"language":"default","tag":"Integrate the DEX","count":5},{"language":"default","tag":"Integrate the Launchpad","count":5},{"language":"default","tag":"Get Started","count":3},{"language":"default","tag":"Launchpad","count":2},{"language":"default","tag":"Bridge","count":1},{"language":"default","tag":"Earn","count":1},{"language":"default","tag":"Points","count":1},{"language":"default","tag":"Raise","count":1}]},"assistantConfig":{"enableStarterQuestions":false},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"exchange/uniswap-comparison","slug":"/exchange/uniswap-comparison","pageMetadata":{"title":"Compared to Uniswap","description":"Where the Lunya exchange sits against Uniswap V2, V3, and V4","icon":"code-compare","href":"/exchange/uniswap-comparison"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Where the Lunya exchange sits against Uniswap V2, V3, and V4\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`the-short-answer`,children:`The short answer`}),`\n`,_jsxs(_components.p,{children:[`The core is a `,_jsx(_components.strong,{children:`port of Uniswap V3`}),` — rewritten for modern Solidity and verified against Uniswap’s own compiled bytecode. On top of that base sits a typed hook system, which is the capability people reach for `,_jsx(_components.strong,{children:`V4`}),` for, plus pieces no Uniswap version has: a native StableSwap curve, on-chain limit orders, and a no-fee-tier market structure.`]}),`\n`,_jsx(Heading,{level:`2`,id:`feature-by-feature`,children:`Feature by feature`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Capability`}),_jsx(_components.th,{children:`Uniswap V2`}),_jsx(_components.th,{children:`Uniswap V3`}),_jsx(_components.th,{children:`Uniswap V4`}),_jsx(_components.th,{children:`Lunya`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Full-range `,_jsx(_components.code,{children:`x·y=k`}),` pools`]}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`emulated with a full-range position`}),_jsx(_components.td,{children:`via hooks`}),_jsx(_components.td,{children:`✅ CP pool type, first-class`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Concentrated liquidity`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`✅ CL pool type`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hooks / extensible pools`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`✅ singleton hooks`}),_jsxs(_components.td,{children:[`✅ ten typed hooks, per-pool `,_jsx(_components.a,{href:`/exchange/plugins`,children:`plugin`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Dynamic fees`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`possible via hooks`}),_jsx(_components.td,{children:`✅ in the default plugin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fee coin`}),_jsx(_components.td,{children:`fee in the input token`}),_jsx(_components.td,{children:`fee in the input token`}),_jsx(_components.td,{children:`possible via hooks`}),_jsx(_components.td,{children:`✅ a pool can take its fee in one fixed token`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`On-chain limit orders`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`possible via hooks`}),_jsxs(_components.td,{children:[`✅ native, `,_jsx(_components.a,{href:`/exchange/limit-orders`,children:`filled inside the crossing swap`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`StableSwap (amplified) curve`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`✅ STABLE pool type`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fee tiers`}),_jsx(_components.td,{children:`single fee`}),_jsx(_components.td,{children:`multiple tiers per pair`}),_jsx(_components.td,{children:`per-pool`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`no tiers`}),` — one canonical pool per pair, per type`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`TWAP oracle`}),_jsx(_components.td,{children:`price accumulators`}),_jsx(_components.td,{children:`in every pool`}),_jsx(_components.td,{children:`via hooks`}),_jsxs(_components.td,{children:[`as a `,_jsx(_components.a,{href:`/exchange/plugins#twap-oracle`,children:`plugin`}),`, only where needed`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Flash loans`}),_jsx(_components.td,{children:`flash swaps`}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`flash accounting`}),_jsx(_components.td,{children:`✅ on every pool type`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-this-means-in-practice`,children:`What this means in practice`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`For traders`}),` — one canonical pool per pair means depth is never split across fee tiers of the same market, and the fee adapts to volatility instead of being whichever tier the LPs happened to pick.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`For LPs`}),` — V3-style concentrated positions where you want efficiency, V2-style full-range where you want simplicity, an amplified curve for pegged pairs — one venue, one interface.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`For integrators`}),` — the events are byte-identical to Uniswap V3’s, so existing subgraphs and indexers work unchanged; execution goes through the native periphery. Full details in `,_jsx(_components.a,{href:`/developers/dex/overview`,children:`Uniswap V3 Compatibility`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-it-is-not`,children:`What it is not`}),`\n`,_jsx(_components.p,{children:`It is not a Uniswap V4 deployment: V4 is a singleton with flash accounting; here every pool is its own contract with its own plugin, attached at creation and opted into hook by hook. The design goal was V4’s extensibility on V3’s battle-understood architecture — not V4’s architecture itself.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Compared to Uniswap","description":"Where the Lunya exchange sits against Uniswap V2, V3, and V4","icon":"code-compare","href":"/exchange/uniswap-comparison"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The short answer","slug":"the-short-answer","depth":2,"children":[]},{"title":"Feature by feature","slug":"feature-by-feature","depth":2,"children":[]},{"title":"What this means in practice","slug":"what-this-means-in-practice","depth":2,"children":[]},{"title":"What it is not","slug":"what-it-is-not","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"lunya","siteName":"Lunya Documentation","title":"Compared to Uniswap - Lunya Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-12T19:47:07.191Z","originalFileLocation":"exchange/uniswap-comparison.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Where the Lunya exchange sits against Uniswap V2, V3, and V4\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lunya Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Compared to Uniswap - Lunya Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Where the Lunya exchange sits against Uniswap V2, V3, and V4\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lunya Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lunya.io/exchange/uniswap-comparison\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Compared to Uniswap - Lunya Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Where the Lunya exchange sits against Uniswap V2, V3, and V4\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lunya/7KYB9HXPsWXPMQCD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lunya Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5b32d6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lunya.io/exchange/uniswap-comparison\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/exchange/uniswap-comparison.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lunya.io/#organization\",\"name\":\"Lunya Documentation\",\"url\":\"https://docs.lunya.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lunya/0BJDpfenH347wx8M/logo/light.svg?fit=max\u0026auto=format\u0026n=0BJDpfenH347wx8M\u0026q=85\u0026s=048f42898b9efa3ef39e82d0a1ce9e39\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lunya.io#website\",\"name\":\"Lunya Documentation\",\"url\":\"https://docs.lunya.io\",\"publisher\":{\"@id\":\"https://docs.lunya.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lunya.io/exchange/uniswap-comparison#webpage\",\"url\":\"https://docs.lunya.io/exchange/uniswap-comparison\",\"name\":\"Compared to Uniswap\",\"description\":\"Where the Lunya exchange sits against Uniswap V2, V3, and V4\",\"dateModified\":\"2026-09-12T19:47:07.191Z\",\"isPartOf\":{\"@id\":\"https://docs.lunya.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lunya.io/exchange/uniswap-comparison#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lunya.io/exchange/uniswap-comparison#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Exchange\",\"item\":\"https://docs.lunya.io/exchange/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compared to Uniswap\",\"item\":\"https://docs.lunya.io/exchange/uniswap-comparison\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.lunya.io/exchange/uniswap-comparison#article\",\"headline\":\"Compared to Uniswap\",\"name\":\"Compared to Uniswap\",\"description\":\"Where the Lunya exchange sits against Uniswap V2, V3, and V4\",\"url\":\"https://docs.lunya.io/exchange/uniswap-comparison\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lunya.io/exchange/uniswap-comparison#webpage\"},\"dateModified\":\"2026-09-12T19:47:07.191Z\",\"publisher\":{\"@id\":\"https://docs.lunya.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lunya.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lunya Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Lunya Documentation","nav":{"global":{"anchors":[{"anchor":"X","icon":"x-twitter","href":"https://x.com/lunya_io"},{"anchor":"Telegram","icon":"telegram","href":"https://telegram.lunya.io"},{"anchor":"Discord","icon":"discord","href":"https://discord.lunya.io"},{"anchor":"GitHub","icon":"github","href":"https://github.com/lunyaio"}]},"groups":[{"group":"Get Started","pages":[{"title":"Introduction","icon":"house","href":"/landing"},{"title":"Architecture","icon":"diagram-project","href":"/architecture"},{"title":"FAQ","icon":"circle-question","href":"/faq"}]},{"group":"Exchange","pages":[{"title":"Exchange Overview","description":"The native AMM of Lunya: three pool types, one plugin system","icon":"arrows-rotate","href":"/exchange/overview"},{"title":"Compared to Uniswap","icon":"code-compare","href":"/exchange/uniswap-comparison"},{"title":"Pools \u0026 Fees","description":"The three pool types and how fees are set on the Lunya exchange","icon":"water","href":"/exchange/pools-and-fees"},{"title":"Plugins","icon":"puzzle-piece","href":"/exchange/plugins"},{"title":"Limit Orders","icon":"list-check","href":"/exchange/limit-orders"},{"title":"Flash Loans","icon":"bolt","href":"/exchange/flash-loans"},{"title":"Farming","icon":"seedling","href":"/exchange/farming"},{"title":"Liquidity Vaults","icon":"vault","href":"/exchange/vaults"}]},{"group":"Earn","pages":[{"title":"Earn","icon":"coins","href":"/earn/overview"}]},{"group":"Bridge","pages":[{"title":"Bridge","icon":"bridge","href":"/bridge/overview"}]},{"group":"Launchpad","pages":[{"title":"How the Launchpad Works","icon":"rocket","href":"/launch/how-it-works"},{"title":"Graduation \u0026 Locked Liquidity","icon":"graduation-cap","href":"/launch/graduation"}]},{"group":"Raise","pages":[{"title":"Raise","icon":"hand-holding-dollar","href":"/raise/overview"}]},{"group":"Points","pages":[{"title":"Points","icon":"star","href":"/points/overview"}]},{"group":"Developers","pages":[{"title":"Contract Addresses","icon":"file-signature","href":"/developers/contracts"},{"title":"SDK","icon":"cube","href":"/developers/sdk"},{"group":"Integrate the DEX","pages":[{"title":"DEX Integration Overview","icon":"plug","href":"/developers/dex/overview"},{"title":"Swaps \u0026 Routing","icon":"route","href":"/developers/dex/swaps-and-routing"},{"title":"Pools \u0026 Discovery","icon":"magnifying-glass","href":"/developers/dex/pools-and-discovery"},{"title":"Fees","icon":"percent","href":"/developers/dex/fees"},{"title":"Events \u0026 Indexing","icon":"tower-broadcast","href":"/developers/dex/events"}]},{"group":"Integrate the Launchpad","pages":[{"title":"Architecture \u0026 Discovery","icon":"sitemap","href":"/developers/launchpad/architecture"},{"title":"Trading the Curve","icon":"chart-line","href":"/developers/launchpad/trading"},{"title":"Graduation","icon":"graduation-cap","href":"/developers/launchpad/graduation"},{"title":"Fees","icon":"percent","href":"/developers/launchpad/fees"},{"title":"Events \u0026 Indexing","icon":"tower-broadcast","href":"/developers/launchpad/events"}]},{"title":"Indexer API","icon":"database","href":"/developers/indexer-api"}]}]},"title":"Compared to Uniswap - Lunya Documentation","buildId":"dpl_CUnGQP1HgFUzoxatVC37y4zP83Vx","deploymentId":"dpl_CUnGQP1HgFUzoxatVC37y4zP83Vx","dynamics":[],"chunks":[]}