SC Bonding Curve IDL
This page provides the Interface Description Language (IDL) for the SC Bonding Curve contract. The IDL describes the contract's instructions, accounts, and error codes in a standard format.
{
"version": "1.0.0",
"name": "sc_bonding_curve",
"instructions": [
{
"name": "createToken",
"accounts": [
{
"name": "propertiesAccount",
"isMut": true,
"isSigner": false
},
{
"name": "payerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ataProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": true,
"isSigner": false
},
{
"name": "tokenOwnerPda",
"isMut": true,
"isSigner": false
},
{
"name": "tokenOwnerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "mplTokenMetadataProgram",
"isMut": false,
"isSigner": false
},
{
"name": "mplTokenMetadata",
"isMut": true,
"isSigner": false
},
{
"name": "afterMigrationCommunityContributionWsolStorage",
"isMut": true,
"isSigner": false
},
{
"name": "afterMigrationCommunityContributionTokenStorage",
"isMut": true,
"isSigner": false
},
{
"name": "rentSysvar",
"isMut": false,
"isSigner": false
},
{
"name": "nativeMint",
"isMut": false,
"isSigner": false
},
{
"name": "cooldexOwner",
"isMut": false,
"isSigner": false
},
{
"name": "programAccount",
"isMut": false,
"isSigner": false
},
{
"name": "logAuthorityAccount",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "pdaTokenNonce",
"type": "u8"
},
{
"name": "uri",
"type": "string"
},
{
"name": "name",
"type": "string"
},
{
"name": "symbol",
"type": "string"
},
{
"name": "afterMigrationFee",
"type": "u16"
},
{
"name": "afterMigrationBurnBp",
"type": "u16"
},
{
"name": "afterMigrationHoldersBp",
"type": "u16"
},
{
"name": "afterMigrationLpBp",
"type": "u16"
},
{
"name": "loggingAccountBump",
"type": "u8"
}
]
},
{
"name": "buyToken",
"accounts": [
{
"name": "payerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenOwnerPda",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false
},
{
"name": "ownerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "feeAccount",
"isMut": true,
"isSigner": false
},
{
"name": "propertiesAccount",
"isMut": false,
"isSigner": false
},
{
"name": "programAccount",
"isMut": false,
"isSigner": false
},
{
"name": "logAuthorityAccount",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "pdaTokenNonce",
"type": "u8"
},
{
"name": "solToSpend",
"type": "u64"
},
{
"name": "minTokenToReceive",
"type": "u64"
},
{
"name": "loggingAccountBump",
"type": "u8"
}
]
},
{
"name": "sellToken",
"accounts": [
{
"name": "payerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenOwnerPda",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false
},
{
"name": "ownerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "feeAccount",
"isMut": true,
"isSigner": false
},
{
"name": "programAccount",
"isMut": false,
"isSigner": false
},
{
"name": "propertiesAccount",
"isMut": false,
"isSigner": false
},
{
"name": "logAuthorityAccount",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "pdaTokenNonce",
"type": "u8"
},
{
"name": "tokenToSpend",
"type": "u64"
},
{
"name": "minSolToReceive",
"type": "u64"
},
{
"name": "loggingAccountBump",
"type": "u8"
}
]
},
{
"name": "migrate",
"accounts": [
{
"name": "tokenMint",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenOwnerPda",
"isMut": true,
"isSigner": false
},
{
"name": "feeAccount",
"isMut": true,
"isSigner": true
},
{
"name": "tokenOwnerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "feeTokenAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "pdaTokenNonce",
"type": "u8"
}
]
},
{
"name": "validateLogRecord",
"accounts": [
{
"name": "loggingAuthority",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "loggingAccountBump",
"type": "u8"
}
]
},
{
"name": "adminSetProperties",
"accounts": [
{
"name": "adminAccount",
"isMut": false,
"isSigner": true
},
{
"name": "propertiesAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rentSysvar",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "initialVirtualSol",
"type": "u64"
},
{
"name": "initialVirtualToken",
"type": "u64"
},
{
"name": "platformFeeBps",
"type": "u16"
},
{
"name": "bump",
"type": "u8"
}
]
}
],
"accounts": [
{
"name": "TokenOwnerData",
"type": {
"kind": "struct",
"fields": [
{
"name": "initialized",
"type": "u8"
},
{
"name": "virtualSol",
"type": "u64"
},
{
"name": "virtualToken",
"type": "u64"
},
{
"name": "afterMigrationFee",
"type": "u16"
},
{
"name": "afterMigrationBurnBp",
"type": "u16"
}
]
}
},
{
"name": "Properties",
"type": {
"kind": "struct",
"fields": [
{
"name": "initialized",
"type": "u8"
},
{
"name": "bump",
"type": "u8"
},
{
"name": "initialVirtualSol",
"type": "u64"
},
{
"name": "initialVirtualToken",
"type": "u64"
},
{
"name": "platformFeeBps",
"type": "u16"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "BondingCurveDoesNotMatchMint",
"msg": "Bonding curve does not match mint"
},
{
"code": 6001,
"name": "TradingClosed",
"msg": "Trading for this token is closed"
},
{
"code": 6002,
"name": "NotReadyToMigrate",
"msg": "Token is not ready to migrate"
},
{
"code": 6003,
"name": "SlippageError",
"msg": "Slippage error"
},
{
"code": 6004,
"name": "WrongFeeReceiver",
"msg": "Wrong fee receiver"
},
{
"code": 6005,
"name": "LogicalError",
"msg": "Logical error"
}
]
}
Using the IDL
The IDL is just an example and DOES NOT work with ANCHOR!
Last updated