Welcome to the Ramses contract documentation.Ramses combines Uniswap V3-style concentrated liquidity with an LFJ v2.2-style DLMM implementation, weekly accounting, gauge-directed emissions, fee routing, and a separate governance stack built around xRAM, VoteModule, Voter, and AccessHub.The Ramses V3 contracts repository is the public source reference for the concentrated-liquidity stack. DLMM deployment state and addresses are documented separately because they are not present in that repository.
Ramses V3 contracts are compiled with Solidity ^0.8.0 using via-ir (the Yul-based intermediate representation pipeline). This is a significant departure from upstream Uniswap V3, which targets Solidity 0.7.6 without via-ir. Key implications:
Custom errors replace string revert messages across most of the protocol (see Error Codes)
Overflow checks are built into the compiler — explicit SafeMath wrappers are no longer needed
via-ir optimization enables cross-function inlining and stack-depth relief, allowing the contracts to compile with deeper call stacks and more complex internal logic than the legacy pipeline permits
Ramses V3 pools track weekly liquidity participation so gauges can reward positions based on time spent in range during each period. This is the main on-chain difference from a plain Uniswap V3 deployment.
DLMM pools divide price space into fixed-price bins and represent LP ownership as per-bin fungible shares. The trader fee combines a static floor with a variable component driven by on-chain bin movement.
GaugeV3 rewards are tied to CL pool positions without moving the underlying pool liquidity into a separate staking contract. The surrounding periphery and voter contracts coordinate eligibility and claims.
5. Centralized governance routing through AccessHub
AccessHub.sol is the operational control plane for the protocol. It owns batch fee updates, gauge lifecycle management, xRAM/R33 administration, treasury settings, and other protocol-wide actions through roles, multisig-only functions, and timelock-only functions.
R33.sol is an ERC4626 vault that wraps xRAM exposure. The source contract is named R33, while the token it mints is hyperRAM (xRAM Liquid Staking Token in the constructor). It stakes the underlying xRAM into VoteModule, allows an operator to vote and compound, and exposes a liquid ERC20 share token.
Do not assume these V3 reports cover DLMM merely because DLMM is part of the wider Ramses codebase. Verify the named contracts and commit in each report before treating any finding or assurance as applicable to DLMM.
The period-accounting and reward-routing stack requires special attention to:
Tick and position boundary edge cases
Weekly period transitions
Reward accounting across gauges and fee distributors
Fee routing across treasury, fee collectors, and active gauges
Uniswap V3 Core - Reference implementation for concentrated-liquidity mechanics
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Ramses Technical Documentation","colors":{"primary":"#161718","light":"#FFFFFF","dark":"#FFFFFF"},"logo":{"light":"https://mintcdn.com/ramses/nvKKukknXVTxMy0x/images/logo.png?fit=max\u0026auto=format\u0026n=nvKKukknXVTxMy0x\u0026q=85\u0026s=8baedca01f01eb1da8b939c567f92483","dark":"https://mintcdn.com/ramses/nvKKukknXVTxMy0x/images/logo.png?fit=max\u0026auto=format\u0026n=nvKKukknXVTxMy0x\u0026q=85\u0026s=8baedca01f01eb1da8b939c567f92483"},"favicon":"https://mintcdn.com/ramses/nvKKukknXVTxMy0x/images/favicon.ico?fit=max\u0026auto=format\u0026n=nvKKukknXVTxMy0x\u0026q=85\u0026s=761eeae2d0e72c0f4a9f1f3f8257295e","api":{"playground":{}},"background":{"color":{"light":"#FFFFFF","dark":"#161718"}},"navbar":{"links":[{"href":"https://github.com/RamsesExchange","label":"GitHub"},{"href":"https://discord.com/ramses","label":"Discord"}],"primary":{"type":"github","href":"https://github.com/RamsesExchange/ramses-v3-contracts"}},"fonts":{"heading":{"family":"Inter","weight":600},"body":{"family":"Inter","weight":400}},"icons":{"library":"lucide"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ramses","hasAudioNarration":false,"actualSubdomain":"ramses","customDomains":["tech.ramses.xyz"],"gitSource":{"type":"github","owner":"ramsesexchange","repo":"technical-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a923e876fb84ee479df28a7","collectionId":"e79b79bf-9b2e-4d8a-86ae-1e6a32dd9f56","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a923e876fb84ee479df28a7"},"entitlements":{},"buildId":"6a923e876fb84ee479df28a7","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Contracts","count":104},{"language":"default","tag":"Reference","count":89},{"language":"default","tag":"SDKs","count":18},{"language":"default","tag":"Periphery Interfaces","count":17},{"language":"default","tag":"Concepts","count":14},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Core Libraries","count":14},{"language":"default","tag":"Core Interfaces","count":13},{"language":"default","tag":"Periphery Libraries","count":12},{"language":"default","tag":"Periphery Base","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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":"editor-version-history-v2","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":"vite-origin","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":"billing-updated-9-15","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":[{"filePath":"custom.css","content":":root{--font-size-base:0.9375rem;--line-height-base:1.65}h1{font-size:1.75rem!important;letter-spacing:-.02em}h1,h2,h3,h4{font-weight:600!important}h2{font-size:1.35rem!important;letter-spacing:-.01em}h3,h4{font-size:1.1rem!important}h4{font-size:.95rem!important}li,p,td,th{font-size:var(--font-size-base);line-height:var(--line-height-base)}code:not(pre code){font-size:.85em}pre code{font-size:.8125rem;line-height:1.6}"}],"page":{"pagePath":"contracts/overview","slug":"/contracts/overview","pageMetadata":{"title":"Overview","description":null,"href":"/contracts/overview"},"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`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`the-ramses-smart-contracts`,children:`The Ramses Smart Contracts`}),`\n`,_jsx(_components.p,{children:`Welcome to the Ramses contract documentation.`}),`\n`,_jsxs(_components.p,{children:[`Ramses combines Uniswap V3-style concentrated liquidity with an LFJ v2.2-style DLMM implementation, weekly accounting, gauge-directed emissions, fee routing, and a separate governance stack built around `,_jsx(_components.code,{children:`xRAM`}),`, `,_jsx(_components.code,{children:`VoteModule`}),`, `,_jsx(_components.code,{children:`Voter`}),`, and `,_jsx(_components.code,{children:`AccessHub`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`https://github.com/RamsesExchange/ramses-v3-contracts`,children:`Ramses V3 contracts repository`}),` is the public source reference for the concentrated-liquidity stack. DLMM deployment state and addresses are documented separately because they are not present in that repository.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-makes-ramses-different`,children:`What Makes Ramses Different`}),`\n`,_jsx(Heading,{level:`3`,id:`compiler`,children:`Compiler`}),`\n`,_jsxs(_components.p,{children:[`Ramses V3 contracts are compiled with Solidity `,_jsx(_components.code,{children:`^0.8.0`}),` using `,_jsx(_components.code,{children:`via-ir`}),` (the Yul-based intermediate representation pipeline). This is a significant departure from upstream Uniswap V3, which targets Solidity `,_jsx(_components.code,{children:`0.7.6`}),` without `,_jsx(_components.code,{children:`via-ir`}),`. Key implications:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom errors`}),` replace string `,_jsx(_components.code,{children:`revert`}),` messages across most of the protocol (see `,_jsx(_components.a,{href:`/contracts/reference/error-codes`,children:`Error Codes`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Overflow checks`}),` are built into the compiler — explicit `,_jsx(_components.code,{children:`SafeMath`}),` wrappers are no longer needed`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`via-ir`}),` optimization`]}),` enables cross-function inlining and stack-depth relief, allowing the contracts to compile with deeper call stacks and more complex internal logic than the legacy pipeline permits`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`1-period-based-accounting-for-cl-rewards`,children:`1. Period-based accounting for CL rewards`}),`\n`,_jsx(_components.p,{children:`Ramses V3 pools track weekly liquidity participation so gauges can reward positions based on time spent in range during each period. This is the main on-chain difference from a plain Uniswap V3 deployment.`}),`\n`,_jsx(Heading,{level:`3`,id:`2-discrete-liquidity-bins`,children:`2. Discrete liquidity bins`}),`\n`,_jsx(_components.p,{children:`DLMM pools divide price space into fixed-price bins and represent LP ownership as per-bin fungible shares. The trader fee combines a static floor with a variable component driven by on-chain bin movement.`}),`\n`,_jsx(Heading,{level:`3`,id:`3-non-custodial-cl-gauges`,children:`3. Non-custodial CL gauges`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GaugeV3`}),` rewards are tied to CL pool positions without moving the underlying pool liquidity into a separate staking contract. The surrounding periphery and voter contracts coordinate eligibility and claims.`]}),`\n`,_jsx(Heading,{level:`3`,id:`4-address-based-governance-not-venft-voting`,children:`4. Address-based governance, not veNFT voting`}),`\n`,_jsx(_components.p,{children:`Governance in the current contracts is address-based:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`XRam.sol`}),` creates transfer-restricted `,_jsx(_components.code,{children:`xRAM`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VoteModule.sol`}),` holds staked `,_jsx(_components.code,{children:`xRAM`}),` and exposes voting power`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Voter.sol`}),` records votes by owner address for the next weekly period`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FeeDistributor.sol`}),` pays rewards to those addresses based on periodized vote weight`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`5-centralized-governance-routing-through-accesshub`,children:`5. Centralized governance routing through AccessHub`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`AccessHub.sol`}),` is the operational control plane for the protocol. It owns batch fee updates, gauge lifecycle management, xRAM/R33 administration, treasury settings, and other protocol-wide actions through roles, multisig-only functions, and timelock-only functions.`]}),`\n`,_jsx(Heading,{level:`3`,id:`6-liquid-governance-wrapper`,children:`6. Liquid governance wrapper`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`R33.sol`}),` is an ERC4626 vault that wraps xRAM exposure. The source contract is named `,_jsx(_components.code,{children:`R33`}),`, while the token it mints is `,_jsx(_components.code,{children:`hyperRAM`}),` (`,_jsx(_components.code,{children:`xRAM Liquid Staking Token`}),` in the constructor). It stakes the underlying xRAM into `,_jsx(_components.code,{children:`VoteModule`}),`, allows an operator to vote and compound, and exposes a liquid ERC20 share token.`]}),`\n`,_jsx(Heading,{level:`2`,id:`contract-layout`,children:`Contract Layout`}),`\n`,_jsx(Heading,{level:`3`,id:`concentrated-liquidity`,children:`Concentrated liquidity`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Core contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RamsesV3Factory`}),`: Pool creation, fee configuration, fee collector wiring, and voter integration`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RamsesV3Pool`}),`: Swaps, liquidity management, oracle state, protocol fee accrual, and weekly accounting`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RamsesV3PoolDeployer`}),`: Factory helper used to deploy pool instances`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Periphery contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RamsesV3PositionManager`}),`: NFT position management and reward-claim integrations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SwapRouter`}),`: Single-hop and multi-hop swap execution`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quoter / QuoterV2 / TickLens`}),`: Read-oriented helpers`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`discrete-liquidity`,children:`Discrete liquidity`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Core contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMFactory`}),`: Pool creation, bin-step presets, quote assets, fee configuration, protocol share, and hooks`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMPool / DLMMToken`}),`: Bin reserves, swaps, oracle state, protocol fees, and per-bin LP shares`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Periphery and routing contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMRouter`}),`: Pool creation, swaps, deposits, withdrawals, native assets, and transaction safeguards`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMQuoter`}),`: Best-path search across registered bin steps`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMFeeCollector`}),`: Protocol-fee collection and treasury or voter routing`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional reward contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`DLMMRewarder`}),`: RAM emission hook for eligible bins`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`DLMMRewarderFactory`}),`: Beacon-proxy deployment and pool/rewarder linkage`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/contracts/reference/dlmm/overview`,children:`Read the DLMM contract architecture`})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`gauges-and-fee-routing`,children:`Gauges and fee routing`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Gauge contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GaugeV3`}),`: CL reward distribution`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ClGaugeFactory`}),`: Gauge deployment and implementation management`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`FeeCollector`}),`: Collects protocol fees from CL pools and routes them to treasury and fee distributors`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMRewarder`}),`: Optional DLMM emission target; inactive in the `,_jsx(_components.a,{href:`/contracts/reference/dlmm/deployments`,children:`Robinhood block 22,674,244 snapshot`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DLMMFeeCollector`}),`: Collects the DLMM protocol share`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reward distribution contracts`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`FeeDistributor`}),`: Tracks vote weight per period and distributes fee/incentive tokens to voter addresses`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`governance-and-token-stack`,children:`Governance and token stack`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AccessHub`}),`: Role-based and multisig/timelock governance router`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Voter`}),`: Vote accounting, gauge registry, emissions routing, reward claims`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`VoteModule`}),`: xRAM staking, delegation, admin permissions, cooldown management`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Minter`}),`: Weekly emission controller with a capped supply schedule`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`XRam`}),`: Transfer-restricted governance token with conversion and exit penalties`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`R33 / hyperRAM`}),`: ERC4626 liquid wrapper over xRAM staked in VoteModule`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AutoVault`}),`: Optional xRAM automation layer for reward conversion and delegated voting`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`weekly-period-model`,children:`Weekly Period Model`}),`\n`,_jsx(_components.p,{children:`The contracts use:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`solidity`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`period `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` block`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.timestamp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` weeks`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Key consequences of that model:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Voter.vote()`}),` writes allocations into the `,_jsx(_components.strong,{children:`next`}),` period.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FeeDistributor.notifyRewardAmount()`}),` and `,_jsx(_components.code,{children:`incentivize()`}),` also queue rewards into the `,_jsx(_components.strong,{children:`next`}),` period.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Minter.updatePeriod()`}),` advances emissions when a new weekly period has started.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Voter.distribute()`}),` ties together emissions distribution and protocol-fee routing for gauges.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VoteModule`}),` cooldowns and `,_jsx(_components.code,{children:`R33`}),` unlock windows are also expressed around this weekly cadence.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`code-audit-status`,children:`Code Audit Status`}),`\n`,_jsx(_components.p,{children:`Ramses V3 has undergone multiple professional security audits:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ConsenSys Diligence`}),` (August 2024): 10 contracts, 2,250 nSLOC`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Focus on period-based accounting system`}),`\n`,_jsx(_components.li,{children:`Critical findings addressed in final implementation`}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://diligence.security/audits/2024/08/ramses-v3/`,children:`View Report`})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cantina / Spearbit`}),`: Independent security review`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://cantina.xyz/portfolio/ramses-exchange`,children:`View on Cantina`})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Code4rena`}),` (October 2024): $120,000 audit competition`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`2 medium severity findings, all resolved`}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://code4rena.com/reports/2024-10-ramses-exchange`,children:`View Report`})}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Warning,{title:`Audit scope`,children:_jsx(_components.p,{children:`Do not assume these V3 reports cover DLMM merely because DLMM is part of the wider Ramses codebase. Verify the named contracts and commit in each report before treating any finding or assurance as applicable to DLMM.`})}),`\n`,_jsx(_components.p,{children:`The period-accounting and reward-routing stack requires special attention to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Tick and position boundary edge cases`}),`\n`,_jsx(_components.li,{children:`Weekly period transitions`}),`\n`,_jsx(_components.li,{children:`Reward accounting across gauges and fee distributors`}),`\n`,_jsx(_components.li,{children:`Fee routing across treasury, fee collectors, and active gauges`}),`\n`]}),`\n`,_jsx(Heading,{level:`1`,id:`guides`,children:`Guides`}),`\n`,_jsxs(_components.p,{children:[`If you are new to Ramses, start with the `,_jsx(_components.a,{href:`/concepts/ramses-protocol`,children:`protocol concepts`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Then set up your `,_jsx(_components.a,{href:`/contracts/guides/local-environment`,children:`local environment`}),`, walk through a `,_jsx(_components.a,{href:`/contracts/guides/swaps/single-swaps`,children:`first CL swap`}),`, or follow the `,_jsx(_components.a,{href:`/contracts/guides/dlmm/integration`,children:`DLMM integration guide`}),`.`]}),`\n`,_jsx(Heading,{level:`1`,id:`reference`,children:`Reference`}),`\n`,_jsxs(_components.p,{children:[`For a deeper dive, read the `,_jsx(_components.a,{href:`/contracts/reference/overview`,children:`technical reference`}),`.`]}),`\n`,_jsx(Heading,{level:`1`,id:`resources`,children:`Resources`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://github.com/RamsesExchange/ramses-v3-contracts`,children:_jsx(_components.strong,{children:`Ramses V3 Contracts`})}),` - Public concentrated-liquidity source`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://diligence.security/audits/2024/08/ramses-v3/`,children:_jsx(_components.strong,{children:`ConsenSys Diligence Audit`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://cantina.xyz/portfolio/ramses-exchange`,children:_jsx(_components.strong,{children:`Cantina / Spearbit Audit`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://code4rena.com/reports/2024-10-ramses-exchange`,children:_jsx(_components.strong,{children:`Code4rena Audit Report`})})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://github.com/Uniswap/v3-core`,children:_jsx(_components.strong,{children:`Uniswap V3 Core`})}),` - Reference implementation for concentrated-liquidity mechanics`]}),`\n`]})]})}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":"Overview","description":null,"href":"/contracts/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The Ramses Smart Contracts","slug":"the-ramses-smart-contracts","depth":1,"children":[]},{"title":"What Makes Ramses Different","slug":"what-makes-ramses-different","depth":2,"children":[{"title":"Compiler","slug":"compiler","depth":3,"children":[]},{"title":"1. Period-based accounting for CL rewards","slug":"1-period-based-accounting-for-cl-rewards","depth":3,"children":[]},{"title":"2. Discrete liquidity bins","slug":"2-discrete-liquidity-bins","depth":3,"children":[]},{"title":"3. Non-custodial CL gauges","slug":"3-non-custodial-cl-gauges","depth":3,"children":[]},{"title":"4. Address-based governance, not veNFT voting","slug":"4-address-based-governance-not-venft-voting","depth":3,"children":[]},{"title":"5. Centralized governance routing through AccessHub","slug":"5-centralized-governance-routing-through-accesshub","depth":3,"children":[]},{"title":"6. Liquid governance wrapper","slug":"6-liquid-governance-wrapper","depth":3,"children":[]}]},{"title":"Contract Layout","slug":"contract-layout","depth":2,"children":[{"title":"Concentrated liquidity","slug":"concentrated-liquidity","depth":3,"children":[]},{"title":"Discrete liquidity","slug":"discrete-liquidity","depth":3,"children":[]},{"title":"Gauges and fee routing","slug":"gauges-and-fee-routing","depth":3,"children":[]},{"title":"Governance and token stack","slug":"governance-and-token-stack","depth":3,"children":[]}]},{"title":"Weekly Period Model","slug":"weekly-period-model","depth":2,"children":[]},{"title":"Code Audit Status","slug":"code-audit-status","depth":2,"children":[]},{"title":"Guides","slug":"guides","depth":1,"children":[]},{"title":"Reference","slug":"reference","depth":1,"children":[]},{"title":"Resources","slug":"resources","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ramses","siteName":"Ramses Technical Documentation","title":"Overview - Ramses Technical Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-16T19:46:43.933Z","originalFileLocation":"contracts/overview.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=\"application-name\" content=\"Ramses Technical 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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_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/ramses/3PsiHICiYsncsEka/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - Ramses Technical Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ramses Technical Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://tech.ramses.xyz/contracts/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ramses.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Overview\u0026amp;theme=7887b6fe79c9a8d82726952d\u0026amp;signature=6449fa4e108313249465cbba6dcd06b8bdae39672dc41911a90b69dd824f0b38\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Overview - Ramses Technical Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ramses.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Overview\u0026amp;theme=7887b6fe79c9a8d82726952d\u0026amp;signature=6449fa4e108313249465cbba6dcd06b8bdae39672dc41911a90b69dd824f0b38\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ramses/3PsiHICiYsncsEka/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ramses Technical Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#161718\">\u003clink data-mint-head rel=\"canonical\" href=\"https://tech.ramses.xyz/contracts/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/contracts/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://tech.ramses.xyz/#organization\",\"name\":\"Ramses Technical Documentation\",\"url\":\"https://tech.ramses.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ramses/nvKKukknXVTxMy0x/images/logo.png?fit=max\u0026auto=format\u0026n=nvKKukknXVTxMy0x\u0026q=85\u0026s=8baedca01f01eb1da8b939c567f92483\"}},{\"@type\":\"WebSite\",\"@id\":\"https://tech.ramses.xyz#website\",\"name\":\"Ramses Technical Documentation\",\"url\":\"https://tech.ramses.xyz\",\"publisher\":{\"@id\":\"https://tech.ramses.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://tech.ramses.xyz/contracts/overview#webpage\",\"url\":\"https://tech.ramses.xyz/contracts/overview\",\"name\":\"Overview\",\"dateModified\":\"2026-08-16T19:46:43.933Z\",\"isPartOf\":{\"@id\":\"https://tech.ramses.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://tech.ramses.xyz/contracts/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://tech.ramses.xyz/contracts/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ramses Technical Documentation\",\"item\":\"https://tech.ramses.xyz\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://tech.ramses.xyz/contracts/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://tech.ramses.xyz/contracts/overview#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"url\":\"https://tech.ramses.xyz/contracts/overview\",\"mainEntityOfPage\":{\"@id\":\"https://tech.ramses.xyz/contracts/overview#webpage\"},\"dateModified\":\"2026-08-16T19:46:43.933Z\",\"publisher\":{\"@id\":\"https://tech.ramses.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://tech.ramses.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ramses Technical Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ramses Technical Documentation","nav":{"global":null,"tabs":[{"tab":"Concepts","icon":"book-open","pages":[{"title":"Concepts","href":"/concepts/overview"}]},{"tab":"Contracts","icon":"puzzle","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/contracts/overview"}]},{"group":"Guides","pages":[{"title":"Set Up Your Local Environment","description":null,"href":"/contracts/guides/local-environment"},{"group":"Swaps","pages":[{"title":"Single Swaps","href":"/contracts/guides/swaps/single-swaps"},{"title":"Multihop Swaps","href":"/contracts/guides/swaps/multihop-swaps"}]},{"group":"Providing Liquidity","pages":[{"title":"Set Up Your Contract","href":"/contracts/guides/providing-liquidity/setting-up-your-contract"},{"title":"Mint a New Position","href":"/contracts/guides/providing-liquidity/mint-a-new-position"},{"title":"Increase Liquidity","href":"/contracts/guides/providing-liquidity/increase-liquidity"},{"title":"Decrease Liquidity","href":"/contracts/guides/providing-liquidity/decrease-liquidity"},{"title":"Collecting Fees","href":"/contracts/guides/providing-liquidity/collect-fees"},{"title":"The Full Contract","href":"/contracts/guides/providing-liquidity/the-full-contract"}]},{"group":"DLMM","pages":[{"title":"Integrating DLMM","href":"/contracts/guides/dlmm/integration"}]},{"group":"Flash Integrations","pages":[{"title":"Getting Started","href":"/contracts/guides/flash-integrations/inheritance-constructors"},{"title":"Calling Flash","href":"/contracts/guides/flash-integrations/calling-flash"},{"title":"The Flash Callback","href":"/contracts/guides/flash-integrations/flash-callback"},{"title":"The Final Contract","href":"/contracts/guides/flash-integrations/final-contract"}]}]},{"group":"Reference","pages":[{"title":"Overview","href":"/contracts/reference/overview"},{"title":"Error Codes","href":"/contracts/reference/error-codes"},{"group":"Core Contracts","pages":[{"title":null,"href":"/contracts/reference/core/RamsesV3Pool"},{"title":null,"href":"/contracts/reference/core/RamsesV3Factory"},{"title":null,"href":"/contracts/reference/core/RamsesV3PoolDeployer"}]},{"group":"Core Interfaces","pages":[{"title":null,"href":"/contracts/reference/core/interfaces/IRamsesV3Pool"},{"title":null,"href":"/contracts/reference/core/interfaces/IRamsesV3Factory"},{"title":null,"href":"/contracts/reference/core/interfaces/IRamsesV3PoolDeployer"},{"title":null,"href":"/contracts/reference/core/interfaces/IERC20Minimal"},{"group":"Pool Interfaces","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolActions"},{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolState"},{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolDerivedState"},{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolEvents"},{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolImmutables"},{"title":null,"href":"/contracts/reference/core/interfaces/pool/IRamsesV3PoolOwnerActions"}]},{"group":"Callback Interfaces","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/core/interfaces/callback/IUniswapV3SwapCallback"},{"title":null,"href":"/contracts/reference/core/interfaces/callback/IUniswapV3MintCallback"},{"title":null,"href":"/contracts/reference/core/interfaces/callback/IUniswapV3FlashCallback"}]}]},{"group":"Core Libraries","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/core/libraries/BitMath"},{"title":null,"href":"/contracts/reference/core/libraries/FixedPoint128"},{"title":null,"href":"/contracts/reference/core/libraries/FixedPoint96"},{"title":null,"href":"/contracts/reference/core/libraries/FullMath"},{"title":null,"href":"/contracts/reference/core/libraries/Oracle"},{"title":null,"href":"/contracts/reference/core/libraries/Position"},{"title":null,"href":"/contracts/reference/core/libraries/SafeCast"},{"title":null,"href":"/contracts/reference/core/libraries/SqrtPriceMath"},{"title":null,"href":"/contracts/reference/core/libraries/SwapMath"},{"title":null,"href":"/contracts/reference/core/libraries/Tick"},{"title":null,"href":"/contracts/reference/core/libraries/TickBitmap"},{"title":null,"href":"/contracts/reference/core/libraries/TickMath"},{"title":null,"href":"/contracts/reference/core/libraries/TransferHelper"},{"title":null,"href":"/contracts/reference/core/libraries/UnsafeMath"}]},{"group":"Periphery Contracts","pages":[{"title":null,"href":"/contracts/reference/periphery/RamsesV3PositionManager"},{"title":null,"href":"/contracts/reference/periphery/NonfungibleTokenPositionDescriptor"},{"title":null,"href":"/contracts/reference/periphery/SwapRouter"}]},{"group":"Periphery Interfaces","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/periphery/interfaces/IRamsesV3PositionManager"},{"title":null,"href":"/contracts/reference/periphery/interfaces/INonfungibleTokenPositionDescriptor"},{"title":null,"href":"/contracts/reference/periphery/interfaces/ISwapRouter"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IQuoter"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IQuoterV2"},{"title":null,"href":"/contracts/reference/periphery/interfaces/ITickLens"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IMulticall"},{"title":null,"href":"/contracts/reference/periphery/interfaces/ISelfPermit"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IPoolInitializer"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IPeripheryImmutableState"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IPeripheryPayments"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IPeripheryPaymentsWithFee"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IERC20Metadata"},{"title":null,"href":"/contracts/reference/periphery/interfaces/IERC721Permit"},{"title":null,"href":"/contracts/reference/periphery/interfaces/external/IERC1271"},{"title":null,"href":"/contracts/reference/periphery/interfaces/external/IERC20PermitAllowed"},{"title":null,"href":"/contracts/reference/periphery/interfaces/external/IWETH9"}]},{"group":"Periphery Base","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/periphery/base/BlockTimestamp"},{"title":null,"href":"/contracts/reference/periphery/base/ERC721Permit"},{"title":null,"href":"/contracts/reference/periphery/base/LiquidityManagement"},{"title":null,"href":"/contracts/reference/periphery/base/Multicall"},{"title":null,"href":"/contracts/reference/periphery/base/PeripheryImmutableState"},{"title":null,"href":"/contracts/reference/periphery/base/PeripheryPayments"},{"title":null,"href":"/contracts/reference/periphery/base/PeripheryPaymentsWithFee"},{"title":null,"href":"/contracts/reference/periphery/base/PoolInitializer"},{"title":null,"href":"/contracts/reference/periphery/base/SelfPermit"}]},{"group":"Periphery Lens","pages":[{"title":null,"href":"/contracts/reference/periphery/lens/TickLens"},{"title":null,"href":"/contracts/reference/periphery/lens/Quoter"},{"title":null,"href":"/contracts/reference/periphery/lens/QuoterV2"}]},{"group":"Periphery Libraries","expanded":false,"pages":[{"title":null,"href":"/contracts/reference/periphery/libraries/Base64"},{"title":null,"href":"/contracts/reference/periphery/libraries/BytesLib"},{"title":null,"href":"/contracts/reference/periphery/libraries/ChainId"},{"title":null,"href":"/contracts/reference/periphery/libraries/HexStrings"},{"title":null,"href":"/contracts/reference/periphery/libraries/LiquidityAmounts"},{"title":null,"href":"/contracts/reference/periphery/libraries/NFTDescriptor"},{"title":null,"href":"/contracts/reference/periphery/libraries/NFTSVG"},{"title":null,"href":"/contracts/reference/periphery/libraries/Path"},{"title":null,"href":"/contracts/reference/periphery/libraries/PoolTicksCounter"},{"title":null,"href":"/contracts/reference/periphery/libraries/PositionKey"},{"title":null,"href":"/contracts/reference/periphery/libraries/TokenRatioSortOrder"},{"title":null,"href":"/contracts/reference/periphery/libraries/TransferHelper"}]},{"group":"Gauge \u0026 Fees","pages":[{"title":null,"href":"/contracts/reference/gauge/GaugeV3"},{"title":null,"href":"/contracts/reference/gauge/FeeCollector"},{"title":null,"href":"/contracts/reference/gauge/FeeDistributor"},{"title":"Sarcophagus","icon":"tombstone","href":"/contracts/reference/sarcophagus"}]},{"group":"DLMM","pages":[{"title":"DLMM Contract Architecture","href":"/contracts/reference/dlmm/overview"},{"title":"Robinhood DLMM Deployments","href":"/contracts/reference/dlmm/deployments"}]},{"group":"Governance","pages":[{"title":null,"href":"/contracts/reference/governance/Voter"},{"title":null,"href":"/contracts/reference/governance/Minter"},{"title":null,"href":"/contracts/reference/governance/VoteModule"},{"title":null,"href":"/contracts/reference/governance/AccessHub"}]},{"group":"Tokens","pages":[{"title":null,"href":"/contracts/reference/tokens/xRAM"},{"title":null,"href":"/contracts/reference/tokens/R33"}]},{"group":"Deployments","pages":[{"title":"Deployment Addresses","href":"/contracts/reference/deployments/deployments"}]}]}]},{"tab":"API Reference","icon":"server","pages":[{"title":"API Reference","href":"/users-api-reference/overview"}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/sdk/overview"}]}]},"title":"Overview - Ramses Technical Documentation","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":[],"chunks":[]}