pub struct CloseBorrowPositionRequest {
pub borrow_product_id: BorrowProductId,
pub paymaster_context: Option<PaymasterContext>,
pub paymaster_url: Option<Url>,
pub use_cdp_paymaster: bool,
pub wallet_secret_id: CloseBorrowPositionRequestWalletSecretId,
}Expand description
A request to close an end user smart account’s borrow position for the specified borrow product.
Closing fully repays the position’s outstanding loan and withdraws all remaining collateral back to the smart account, broadcasting a single user operation to settle the position onchain. There is no partial close; use adjustBorrowPositionWithEndUserAccount to adjust a position without closing it.
JSON schema
{
"description": "A request to close an end user smart account's borrow position for the specified borrow product.\nClosing fully repays the position's outstanding loan and withdraws all remaining collateral back to the smart account, broadcasting a single user operation to settle the position onchain. There is no partial close; use `adjustBorrowPositionWithEndUserAccount` to adjust a position without closing it.",
"examples": [
{
"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": {
"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"
}
]
},
"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§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: CloseBorrowPositionRequestWalletSecretIdThe ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth header.