pub struct CreateBorrowPositionRequest {
pub borrow_product_id: BorrowProductId,
pub collateral_amount: PositiveDecimal,
pub loan_amount: PositiveDecimal,
pub paymaster_context: Option<PaymasterContext>,
pub paymaster_url: Option<Url>,
pub use_cdp_paymaster: bool,
pub wallet_secret_id: CreateBorrowPositionRequestWalletSecretId,
}Expand description
A request to create a borrow position for an end user’s smart account for the specified borrow product. The smart account posts collateral and borrows against it, broadcasting a user operation to open the position onchain.
JSON schema
{
"description": "A request to create a borrow position for an end user's smart account for the specified borrow product. \nThe smart account posts collateral and borrows against it, broadcasting a user operation to open the position onchain.",
"examples": [
{
"borrowProductId": "bp_07fb56c0-9afe-5440-8ff2-5b0e115458df",
"collateralAmount": "1",
"loanAmount": "100",
"paymasterContext": {
"policyId": "962b252c-a726-4a37-8d86-333ce0a07299"
},
"paymasterUrl": "https://api.developer.coinbase.com/rpc/v1/base/AbCdEf123456",
"useCdpPaymaster": false,
"walletSecretId": "e051beeb-7163-4527-a5b6-35e301529ff2"
}
],
"type": "object",
"required": [
"borrowProductId",
"collateralAmount",
"loanAmount",
"useCdpPaymaster",
"walletSecretId"
],
"properties": {
"borrowProductId": {
"$ref": "#/components/schemas/BorrowProductId"
},
"collateralAmount": {
"description": "The amount of collateral to post, as a decimal string in standard unit denomination of the collateral token (i.e. \"1\" for 1 cbBTC).",
"examples": [
"1"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"loanAmount": {
"description": "The amount of the loan token to borrow, as a decimal string in standard unit denomination of the loan token (i.e. \"100\" for 100 USDC).",
"examples": [
"100"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"paymasterContext": {
"description": "Optional paymaster metadata forwarded to the configured paymaster service. Valid only when a paymaster is configured via `useCdpPaymaster: true` or a `paymasterUrl`.",
"allOf": [
{
"$ref": "#/components/schemas/PaymasterContext"
}
]
},
"paymasterUrl": {
"description": "Paymaster URL to use for the user operation. Must not be set when `useCdpPaymaster` is `true`.\nIf `useCdpPaymaster` is `false` and no `paymasterUrl` is set, the smart account must have sufficient funds to cover network fees.",
"examples": [
"https://api.developer.coinbase.com/rpc/v1/base/AbCdEf123456"
],
"allOf": [
{
"$ref": "#/components/schemas/Url"
}
]
},
"useCdpPaymaster": {
"description": "Whether to use the CDP Paymaster for the user operation. When `true`, `paymasterUrl` must not be set.",
"examples": [
false
],
"type": "boolean"
},
"walletSecretId": {
"description": "The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth header.",
"examples": [
"e051beeb-7163-4527-a5b6-35e301529ff2"
],
"type": "string",
"pattern": "^[a-zA-Z0-9-]{1,100}$"
}
}
}Fields§
§borrow_product_id: BorrowProductId§collateral_amount: PositiveDecimalThe amount of collateral to post, as a decimal string in standard unit denomination of the collateral token (i.e. “1” for 1 cbBTC).
loan_amount: PositiveDecimalThe amount of the loan token to borrow, as a decimal string in standard unit denomination of the loan token (i.e. “100” for 100 USDC).
paymaster_context: Option<PaymasterContext>Optional paymaster metadata forwarded to the configured paymaster service. Valid only when a paymaster is configured via useCdpPaymaster: true or a paymasterUrl.
paymaster_url: Option<Url>Paymaster URL to use for the user operation. Must not be set when useCdpPaymaster is true.
If useCdpPaymaster is false and no paymasterUrl is set, the smart account must have sufficient funds to cover network fees.
use_cdp_paymaster: boolWhether to use the CDP Paymaster for the user operation. When true, paymasterUrl must not be set.
wallet_secret_id: CreateBorrowPositionRequestWalletSecretIdThe ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth header.