pub struct AdjustBorrowPositionRequest {
pub add_collateral_amount: Option<PositiveDecimal>,
pub borrow_loan_amount: Option<PositiveDecimal>,
pub borrow_product_id: BorrowProductId,
pub paymaster_context: Option<PaymasterContext>,
pub paymaster_url: Option<Url>,
pub remove_collateral_amount: Option<PositiveDecimal>,
pub repay_loan_amount: Option<PositiveDecimal>,
pub use_cdp_paymaster: bool,
pub wallet_secret_id: AdjustBorrowPositionRequestWalletSecretId,
}Expand description
A request to adjust an existing borrow position for an end user’s smart account on the specified borrow product.
The request can supply collateral, withdraw collateral, repay debt, and/or borrow more of the loan asset, broadcasting a user operation to apply the changes onchain.
A single request must not combine addCollateralAmount with removeCollateralAmount or repayLoanAmount, and must not combine borrowLoanAmount with repayLoanAmount or removeCollateralAmount. Otherwise any subset of the four amount fields may be supplied; at least one is required.
JSON schema
{
"description": "A request to adjust an existing borrow position for an end user's smart account on the specified borrow product.\nThe request can supply collateral, withdraw collateral, repay debt, and/or borrow more of the loan asset, broadcasting a user operation to apply the changes onchain.\nA single request must not combine `addCollateralAmount` with `removeCollateralAmount` or `repayLoanAmount`, and must not combine `borrowLoanAmount` with `repayLoanAmount` or `removeCollateralAmount`. Otherwise any subset of the four amount fields may be supplied; at least one is required.",
"examples": [
{
"addCollateralAmount": "1",
"borrowLoanAmount": "100",
"borrowProductId": "bp_07fb56c0-9afe-5440-8ff2-5b0e115458df",
"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",
"useCdpPaymaster",
"walletSecretId"
],
"properties": {
"addCollateralAmount": {
"description": "The amount of collateral to add to the position, as a decimal string in standard unit denomination of the collateral token (i.e. \"1\" for 1 cbBTC). Must not be combined with `removeCollateralAmount` or `repayLoanAmount`.",
"examples": [
"1"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"borrowLoanAmount": {
"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). Must not be combined with `repayLoanAmount` or `removeCollateralAmount`.",
"examples": [
"100"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"borrowProductId": {
"$ref": "#/components/schemas/BorrowProductId"
},
"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"
}
]
},
"removeCollateralAmount": {
"description": "The amount of collateral to withdraw from the position, as a decimal string in standard unit denomination of the collateral token (i.e. \"1\" for 1 cbBTC). Must not be combined with `addCollateralAmount` or `borrowLoanAmount`.",
"examples": [
"1"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"repayLoanAmount": {
"description": "The amount of the loan token to repay, as a decimal string in standard unit denomination of the loan token (i.e. \"100\" for 100 USDC). Must not be combined with `borrowLoanAmount` or `addCollateralAmount`.",
"examples": [
"100"
],
"allOf": [
{
"$ref": "#/components/schemas/PositiveDecimal"
}
]
},
"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§
§add_collateral_amount: Option<PositiveDecimal>The amount of collateral to add to the position, as a decimal string in standard unit denomination of the collateral token (i.e. “1” for 1 cbBTC). Must not be combined with removeCollateralAmount or repayLoanAmount.
borrow_loan_amount: Option<PositiveDecimal>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). Must not be combined with repayLoanAmount or removeCollateralAmount.
borrow_product_id: BorrowProductId§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.
remove_collateral_amount: Option<PositiveDecimal>The amount of collateral to withdraw from the position, as a decimal string in standard unit denomination of the collateral token (i.e. “1” for 1 cbBTC). Must not be combined with addCollateralAmount or borrowLoanAmount.
repay_loan_amount: Option<PositiveDecimal>The amount of the loan token to repay, as a decimal string in standard unit denomination of the loan token (i.e. “100” for 100 USDC). Must not be combined with borrowLoanAmount or addCollateralAmount.
use_cdp_paymaster: boolWhether to use the CDP Paymaster for the user operation. When true, paymasterUrl must not be set.
wallet_secret_id: AdjustBorrowPositionRequestWalletSecretIdThe ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth header.