Ammalgam Bug Bounty

Ammalgam Bug Bounty

@ammalgam
Live
Self-Triaged

Maximum reward

$25,000

Severity

Max. Reward

Critical

$25,000

High

$5,000

Deposit required

$50

Findings submitted

88

Start date

9 Jul 2026

KYC

Required to join

Please sign in as a researcher to join the bounty.

Log in

In scope

Severity

Min and Max Reward

Critical

$1,000 to $25,000


High

$500 to $5,000

Contract upgrades after the first round of bug bounty feedback with added features around the schedule of interest rates based on utilization.

Name
Description
Asset
Interest V1.1.0

External Library used to calculate interest accrual.

Validation V1.1.0

External library used to validate new loans at time of creation.

Liquidation V1.1.0

External library used to compute liquidations.

SaturationAndGeometricTWAPState V1.1.0

External contract used to compute time weighted average price and track liquidation saturation risk across price curve.

AmmalgamPair V1.1.0

The pair contract implementation with core logic and entry points for all interactions.

PairLockedLoans V1.1.0

A version of AmmalgamPair with some lending functionality disabled to be available to upgrade to in the case of an emergency.

PairBlockLendingFundRemoval V1.1.0

A version of AmmalgamPair with some lending functionality disabled to be available to upgrade to in the case of an emergency.

PairFrozen V1.1.0

A version of AmmalgamPair with all functionality disabled to be available to upgrade to in the case of an emergency.

PairBlockedBorrowLiquidity V1.1.0

A version of AmmalgamPair with borrow liquidity functionality disabled to be available to upgrade to in the case of an emergency.

PairBlockedBorrow V1.1.0

A version of AmmalgamPair with borrow underlying asset functionality disabled to be available to upgrade to in the case of an emergency.

PairBlockedAllBorrow

A version of AmmalgamPair with borrowing of liquidity and underlying asset functionality disabled to be available to upgrade to in the case of an emergency.

Out of scope

Out of Scope

The following are considered known issues and are not eligible for rewards. For generic exclusions, see the Cantina Bug Bounty Out-of-Scope Policy.

  • Any issue that does not result in an on-chain loss of funds
  • Informational findings and design choices related to the protocol
  • Issues that are ultimately user errors and can easily be caught in the frontend (for example, transfers to address(0))
  • Rounding errors and off-by-one behavior in the ERC-4626 helper interfaces that do not result in a loss of funds
  • Relatively high gas consumption
  • Findings involving borrowLiquidity() on contracts deployed in July of 2026.
  • Loss of funds resulting from violent market price movements, specifically any price increase greater than 33% or price decrease greater than 25% within a single block or 8-second period, or a repeated movement of price over multiple blocks.
  • Use of for loop to pass time and sync() without any validation of economic viability of liquidations at each iteration.
  • Behavior on any L2 or alternative L1 that we are not deployed on.

Submissions that depend on price change and passing of time with no checks for potential interventions at each block or 8 second period of time. If you POC relies on a large price change in one block, or multiple blocks followed by a passing of time to update the TWAP, it will be auto rejected. Below is an example of a function used within a submitted POC that will be automatically rejected with no deposit refund.

function _moveAndSettle(uint256 yIn, uint256 xOut) private {    // A separate market actor moves spot down by about 24.9%, within the bounty bound.    vm.startPrank(MARKET);    y.transfer(address(pair), yIn);    pair.swap(xOut, 0, MARKET, "");    vm.stopPrank();
    // Hold the new market price long enough for the configured TWAP state to    // converge without any additional same-block price movement.    for (uint256 i; i < 60; ++i) {        vm.warp(block.timestamp + 8);        pair.sync();    }}

Default Out of Scope

Standard out-of-scope items per the Cantina Bug Bounty Out-of-Scope Policy.