Rates and Loan Terms
Extension Action
Confirm, apply or cancel a maturity extension proposal
POST
Builds the transaction for the next step of a maturity extension proposed with Propose Extension. The three actions are signed by different roles.
The API reads the proposal first and refuses what the contract would revert on, with one gap named below. Record each mined step with Confirm Extension Transaction.
Path Parameters
string
required
Market ID.
string
required
Proposal ID on the market, digits only. List Extensions returns it.
string
required
confirm, apply or cancel.Body Parameters
array
On-chain loan IDs for one
apply page, each a positive integer or a string of digits. Required by apply, 1 to 200 entries. Ignored by confirm and cancel.Confirm Within Seven Days
A proposal lapses if the admin does not confirm it within seven days of being made, and a lapsed proposal is refused withEXTENSION_EXPIRED. Propose it again. The API also re-checks that the proposed date still pushes the loan’s maturity or the floor out.
The API does not re-check that a LOAN proposal’s loan is still open. A loan repaid or liquidated since the proposal makes the confirmation revert on-chain, so read it with Get Loan before the admin signs.
A confirmed BATCH never lapses. It stays applicable until it is cancelled.
Apply a Batch in Pages
Send the loan IDs in pages of up to 200. Re-running a page is harmless. A loan that is closed, carries no maturity, or already matures on or after the proposed date is skipped on-chain rather than reverting the page. A batch reaches only the loans that existed when it was proposed,1 to its maxLoanId. A page naming a later loan is refused with EXTENSION_LOAN_OUT_OF_SCOPE, and error.details lists maxLoanId and the IDs outOfScope. Propose a new extension for those loans.
Switched Off
With the market’s extension switch off,confirm and apply are refused with EXTENSION_NOT_ALLOWED. cancel still works, so a proposal can always be withdrawn.
Response Fields
The calldata response carries the transaction twice.transaction holds to and data. The same to and data also sit directly on data, and that is where the chainId and value binding lands, so sign from those four fields.
object
