{
  "generated_at": "2026-07-24T23:05:00Z",
  "scope": "Semantic comparison of explorer-verified UPONRH deployment source against its closest upstream repositories.",
  "lineage": {
    "ve33_core": {
      "upstream": "Aerodrome",
      "repository": "https://github.com/aerodrome-finance/contracts",
      "commit": "1ba30815bba620f7e9faa34769ffd00c214c9b82",
      "basis": [
        "Minter, Voter, VotingEscrow, pool factory and reward topology match modern Aerodrome structure more closely than legacy Solidly or Thena.",
        "Aerodrome itself is a Velodrome/Solidly descendant."
      ]
    },
    "concentrated_liquidity": {
      "upstream": "Velodrome Slipstream",
      "repository": "https://github.com/velodrome-finance/slipstream",
      "commit": "193a6b85f836a229b76a8df3541a284a2368427b",
      "basis": [
        "CLFactory, CLPool, SwapRouter, NonfungiblePositionManager and fee-module interfaces follow Slipstream."
      ]
    }
  },
  "semantic_diffs": [
    {
      "contract": "UP",
      "classification": "low-risk functional extension",
      "findings": [
        "Mint remains restricted to the Minter contract.",
        "Adds standard allowance-aware burnFrom.",
        "No owner-only arbitrary mint, confiscation, transfer tax or hidden approval path was found."
      ]
    },
    {
      "contract": "Minter",
      "classification": "material economic customization, no hidden mint found",
      "findings": [
        "Adds governor-set rebaseRateBps, bounded at 10,000 basis points; live value was 0.",
        "calculateGrowth multiplies the upstream anti-dilution growth by rebaseRateBps.",
        "Team mint uses total combined epoch issuance so a 500 bps team rate equals exactly 5% of voter-plus-team mint.",
        "Uses current emission rather than stale weekly value in the tail-transition calculation, correcting a known upstream edge case.",
        "No alternate caller capable of minting UP was found."
      ]
    },
    {
      "contract": "VotingEscrow",
      "classification": "protective customization",
      "findings": [
        "Adds an AlreadyVoted guard before depositing a veNFT into a managed position.",
        "No administrator withdrawal of user locks, arbitrary NFT seizure or bypass of normal unlock accounting was found."
      ]
    },
    {
      "contract": "Voter",
      "classification": "high-trust custom subsystem",
      "findings": [
        "Adds GaugeCapController integration, cap modes, global/per-gauge fallbacks, epoch reserves, report locking, settlement and burn accounting.",
        "Managed-position deposits reset direct votes, reducing stale-vote carryover.",
        "The cap controller can materially change how much weekly issuance reaches gauges versus burn.",
        "The controller implementation is unverified; its behavior cannot be independently diffed from source.",
        "The acknowledged audit paths involving report invalidation and updateFor can cause fail-open or bypassed cap enforcement in specific states."
      ]
    },
    {
      "contract": "PoolFactory",
      "classification": "upstream-equivalent",
      "findings": [
        "Only licensing/naming and minor pool-creation refactoring were material in the reviewed diff.",
        "No fee-on-transfer siphon or administrator LP withdrawal path was found."
      ]
    },
    {
      "contract": "CLFactory",
      "classification": "operator-dependent module wiring",
      "diff_stat": {
        "hunks": 8,
        "insertions": 20,
        "deletions": 35
      },
      "findings": [
        "Constructor assigns factory owner and both fee-manager roles to the deployer, later transferred to the team Safe.",
        "Retains gas-bounded external fee-module calls, a 10% factory ceiling and fallback to tick-spacing fees.",
        "No administrator asset-transfer function was found."
      ]
    },
    {
      "contract": "CLPool",
      "classification": "Slipstream-compatible gauge adaptation",
      "diff_stat": {
        "hunks": 8,
        "insertions": 21,
        "deletions": 12
      },
      "findings": [
        "Uses protocol time helpers and a positionUpdate flag for gauge-compatible staked-position accounting.",
        "No manipulated price equation, reserve confiscation or hidden fee recipient was found."
      ]
    },
    {
      "contract": "CustomSwapFeeModule",
      "classification": "disclosure mismatch",
      "diff_stat": {
        "hunks": 2,
        "insertions": 9,
        "deletions": 9
      },
      "findings": [
        "Stores a manager-set per-pool fee and otherwise returns the tick-spacing fee.",
        "Contains no volatility, volume, TWAP or time-series calculation despite documentation describing automatic responsive fees.",
        "Module maximum is 3%; the factory separately rejects results above 10%."
      ]
    },
    {
      "contract": "CustomUnstakedFeeModule",
      "classification": "operator-controlled fee customization",
      "diff_stat": {
        "hunks": 2,
        "insertions": 8,
        "deletions": 8
      },
      "findings": [
        "Stores manager-set per-pool unstaked fee values.",
        "No hidden destination or transfer path was found in the verified module."
      ]
    },
    {
      "contract": "NonfungiblePositionManager",
      "classification": "protective staked-position accounting changes",
      "diff_stat": {
        "hunks": 6,
        "insertions": 43,
        "deletions": 34
      },
      "findings": [
        "When a position is staked, add/decrease-liquidity paths correctly treat the gauge as pool position owner.",
        "The changes avoid double fee accounting and do not create an administrator transfer path."
      ]
    },
    {
      "contract": "SwapRouter",
      "classification": "exact functional match",
      "diff_stat": {
        "hunks": 1,
        "insertions": 0,
        "deletions": 0
      },
      "findings": [
        "No functional difference from the pinned Slipstream upstream was found."
      ]
    }
  ],
  "admin_surface": [
    {
      "component": "Voter",
      "authority": "team Safe",
      "roles": ["governor", "epoch governor", "emergency council"],
      "material_actions": ["create/kill/revive gauges", "change cap policy/controller", "settle and administer epochs"]
    },
    {
      "component": "Minter",
      "authority": "team Safe via governor/team destination",
      "roles": ["team recipient", "economic parameter governance"],
      "material_actions": ["change bounded team/tail/rebase parameters through exposed governance paths"]
    },
    {
      "component": "VotingEscrow",
      "authority": "team Safe",
      "roles": ["team/manager"],
      "material_actions": ["managed veNFT administration and voter integration"]
    },
    {
      "component": "V2 PoolFactory",
      "authority": "team Safe",
      "roles": ["pauser", "fee manager"],
      "material_actions": ["pause swaps", "set default/custom fees within contract bounds"]
    },
    {
      "component": "CLFactory",
      "authority": "team Safe",
      "roles": ["owner", "swap-fee manager", "unstaked-fee manager"],
      "material_actions": ["replace fee modules", "change enabled tick spacing/fees", "manage pool fee configuration"]
    },
    {
      "component": "NonfungiblePositionManager",
      "authority": "team Safe",
      "roles": ["owner"],
      "material_actions": ["owner-only periphery administration; no core-pool custody seizure found"]
    },
    {
      "component": "FactoryRegistry",
      "authority": "team Safe",
      "roles": ["owner"],
      "material_actions": ["register factories and gauge/reward implementations consumed by the Voter"]
    },
    {
      "component": "GaugeCapController",
      "authority": "team-controlled policy path",
      "roles": ["unverified emission-cap oracle/controller"],
      "material_actions": ["quote gauge caps", "register gauges", "mark reports used"]
    }
  ],
  "proxy_and_delay_assessment": {
    "core_proxy_pattern": "Most core contracts are direct deployments rather than upgradeable proxies.",
    "independent_timelock_found": false,
    "safe": "0x0eEA30aBa3f07abFA20E4b544F55e0f917d9DFd8",
    "threshold": "2-of-3",
    "enabled_modules": 0,
    "conclusion": "Reduced implementation-upgrade risk does not offset immediate parameter/module control by the same 2-of-3 Safe."
  },
  "unverified_contracts": [
    {
      "name": "GaugeCapController",
      "address": "0x5739B0FcF359DF7a386C0fDD27464Dd15eE1687D",
      "materiality": "critical economic policy dependency"
    },
    {
      "name": "CompounderVault",
      "address": "0x559771bc4561600383Ac39Fd8945e5CABc55D22C",
      "materiality": "frontend-exposed user asset vault"
    }
  ]
}
