Skip to main content
Modular liquidity protocol powering perpetual futures and synthetic assets on Base. Account-based system with collateral delegation to liquidity pools.

What it offers

  • deposit: Deposit collateral into an account
  • withdraw: Withdraw collateral from an account
  • delegateCollateral: Delegate collateral to a pool (via CoreProxy)
  • commitOrder: Commit a perps trade order (via PerpsMarketProxy)
  • modifyCollateral: Modify perps account collateral

Notes

  • Account-based system - create account NFT first
  • accountId is uint128, collateral ops use token amount in token decimals
  • delegateCollateral assigns collateral to a specific pool for earning fees
  • commitOrder sizeDelta: positive = long, negative = short
  • Settlement happens asynchronously via keepers after commitOrder

Its names in a program

On Base, SynthetixV3 is a namespace: its contracts need no import.

Deployments

ABI

CoreProxyABI

import CoreProxyABI from "./protocols/synthetix-v3/CoreProxyABI.json"; Speaks for: coreProxy.
  • deposit(uint128 accountId, address collateralType, uint256 tokenAmount)
  • withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)
  • delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 amount, uint256 leverage)

PerpsMarketProxyABI

import PerpsMarketProxyABI from "./protocols/synthetix-v3/PerpsMarketProxyABI.json"; Speaks for: perpsMarketProxy.
  • commitOrder((uint128 marketId, uint128 accountId, int128 sizeDelta, uint128 settlementStrategyId, uint256 acceptablePrice, bytes32 trackingCode, address referrer) commitment) returns ((uint256 commitmentTime, (uint128 marketId, uint128 accountId, int128 sizeDelta, uint128 settlementStrategyId, uint256 acceptablePrice, bytes32 trackingCode, address referrer) request) retOrder, uint256 fees)
  • modifyCollateral(uint128 accountId, uint128 collateralId, int256 amountDelta)

Next steps