Skip to main content

Contract Info

PropertyValue
AddressRead from MemeFactory.bondingCurve() (see Addresses for MemeFactory address)
NetworkKasplex (see Addresses for chain details)
All calculation functions are pure — they don’t read or modify state. You can call them off-chain for gas-free price quotes.

Functions

calculateBuyReturnWithParams

Calculate how many tokens you get for a given KAS amount.
function calculateBuyReturnWithParams(
    uint256 kasIn,
    uint256 tokenReserves,
    uint256 kasReserves,
    uint256 vToken,
    uint256 vKas
) external pure returns (uint256 tokensOut)
ParameterTypeDescription
kasInuint256KAS amount to spend (wei)
tokenReservesuint256Current token reserves from getTokenInfo()
kasReservesuint256Current KAS reserves from getTokenInfo()
vTokenuint256Virtual token from getTokenParamVersion()
vKasuint256Virtual KAS from getTokenParamVersion()

calculateSellReturnWithParams

Calculate how much KAS you get for selling tokens.
function calculateSellReturnWithParams(
    uint256 tokensIn,
    uint256 tokenReserves,
    uint256 kasReserves,
    uint256 vToken,
    uint256 vKas
) external pure returns (uint256 kasOut)
ParameterTypeDescription
tokensInuint256Token amount to sell (wei)
tokenReservesuint256Current token reserves from getTokenInfo()
kasReservesuint256Current KAS reserves from getTokenInfo()
vTokenuint256Virtual token from getTokenParamVersion()
vKasuint256Virtual KAS from getTokenParamVersion()

calculateBuyCostWithParams

Calculate how much KAS you need to get a desired amount of tokens.
function calculateBuyCostWithParams(
    uint256 tokensOut,
    uint256 tokenReserves,
    uint256 kasReserves,
    uint256 vToken,
    uint256 vKas
) external pure returns (uint256 kasIn)
ParameterTypeDescription
tokensOutuint256Desired token amount (wei)
tokenReservesuint256Current token reserves from getTokenInfo()
kasReservesuint256Current KAS reserves from getTokenInfo()
vTokenuint256Virtual token from getTokenParamVersion()
vKasuint256Virtual KAS from getTokenParamVersion()

getCurrentPrice

Get the current spot price.
function getCurrentPrice(
    uint256 tokenReserves,
    uint256 kasReserves
) external view returns (uint256 price)

virtualToken / virtualKas

function virtualToken() external view returns (uint256)
function virtualKas() external view returns (uint256)
Default virtual reserves configured in the BondingCurve contract. Note: individual tokens may use different values via getTokenParamVersion().

curveType

function curveType() external view returns (uint256)
Returns the curve type identifier.

Full ABI (JSON)

[
  {
    "inputs": [{"internalType": "uint256", "name": "kasIn", "type": "uint256"}, {"internalType": "uint256", "name": "tokenReserves", "type": "uint256"}, {"internalType": "uint256", "name": "kasReserves", "type": "uint256"}, {"internalType": "uint256", "name": "vToken", "type": "uint256"}, {"internalType": "uint256", "name": "vKas", "type": "uint256"}],
    "name": "calculateBuyReturnWithParams",
    "outputs": [{"internalType": "uint256", "name": "tokensOut", "type": "uint256"}],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [{"internalType": "uint256", "name": "tokensOut", "type": "uint256"}, {"internalType": "uint256", "name": "tokenReserves", "type": "uint256"}, {"internalType": "uint256", "name": "kasReserves", "type": "uint256"}, {"internalType": "uint256", "name": "vToken", "type": "uint256"}, {"internalType": "uint256", "name": "vKas", "type": "uint256"}],
    "name": "calculateBuyCostWithParams",
    "outputs": [{"internalType": "uint256", "name": "kasIn", "type": "uint256"}],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [{"internalType": "uint256", "name": "tokensIn", "type": "uint256"}, {"internalType": "uint256", "name": "tokenReserves", "type": "uint256"}, {"internalType": "uint256", "name": "kasReserves", "type": "uint256"}, {"internalType": "uint256", "name": "vToken", "type": "uint256"}, {"internalType": "uint256", "name": "vKas", "type": "uint256"}],
    "name": "calculateSellReturnWithParams",
    "outputs": [{"internalType": "uint256", "name": "kasOut", "type": "uint256"}],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [{"internalType": "uint256", "name": "tokenReserves", "type": "uint256"}, {"internalType": "uint256", "name": "kasReserves", "type": "uint256"}],
    "name": "getCurrentPrice",
    "outputs": [{"internalType": "uint256", "name": "price", "type": "uint256"}],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "virtualToken",
    "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "virtualKas",
    "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "curveType",
    "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
    "stateMutability": "view",
    "type": "function"
  }
]