>>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to withdraw. |
+
+Returns:
+
+Promise<[PopulatedLiquityTransaction](./lib-base.populatedliquitytransaction.md)<P, [SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)>>>>
+
+## Remarks
+
+As a side-effect, the transaction will also pay out the Stability Deposit's [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.populatedliquitytransaction.md b/docs/sdk/lib-base.populatedliquitytransaction.md
new file mode 100644
index 00000000..35410902
--- /dev/null
+++ b/docs/sdk/lib-base.populatedliquitytransaction.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedLiquityTransaction](./lib-base.populatedliquitytransaction.md)
+
+## PopulatedLiquityTransaction interface
+
+A transaction that has been prepared for sending.
+
+Signature:
+
+```typescript
+export interface PopulatedLiquityTransaction
+```
+
+## Remarks
+
+Implemented by [PopulatedEthersLiquityTransaction](./lib-ethers.populatedethersliquitytransaction.md).
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [rawPopulatedTransaction](./lib-base.populatedliquitytransaction.rawpopulatedtransaction.md) | P | Implementation-specific populated transaction object. |
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [send()](./lib-base.populatedliquitytransaction.send.md) | Send the transaction. |
+
diff --git a/docs/sdk/lib-base.populatedliquitytransaction.rawpopulatedtransaction.md b/docs/sdk/lib-base.populatedliquitytransaction.rawpopulatedtransaction.md
new file mode 100644
index 00000000..4f8ab8c3
--- /dev/null
+++ b/docs/sdk/lib-base.populatedliquitytransaction.rawpopulatedtransaction.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedLiquityTransaction](./lib-base.populatedliquitytransaction.md) > [rawPopulatedTransaction](./lib-base.populatedliquitytransaction.rawpopulatedtransaction.md)
+
+## PopulatedLiquityTransaction.rawPopulatedTransaction property
+
+Implementation-specific populated transaction object.
+
+Signature:
+
+```typescript
+readonly rawPopulatedTransaction: P;
+```
diff --git a/docs/sdk/lib-base.populatedliquitytransaction.send.md b/docs/sdk/lib-base.populatedliquitytransaction.send.md
new file mode 100644
index 00000000..b7d4e7ec
--- /dev/null
+++ b/docs/sdk/lib-base.populatedliquitytransaction.send.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedLiquityTransaction](./lib-base.populatedliquitytransaction.md) > [send](./lib-base.populatedliquitytransaction.send.md)
+
+## PopulatedLiquityTransaction.send() method
+
+Send the transaction.
+
+Signature:
+
+```typescript
+send(): Promise;
+```
+Returns:
+
+Promise<T>
+
+An object that implements [SentLiquityTransaction](./lib-base.sentliquitytransaction.md).
+
diff --git a/docs/sdk/lib-base.populatedredemption.attemptedlusdamount.md b/docs/sdk/lib-base.populatedredemption.attemptedlusdamount.md
new file mode 100644
index 00000000..d4a01b2e
--- /dev/null
+++ b/docs/sdk/lib-base.populatedredemption.attemptedlusdamount.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedRedemption](./lib-base.populatedredemption.md) > [attemptedLUSDAmount](./lib-base.populatedredemption.attemptedlusdamount.md)
+
+## PopulatedRedemption.attemptedLUSDAmount property
+
+Amount of LUSD the redeemer is trying to redeem.
+
+Signature:
+
+```typescript
+readonly attemptedLUSDAmount: Decimal;
+```
diff --git a/docs/sdk/lib-base.populatedredemption.increaseamountbyminimumnetdebt.md b/docs/sdk/lib-base.populatedredemption.increaseamountbyminimumnetdebt.md
new file mode 100644
index 00000000..96979595
--- /dev/null
+++ b/docs/sdk/lib-base.populatedredemption.increaseamountbyminimumnetdebt.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedRedemption](./lib-base.populatedredemption.md) > [increaseAmountByMinimumNetDebt](./lib-base.populatedredemption.increaseamountbyminimumnetdebt.md)
+
+## PopulatedRedemption.increaseAmountByMinimumNetDebt() method
+
+Prepare a new transaction by increasing the attempted amount to the next lowest redeemable value.
+
+Signature:
+
+```typescript
+increaseAmountByMinimumNetDebt(maxRedemptionRate?: Decimalish): Promise>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| maxRedemptionRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [redemption rate](./lib-base.fees.redemptionrate.md) to use in the new transaction. |
+
+Returns:
+
+Promise<[PopulatedRedemption](./lib-base.populatedredemption.md)<P, S, R>>
+
+## Remarks
+
+If `maxRedemptionRate` is omitted, the original transaction's `maxRedemptionRate` is reused unless that was also omitted, in which case the current redemption rate (based on the increased amount) plus 0.1% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.populatedredemption.istruncated.md b/docs/sdk/lib-base.populatedredemption.istruncated.md
new file mode 100644
index 00000000..d7bfdd30
--- /dev/null
+++ b/docs/sdk/lib-base.populatedredemption.istruncated.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedRedemption](./lib-base.populatedredemption.md) > [isTruncated](./lib-base.populatedredemption.istruncated.md)
+
+## PopulatedRedemption.isTruncated property
+
+Whether `redeemableLUSDAmount` is less than `attemptedLUSDAmount`.
+
+Signature:
+
+```typescript
+readonly isTruncated: boolean;
+```
diff --git a/docs/sdk/lib-base.populatedredemption.md b/docs/sdk/lib-base.populatedredemption.md
new file mode 100644
index 00000000..77544460
--- /dev/null
+++ b/docs/sdk/lib-base.populatedredemption.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedRedemption](./lib-base.populatedredemption.md)
+
+## PopulatedRedemption interface
+
+A redemption transaction that has been prepared for sending.
+
+Signature:
+
+```typescript
+export interface PopulatedRedemption extends PopulatedLiquityTransaction
>>
+```
+Extends: [PopulatedLiquityTransaction](./lib-base.populatedliquitytransaction.md)<P, [SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [RedemptionDetails](./lib-base.redemptiondetails.md)>>>
+
+## Remarks
+
+The Liquity protocol fulfills redemptions by repaying the debt of Troves in ascending order of their collateralization ratio, and taking a portion of their collateral in exchange. Due to the [minimum debt](./lib-base.lusd_minimum_debt.md) requirement that Troves must fulfill, some LUSD amounts are not possible to redeem exactly.
+
+When [redeemLUSD()](./lib-base.populatableliquity.redeemlusd.md) is called with an amount that can't be fully redeemed, the amount will be truncated (see the `redeemableLUSDAmount` property). When this happens, the redeemer can either redeem the truncated amount by sending the transaction unchanged, or prepare a new transaction by [increasing the amount](./lib-base.populatedredemption.increaseamountbyminimumnetdebt.md) to the next lowest possible value, which is the sum of the truncated amount and [LUSD\_MINIMUM\_NET\_DEBT](./lib-base.lusd_minimum_net_debt.md).
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [attemptedLUSDAmount](./lib-base.populatedredemption.attemptedlusdamount.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD the redeemer is trying to redeem. |
+| [isTruncated](./lib-base.populatedredemption.istruncated.md) | boolean | Whether redeemableLUSDAmount is less than attemptedLUSDAmount. |
+| [redeemableLUSDAmount](./lib-base.populatedredemption.redeemablelusdamount.md) | [Decimal](./lib-base.decimal.md) | Maximum amount of LUSD that is currently redeemable from attemptedLUSDAmount. |
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [increaseAmountByMinimumNetDebt(maxRedemptionRate)](./lib-base.populatedredemption.increaseamountbyminimumnetdebt.md) | Prepare a new transaction by increasing the attempted amount to the next lowest redeemable value. |
+
diff --git a/docs/sdk/lib-base.populatedredemption.redeemablelusdamount.md b/docs/sdk/lib-base.populatedredemption.redeemablelusdamount.md
new file mode 100644
index 00000000..19214520
--- /dev/null
+++ b/docs/sdk/lib-base.populatedredemption.redeemablelusdamount.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [PopulatedRedemption](./lib-base.populatedredemption.md) > [redeemableLUSDAmount](./lib-base.populatedredemption.redeemablelusdamount.md)
+
+## PopulatedRedemption.redeemableLUSDAmount property
+
+Maximum amount of LUSD that is currently redeemable from `attemptedLUSDAmount`.
+
+Signature:
+
+```typescript
+readonly redeemableLUSDAmount: Decimal;
+```
diff --git a/docs/sdk/lib-base.readableliquity.getcollateralsurplusbalance.md b/docs/sdk/lib-base.readableliquity.getcollateralsurplusbalance.md
new file mode 100644
index 00000000..cb9af87c
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getcollateralsurplusbalance.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getCollateralSurplusBalance](./lib-base.readableliquity.getcollateralsurplusbalance.md)
+
+## ReadableLiquity.getCollateralSurplusBalance() method
+
+Get the amount of leftover collateral available for withdrawal by an address.
+
+Signature:
+
+```typescript
+getCollateralSurplusBalance(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
+## Remarks
+
+When a Trove gets liquidated or redeemed, any collateral it has above 110% (in case of liquidation) or 100% collateralization (in case of redemption) gets sent to a pool, where it can be withdrawn from using [claimCollateralSurplus()](./lib-base.transactableliquity.claimcollateralsurplus.md).
+
diff --git a/docs/sdk/lib-base.readableliquity.getfees.md b/docs/sdk/lib-base.readableliquity.getfees.md
new file mode 100644
index 00000000..f259a144
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getfees.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getFees](./lib-base.readableliquity.getfees.md)
+
+## ReadableLiquity.getFees() method
+
+Get a calculator for current fees.
+
+Signature:
+
+```typescript
+getFees(): Promise;
+```
+Returns:
+
+Promise<[Fees](./lib-base.fees.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getfrontendstatus.md b/docs/sdk/lib-base.readableliquity.getfrontendstatus.md
new file mode 100644
index 00000000..2308a469
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getfrontendstatus.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getFrontendStatus](./lib-base.readableliquity.getfrontendstatus.md)
+
+## ReadableLiquity.getFrontendStatus() method
+
+Check whether an address is registered as a Liquity frontend, and what its kickback rate is.
+
+Signature:
+
+```typescript
+getFrontendStatus(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address to check. |
+
+Returns:
+
+Promise<[FrontendStatus](./lib-base.frontendstatus.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getliquiditymininglqtyreward.md b/docs/sdk/lib-base.readableliquity.getliquiditymininglqtyreward.md
new file mode 100644
index 00000000..ba6d5b53
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getliquiditymininglqtyreward.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLiquidityMiningLQTYReward](./lib-base.readableliquity.getliquiditymininglqtyreward.md)
+
+## ReadableLiquity.getLiquidityMiningLQTYReward() method
+
+Get the amount of LQTY earned by an address through mining liquidity.
+
+Signature:
+
+```typescript
+getLiquidityMiningLQTYReward(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address whose LQTY reward should be retrieved. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getliquidityminingstake.md b/docs/sdk/lib-base.readableliquity.getliquidityminingstake.md
new file mode 100644
index 00000000..db40ac8a
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getliquidityminingstake.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLiquidityMiningStake](./lib-base.readableliquity.getliquidityminingstake.md)
+
+## ReadableLiquity.getLiquidityMiningStake() method
+
+Get the amount of Uniswap ETH/LUSD LP tokens currently staked by an address in liquidity mining.
+
+Signature:
+
+```typescript
+getLiquidityMiningStake(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address whose LP stake should be retrieved. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getlqtybalance.md b/docs/sdk/lib-base.readableliquity.getlqtybalance.md
new file mode 100644
index 00000000..25a7f0e4
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getlqtybalance.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLQTYBalance](./lib-base.readableliquity.getlqtybalance.md)
+
+## ReadableLiquity.getLQTYBalance() method
+
+Get the amount of LQTY held by an address.
+
+Signature:
+
+```typescript
+getLQTYBalance(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address whose balance should be retrieved. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getlqtystake.md b/docs/sdk/lib-base.readableliquity.getlqtystake.md
new file mode 100644
index 00000000..e54e8972
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getlqtystake.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLQTYStake](./lib-base.readableliquity.getlqtystake.md)
+
+## ReadableLiquity.getLQTYStake() method
+
+Get the current state of an LQTY Stake.
+
+Signature:
+
+```typescript
+getLQTYStake(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address that owns the LQTY Stake. |
+
+Returns:
+
+Promise<[LQTYStake](./lib-base.lqtystake.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getlusdbalance.md b/docs/sdk/lib-base.readableliquity.getlusdbalance.md
new file mode 100644
index 00000000..3340d487
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getlusdbalance.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLUSDBalance](./lib-base.readableliquity.getlusdbalance.md)
+
+## ReadableLiquity.getLUSDBalance() method
+
+Get the amount of LUSD held by an address.
+
+Signature:
+
+```typescript
+getLUSDBalance(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address whose balance should be retrieved. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getlusdinstabilitypool.md b/docs/sdk/lib-base.readableliquity.getlusdinstabilitypool.md
new file mode 100644
index 00000000..e60f654b
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getlusdinstabilitypool.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getLUSDInStabilityPool](./lib-base.readableliquity.getlusdinstabilitypool.md)
+
+## ReadableLiquity.getLUSDInStabilityPool() method
+
+Get the total amount of LUSD currently deposited in the Stability Pool.
+
+Signature:
+
+```typescript
+getLUSDInStabilityPool(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getnumberoftroves.md b/docs/sdk/lib-base.readableliquity.getnumberoftroves.md
new file mode 100644
index 00000000..c0fd4555
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getnumberoftroves.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getNumberOfTroves](./lib-base.readableliquity.getnumberoftroves.md)
+
+## ReadableLiquity.getNumberOfTroves() method
+
+Get number of Troves that are currently open.
+
+Signature:
+
+```typescript
+getNumberOfTroves(): Promise;
+```
+Returns:
+
+Promise<number>
+
diff --git a/docs/sdk/lib-base.readableliquity.getprice.md b/docs/sdk/lib-base.readableliquity.getprice.md
new file mode 100644
index 00000000..1fa031f0
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getprice.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getPrice](./lib-base.readableliquity.getprice.md)
+
+## ReadableLiquity.getPrice() method
+
+Get the current price of the native currency (e.g. Ether) in USD.
+
+Signature:
+
+```typescript
+getPrice(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getremainingliquiditymininglqtyreward.md b/docs/sdk/lib-base.readableliquity.getremainingliquiditymininglqtyreward.md
new file mode 100644
index 00000000..35e6058d
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getremainingliquiditymininglqtyreward.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getRemainingLiquidityMiningLQTYReward](./lib-base.readableliquity.getremainingliquiditymininglqtyreward.md)
+
+## ReadableLiquity.getRemainingLiquidityMiningLQTYReward() method
+
+Get the remaining LQTY that will be collectively rewarded to liquidity miners.
+
+Signature:
+
+```typescript
+getRemainingLiquidityMiningLQTYReward(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getremainingstabilitypoollqtyreward.md b/docs/sdk/lib-base.readableliquity.getremainingstabilitypoollqtyreward.md
new file mode 100644
index 00000000..63b639f1
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getremainingstabilitypoollqtyreward.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getRemainingStabilityPoolLQTYReward](./lib-base.readableliquity.getremainingstabilitypoollqtyreward.md)
+
+## ReadableLiquity.getRemainingStabilityPoolLQTYReward() method
+
+Get the remaining LQTY that will be collectively rewarded to stability depositors.
+
+Signature:
+
+```typescript
+getRemainingStabilityPoolLQTYReward(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getstabilitydeposit.md b/docs/sdk/lib-base.readableliquity.getstabilitydeposit.md
new file mode 100644
index 00000000..3defac25
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getstabilitydeposit.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getStabilityDeposit](./lib-base.readableliquity.getstabilitydeposit.md)
+
+## ReadableLiquity.getStabilityDeposit() method
+
+Get the current state of a Stability Deposit.
+
+Signature:
+
+```typescript
+getStabilityDeposit(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address that owns the Stability Deposit. |
+
+Returns:
+
+Promise<[StabilityDeposit](./lib-base.stabilitydeposit.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.gettotal.md b/docs/sdk/lib-base.readableliquity.gettotal.md
new file mode 100644
index 00000000..0d24d5d7
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettotal.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTotal](./lib-base.readableliquity.gettotal.md)
+
+## ReadableLiquity.getTotal() method
+
+Get the total amount of collateral and debt in the Liquity system.
+
+Signature:
+
+```typescript
+getTotal(): Promise;
+```
+Returns:
+
+Promise<[Trove](./lib-base.trove.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.gettotalredistributed.md b/docs/sdk/lib-base.readableliquity.gettotalredistributed.md
new file mode 100644
index 00000000..e7e26292
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettotalredistributed.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTotalRedistributed](./lib-base.readableliquity.gettotalredistributed.md)
+
+## ReadableLiquity.getTotalRedistributed() method
+
+Get the total collateral and debt per stake that has been liquidated through redistribution.
+
+Signature:
+
+```typescript
+getTotalRedistributed(): Promise;
+```
+Returns:
+
+Promise<[Trove](./lib-base.trove.md)>
+
+## Remarks
+
+Needed when dealing with instances of [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md).
+
diff --git a/docs/sdk/lib-base.readableliquity.gettotalstakedlqty.md b/docs/sdk/lib-base.readableliquity.gettotalstakedlqty.md
new file mode 100644
index 00000000..e338a679
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettotalstakedlqty.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTotalStakedLQTY](./lib-base.readableliquity.gettotalstakedlqty.md)
+
+## ReadableLiquity.getTotalStakedLQTY() method
+
+Get the total amount of LQTY currently staked.
+
+Signature:
+
+```typescript
+getTotalStakedLQTY(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.gettotalstakedunitokens.md b/docs/sdk/lib-base.readableliquity.gettotalstakedunitokens.md
new file mode 100644
index 00000000..757131b5
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettotalstakedunitokens.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTotalStakedUniTokens](./lib-base.readableliquity.gettotalstakedunitokens.md)
+
+## ReadableLiquity.getTotalStakedUniTokens() method
+
+Get the total amount of Uniswap ETH/LUSD LP tokens currently staked in liquidity mining.
+
+Signature:
+
+```typescript
+getTotalStakedUniTokens(): Promise;
+```
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.gettrove.md b/docs/sdk/lib-base.readableliquity.gettrove.md
new file mode 100644
index 00000000..5dd47eb8
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettrove.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTrove](./lib-base.readableliquity.gettrove.md)
+
+## ReadableLiquity.getTrove() method
+
+Get the current state of a Trove.
+
+Signature:
+
+```typescript
+getTrove(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address that owns the Trove. |
+
+Returns:
+
+Promise<[UserTrove](./lib-base.usertrove.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.gettrovebeforeredistribution.md b/docs/sdk/lib-base.readableliquity.gettrovebeforeredistribution.md
new file mode 100644
index 00000000..772db530
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettrovebeforeredistribution.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTroveBeforeRedistribution](./lib-base.readableliquity.gettrovebeforeredistribution.md)
+
+## ReadableLiquity.getTroveBeforeRedistribution() method
+
+Get a Trove in its state after the last direct modification.
+
+Signature:
+
+```typescript
+getTroveBeforeRedistribution(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address that owns the Trove. |
+
+Returns:
+
+Promise<[TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md)>
+
+## Remarks
+
+The current state of a Trove can be fetched using [getTrove()](./lib-base.readableliquity.gettrove.md).
+
diff --git a/docs/sdk/lib-base.readableliquity.gettroves_1.md b/docs/sdk/lib-base.readableliquity.gettroves_1.md
new file mode 100644
index 00000000..c24583c1
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.gettroves_1.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getTroves](./lib-base.readableliquity.gettroves_1.md)
+
+## ReadableLiquity.getTroves() method
+
+Get a slice from the list of Troves.
+
+Signature:
+
+```typescript
+getTroves(params: TroveListingParams): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveListingParams](./lib-base.trovelistingparams.md) | Controls how the list is sorted, and where the slice begins and ends. |
+
+Returns:
+
+Promise<[UserTrove](./lib-base.usertrove.md)\[\]>
+
+Pairs of owner addresses and their Troves.
+
diff --git a/docs/sdk/lib-base.readableliquity.getunitokenallowance.md b/docs/sdk/lib-base.readableliquity.getunitokenallowance.md
new file mode 100644
index 00000000..2bdbad16
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getunitokenallowance.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getUniTokenAllowance](./lib-base.readableliquity.getunitokenallowance.md)
+
+## ReadableLiquity.getUniTokenAllowance() method
+
+Get the liquidity mining contract's allowance of a holder's Uniswap ETH/LUSD LP tokens.
+
+Signature:
+
+```typescript
+getUniTokenAllowance(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address holding the Uniswap ETH/LUSD LP tokens. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.getunitokenbalance.md b/docs/sdk/lib-base.readableliquity.getunitokenbalance.md
new file mode 100644
index 00000000..438f54cc
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.getunitokenbalance.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md) > [getUniTokenBalance](./lib-base.readableliquity.getunitokenbalance.md)
+
+## ReadableLiquity.getUniTokenBalance() method
+
+Get the amount of Uniswap ETH/LUSD LP tokens held by an address.
+
+Signature:
+
+```typescript
+getUniTokenBalance(address?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string | Address whose balance should be retrieved. |
+
+Returns:
+
+Promise<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.readableliquity.md b/docs/sdk/lib-base.readableliquity.md
new file mode 100644
index 00000000..9185291d
--- /dev/null
+++ b/docs/sdk/lib-base.readableliquity.md
@@ -0,0 +1,46 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [ReadableLiquity](./lib-base.readableliquity.md)
+
+## ReadableLiquity interface
+
+Read the state of the Liquity protocol.
+
+Signature:
+
+```typescript
+export interface ReadableLiquity
+```
+
+## Remarks
+
+Implemented by [EthersLiquity](./lib-ethers.ethersliquity.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [getCollateralSurplusBalance(address)](./lib-base.readableliquity.getcollateralsurplusbalance.md) | Get the amount of leftover collateral available for withdrawal by an address. |
+| [getFees()](./lib-base.readableliquity.getfees.md) | Get a calculator for current fees. |
+| [getFrontendStatus(address)](./lib-base.readableliquity.getfrontendstatus.md) | Check whether an address is registered as a Liquity frontend, and what its kickback rate is. |
+| [getLiquidityMiningLQTYReward(address)](./lib-base.readableliquity.getliquiditymininglqtyreward.md) | Get the amount of LQTY earned by an address through mining liquidity. |
+| [getLiquidityMiningStake(address)](./lib-base.readableliquity.getliquidityminingstake.md) | Get the amount of Uniswap ETH/LUSD LP tokens currently staked by an address in liquidity mining. |
+| [getLQTYBalance(address)](./lib-base.readableliquity.getlqtybalance.md) | Get the amount of LQTY held by an address. |
+| [getLQTYStake(address)](./lib-base.readableliquity.getlqtystake.md) | Get the current state of an LQTY Stake. |
+| [getLUSDBalance(address)](./lib-base.readableliquity.getlusdbalance.md) | Get the amount of LUSD held by an address. |
+| [getLUSDInStabilityPool()](./lib-base.readableliquity.getlusdinstabilitypool.md) | Get the total amount of LUSD currently deposited in the Stability Pool. |
+| [getNumberOfTroves()](./lib-base.readableliquity.getnumberoftroves.md) | Get number of Troves that are currently open. |
+| [getPrice()](./lib-base.readableliquity.getprice.md) | Get the current price of the native currency (e.g. Ether) in USD. |
+| [getRemainingLiquidityMiningLQTYReward()](./lib-base.readableliquity.getremainingliquiditymininglqtyreward.md) | Get the remaining LQTY that will be collectively rewarded to liquidity miners. |
+| [getRemainingStabilityPoolLQTYReward()](./lib-base.readableliquity.getremainingstabilitypoollqtyreward.md) | Get the remaining LQTY that will be collectively rewarded to stability depositors. |
+| [getStabilityDeposit(address)](./lib-base.readableliquity.getstabilitydeposit.md) | Get the current state of a Stability Deposit. |
+| [getTotal()](./lib-base.readableliquity.gettotal.md) | Get the total amount of collateral and debt in the Liquity system. |
+| [getTotalRedistributed()](./lib-base.readableliquity.gettotalredistributed.md) | Get the total collateral and debt per stake that has been liquidated through redistribution. |
+| [getTotalStakedLQTY()](./lib-base.readableliquity.gettotalstakedlqty.md) | Get the total amount of LQTY currently staked. |
+| [getTotalStakedUniTokens()](./lib-base.readableliquity.gettotalstakedunitokens.md) | Get the total amount of Uniswap ETH/LUSD LP tokens currently staked in liquidity mining. |
+| [getTrove(address)](./lib-base.readableliquity.gettrove.md) | Get the current state of a Trove. |
+| [getTroveBeforeRedistribution(address)](./lib-base.readableliquity.gettrovebeforeredistribution.md) | Get a Trove in its state after the last direct modification. |
+| [getTroves(params)](./lib-base.readableliquity.gettroves_1.md) | Get a slice from the list of Troves. |
+| [getUniTokenAllowance(address)](./lib-base.readableliquity.getunitokenallowance.md) | Get the liquidity mining contract's allowance of a holder's Uniswap ETH/LUSD LP tokens. |
+| [getUniTokenBalance(address)](./lib-base.readableliquity.getunitokenbalance.md) | Get the amount of Uniswap ETH/LUSD LP tokens held by an address. |
+
diff --git a/docs/sdk/lib-base.redemptiondetails.actuallusdamount.md b/docs/sdk/lib-base.redemptiondetails.actuallusdamount.md
new file mode 100644
index 00000000..087e7a28
--- /dev/null
+++ b/docs/sdk/lib-base.redemptiondetails.actuallusdamount.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [RedemptionDetails](./lib-base.redemptiondetails.md) > [actualLUSDAmount](./lib-base.redemptiondetails.actuallusdamount.md)
+
+## RedemptionDetails.actualLUSDAmount property
+
+Amount of LUSD that was actually redeemed by the transaction.
+
+Signature:
+
+```typescript
+actualLUSDAmount: Decimal;
+```
+
+## Remarks
+
+This can end up being lower than `attemptedLUSDAmount` due to interference from another transaction that modifies the list of Troves.
+
diff --git a/docs/sdk/lib-base.redemptiondetails.attemptedlusdamount.md b/docs/sdk/lib-base.redemptiondetails.attemptedlusdamount.md
new file mode 100644
index 00000000..58e30c8d
--- /dev/null
+++ b/docs/sdk/lib-base.redemptiondetails.attemptedlusdamount.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [RedemptionDetails](./lib-base.redemptiondetails.md) > [attemptedLUSDAmount](./lib-base.redemptiondetails.attemptedlusdamount.md)
+
+## RedemptionDetails.attemptedLUSDAmount property
+
+Amount of LUSD the redeemer tried to redeem.
+
+Signature:
+
+```typescript
+attemptedLUSDAmount: Decimal;
+```
diff --git a/docs/sdk/lib-base.redemptiondetails.collateraltaken.md b/docs/sdk/lib-base.redemptiondetails.collateraltaken.md
new file mode 100644
index 00000000..d9ab836a
--- /dev/null
+++ b/docs/sdk/lib-base.redemptiondetails.collateraltaken.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [RedemptionDetails](./lib-base.redemptiondetails.md) > [collateralTaken](./lib-base.redemptiondetails.collateraltaken.md)
+
+## RedemptionDetails.collateralTaken property
+
+Amount of collateral (e.g. Ether) taken from Troves by the transaction.
+
+Signature:
+
+```typescript
+collateralTaken: Decimal;
+```
diff --git a/docs/sdk/lib-base.redemptiondetails.fee.md b/docs/sdk/lib-base.redemptiondetails.fee.md
new file mode 100644
index 00000000..724e3143
--- /dev/null
+++ b/docs/sdk/lib-base.redemptiondetails.fee.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [RedemptionDetails](./lib-base.redemptiondetails.md) > [fee](./lib-base.redemptiondetails.fee.md)
+
+## RedemptionDetails.fee property
+
+Amount of native currency (e.g. Ether) deducted as fee from collateral taken.
+
+Signature:
+
+```typescript
+fee: Decimal;
+```
diff --git a/docs/sdk/lib-base.redemptiondetails.md b/docs/sdk/lib-base.redemptiondetails.md
new file mode 100644
index 00000000..5d60f61b
--- /dev/null
+++ b/docs/sdk/lib-base.redemptiondetails.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [RedemptionDetails](./lib-base.redemptiondetails.md)
+
+## RedemptionDetails interface
+
+Details of a [redeemLUSD()](./lib-base.transactableliquity.redeemlusd.md) transaction.
+
+Signature:
+
+```typescript
+export interface RedemptionDetails
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [actualLUSDAmount](./lib-base.redemptiondetails.actuallusdamount.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD that was actually redeemed by the transaction. |
+| [attemptedLUSDAmount](./lib-base.redemptiondetails.attemptedlusdamount.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD the redeemer tried to redeem. |
+| [collateralTaken](./lib-base.redemptiondetails.collateraltaken.md) | [Decimal](./lib-base.decimal.md) | Amount of collateral (e.g. Ether) taken from Troves by the transaction. |
+| [fee](./lib-base.redemptiondetails.fee.md) | [Decimal](./lib-base.decimal.md) | Amount of native currency (e.g. Ether) deducted as fee from collateral taken. |
+
diff --git a/docs/sdk/lib-base.sendableliquity.adjusttrove.md b/docs/sdk/lib-base.sendableliquity.adjusttrove.md
new file mode 100644
index 00000000..4d7b357d
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.adjusttrove.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [adjustTrove](./lib-base.sendableliquity.adjusttrove.md)
+
+## SendableLiquity.adjustTrove() method
+
+Adjust existing Trove by changing its collateral, debt, or both.
+
+Signature:
+
+```typescript
+adjustTrove(params: TroveAdjustmentParams, maxBorrowingRate?: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimalish](./lib-base.decimalish.md)> | Parameters of the adjustment. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md) if params includes borrowLUSD. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>>>
+
+## Remarks
+
+The transaction will fail if the Trove's debt would fall below [LUSD\_MINIMUM\_DEBT](./lib-base.lusd_minimum_debt.md).
+
+If `maxBorrowingRate` is omitted, the current borrowing rate plus 0.5% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.sendableliquity.approveunitokens.md b/docs/sdk/lib-base.sendableliquity.approveunitokens.md
new file mode 100644
index 00000000..6ac6fa08
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.approveunitokens.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [approveUniTokens](./lib-base.sendableliquity.approveunitokens.md)
+
+## SendableLiquity.approveUniTokens() method
+
+Allow the liquidity mining contract to use Uniswap ETH/LUSD LP tokens for [staking](./lib-base.transactableliquity.stakeunitokens.md).
+
+Signature:
+
+```typescript
+approveUniTokens(allowance?: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| allowance | [Decimalish](./lib-base.decimalish.md) | Maximum amount of LP tokens that will be transferrable to liquidity mining (2^256 - 1 by default). |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
+## Remarks
+
+Must be performed before calling [stakeUniTokens()](./lib-base.transactableliquity.stakeunitokens.md).
+
diff --git a/docs/sdk/lib-base.sendableliquity.borrowlusd.md b/docs/sdk/lib-base.sendableliquity.borrowlusd.md
new file mode 100644
index 00000000..911eb164
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.borrowlusd.md
@@ -0,0 +1,34 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [borrowLUSD](./lib-base.sendableliquity.borrowlusd.md)
+
+## SendableLiquity.borrowLUSD() method
+
+Adjust existing Trove by borrowing more LUSD.
+
+Signature:
+
+```typescript
+borrowLUSD(amount: Decimalish, maxBorrowingRate?: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of LUSD to borrow. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md). |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>>>
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ borrowLUSD: amount }, maxBorrowingRate)
+
+```
+
diff --git a/docs/sdk/lib-base.sendableliquity.claimcollateralsurplus.md b/docs/sdk/lib-base.sendableliquity.claimcollateralsurplus.md
new file mode 100644
index 00000000..881188d9
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.claimcollateralsurplus.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [claimCollateralSurplus](./lib-base.sendableliquity.claimcollateralsurplus.md)
+
+## SendableLiquity.claimCollateralSurplus() method
+
+Claim leftover collateral after a liquidation or redemption.
+
+Signature:
+
+```typescript
+claimCollateralSurplus(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
+## Remarks
+
+Use [getCollateralSurplusBalance()](./lib-base.readableliquity.getcollateralsurplusbalance.md) to check the amount of collateral available for withdrawal.
+
diff --git a/docs/sdk/lib-base.sendableliquity.closetrove.md b/docs/sdk/lib-base.sendableliquity.closetrove.md
new file mode 100644
index 00000000..efba48b6
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.closetrove.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [closeTrove](./lib-base.sendableliquity.closetrove.md)
+
+## SendableLiquity.closeTrove() method
+
+Close existing Trove by repaying all debt and withdrawing all collateral.
+
+Signature:
+
+```typescript
+closeTrove(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveClosureDetails](./lib-base.troveclosuredetails.md)>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.depositcollateral.md b/docs/sdk/lib-base.sendableliquity.depositcollateral.md
new file mode 100644
index 00000000..4661ecfb
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.depositcollateral.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [depositCollateral](./lib-base.sendableliquity.depositcollateral.md)
+
+## SendableLiquity.depositCollateral() method
+
+Adjust existing Trove by depositing more collateral.
+
+Signature:
+
+```typescript
+depositCollateral(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of collateral to add to the Trove's existing collateral. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>>>
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ depositCollateral: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.sendableliquity.depositlusdinstabilitypool.md b/docs/sdk/lib-base.sendableliquity.depositlusdinstabilitypool.md
new file mode 100644
index 00000000..bd6afdc6
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.depositlusdinstabilitypool.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [depositLUSDInStabilityPool](./lib-base.sendableliquity.depositlusdinstabilitypool.md)
+
+## SendableLiquity.depositLUSDInStabilityPool() method
+
+Make a new Stability Deposit, or top up existing one.
+
+Signature:
+
+```typescript
+depositLUSDInStabilityPool(amount: Decimalish, frontendTag?: string): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to add to new or existing deposit. |
+| frontendTag | string | Address that should receive a share of this deposit's LQTY rewards. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)>>>
+
+## Remarks
+
+The `frontendTag` parameter is only effective when making a new deposit.
+
+As a side-effect, the transaction will also pay out an existing Stability Deposit's [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.sendableliquity.exitliquiditymining.md b/docs/sdk/lib-base.sendableliquity.exitliquiditymining.md
new file mode 100644
index 00000000..11890895
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.exitliquiditymining.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [exitLiquidityMining](./lib-base.sendableliquity.exitliquiditymining.md)
+
+## SendableLiquity.exitLiquidityMining() method
+
+Withdraw all staked LP tokens from liquidity mining and claim reward.
+
+Signature:
+
+```typescript
+exitLiquidityMining(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.liquidate.md b/docs/sdk/lib-base.sendableliquity.liquidate.md
new file mode 100644
index 00000000..86f551a0
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.liquidate.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [liquidate](./lib-base.sendableliquity.liquidate.md)
+
+## SendableLiquity.liquidate() method
+
+Liquidate one or more undercollateralized Troves.
+
+Signature:
+
+```typescript
+liquidate(address: string | string[]): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string \| string\[\] | Address or array of addresses whose Troves to liquidate. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [LiquidationDetails](./lib-base.liquidationdetails.md)>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.liquidateupto.md b/docs/sdk/lib-base.sendableliquity.liquidateupto.md
new file mode 100644
index 00000000..5726a5a9
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.liquidateupto.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [liquidateUpTo](./lib-base.sendableliquity.liquidateupto.md)
+
+## SendableLiquity.liquidateUpTo() method
+
+Liquidate the least collateralized Troves up to a maximum number.
+
+Signature:
+
+```typescript
+liquidateUpTo(maximumNumberOfTrovesToLiquidate: number): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| maximumNumberOfTrovesToLiquidate | number | Stop after liquidating this many Troves. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [LiquidationDetails](./lib-base.liquidationdetails.md)>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.md b/docs/sdk/lib-base.sendableliquity.md
new file mode 100644
index 00000000..73bb369f
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.md
@@ -0,0 +1,52 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md)
+
+## SendableLiquity interface
+
+Send Liquity transactions.
+
+Signature:
+
+```typescript
+export interface SendableLiquity extends _SendableFrom
+```
+Extends: \_SendableFrom<[TransactableLiquity](./lib-base.transactableliquity.md), R, S>
+
+## Remarks
+
+The functions return an object implementing [SentLiquityTransaction](./lib-base.sentliquitytransaction.md), which can be used to monitor the transaction and get its details when it succeeds.
+
+Implemented by [SendableEthersLiquity](./lib-ethers.sendableethersliquity.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [adjustTrove(params, maxBorrowingRate)](./lib-base.sendableliquity.adjusttrove.md) | Adjust existing Trove by changing its collateral, debt, or both. |
+| [approveUniTokens(allowance)](./lib-base.sendableliquity.approveunitokens.md) | Allow the liquidity mining contract to use Uniswap ETH/LUSD LP tokens for [staking](./lib-base.transactableliquity.stakeunitokens.md). |
+| [borrowLUSD(amount, maxBorrowingRate)](./lib-base.sendableliquity.borrowlusd.md) | Adjust existing Trove by borrowing more LUSD. |
+| [claimCollateralSurplus()](./lib-base.sendableliquity.claimcollateralsurplus.md) | Claim leftover collateral after a liquidation or redemption. |
+| [closeTrove()](./lib-base.sendableliquity.closetrove.md) | Close existing Trove by repaying all debt and withdrawing all collateral. |
+| [depositCollateral(amount)](./lib-base.sendableliquity.depositcollateral.md) | Adjust existing Trove by depositing more collateral. |
+| [depositLUSDInStabilityPool(amount, frontendTag)](./lib-base.sendableliquity.depositlusdinstabilitypool.md) | Make a new Stability Deposit, or top up existing one. |
+| [exitLiquidityMining()](./lib-base.sendableliquity.exitliquiditymining.md) | Withdraw all staked LP tokens from liquidity mining and claim reward. |
+| [liquidate(address)](./lib-base.sendableliquity.liquidate.md) | Liquidate one or more undercollateralized Troves. |
+| [liquidateUpTo(maximumNumberOfTrovesToLiquidate)](./lib-base.sendableliquity.liquidateupto.md) | Liquidate the least collateralized Troves up to a maximum number. |
+| [openTrove(params, maxBorrowingRate)](./lib-base.sendableliquity.opentrove.md) | Open a new Trove by depositing collateral and borrowing LUSD. |
+| [redeemLUSD(amount, maxRedemptionRate)](./lib-base.sendableliquity.redeemlusd.md) | Redeem LUSD to native currency (e.g. Ether) at face value. |
+| [registerFrontend(kickbackRate)](./lib-base.sendableliquity.registerfrontend.md) | Register current wallet address as a Liquity frontend. |
+| [repayLUSD(amount)](./lib-base.sendableliquity.repaylusd.md) | Adjust existing Trove by repaying some of its debt. |
+| [sendLQTY(toAddress, amount)](./lib-base.sendableliquity.sendlqty.md) | Send LQTY tokens to an address. |
+| [sendLUSD(toAddress, amount)](./lib-base.sendableliquity.sendlusd.md) | Send LUSD tokens to an address. |
+| [stakeLQTY(amount)](./lib-base.sendableliquity.stakelqty.md) | Stake LQTY to start earning fee revenue or increase existing stake. |
+| [stakeUniTokens(amount)](./lib-base.sendableliquity.stakeunitokens.md) | Stake Uniswap ETH/LUSD LP tokens to participate in liquidity mining and earn LQTY. |
+| [transferCollateralGainToTrove()](./lib-base.sendableliquity.transfercollateralgaintotrove.md) | Transfer [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) from Stability Deposit to Trove. |
+| [unstakeLQTY(amount)](./lib-base.sendableliquity.unstakelqty.md) | Withdraw LQTY from staking. |
+| [unstakeUniTokens(amount)](./lib-base.sendableliquity.unstakeunitokens.md) | Withdraw Uniswap ETH/LUSD LP tokens from liquidity mining. |
+| [withdrawCollateral(amount)](./lib-base.sendableliquity.withdrawcollateral.md) | Adjust existing Trove by withdrawing some of its collateral. |
+| [withdrawGainsFromStabilityPool()](./lib-base.sendableliquity.withdrawgainsfromstabilitypool.md) | Withdraw [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md) from Stability Deposit. |
+| [withdrawGainsFromStaking()](./lib-base.sendableliquity.withdrawgainsfromstaking.md) | Withdraw [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md) from LQTY stake. |
+| [withdrawLQTYRewardFromLiquidityMining()](./lib-base.sendableliquity.withdrawlqtyrewardfromliquiditymining.md) | Withdraw LQTY that has been earned by mining liquidity. |
+| [withdrawLUSDFromStabilityPool(amount)](./lib-base.sendableliquity.withdrawlusdfromstabilitypool.md) | Withdraw LUSD from Stability Deposit. |
+
diff --git a/docs/sdk/lib-base.sendableliquity.opentrove.md b/docs/sdk/lib-base.sendableliquity.opentrove.md
new file mode 100644
index 00000000..0aec6342
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.opentrove.md
@@ -0,0 +1,29 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [openTrove](./lib-base.sendableliquity.opentrove.md)
+
+## SendableLiquity.openTrove() method
+
+Open a new Trove by depositing collateral and borrowing LUSD.
+
+Signature:
+
+```typescript
+openTrove(params: TroveCreationParams, maxBorrowingRate?: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveCreationParams](./lib-base.trovecreationparams.md)<[Decimalish](./lib-base.decimalish.md)> | How much to deposit and borrow. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md). |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveCreationDetails](./lib-base.trovecreationdetails.md)>>>
+
+## Remarks
+
+If `maxBorrowingRate` is omitted, the current borrowing rate plus 0.5% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.sendableliquity.redeemlusd.md b/docs/sdk/lib-base.sendableliquity.redeemlusd.md
new file mode 100644
index 00000000..3267f627
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.redeemlusd.md
@@ -0,0 +1,29 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [redeemLUSD](./lib-base.sendableliquity.redeemlusd.md)
+
+## SendableLiquity.redeemLUSD() method
+
+Redeem LUSD to native currency (e.g. Ether) at face value.
+
+Signature:
+
+```typescript
+redeemLUSD(amount: Decimalish, maxRedemptionRate?: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to be redeemed. |
+| maxRedemptionRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [redemption rate](./lib-base.fees.redemptionrate.md). |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [RedemptionDetails](./lib-base.redemptiondetails.md)>>>
+
+## Remarks
+
+If `maxRedemptionRate` is omitted, the current redemption rate (based on `amount`) plus 0.1% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.sendableliquity.registerfrontend.md b/docs/sdk/lib-base.sendableliquity.registerfrontend.md
new file mode 100644
index 00000000..56789901
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.registerfrontend.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [registerFrontend](./lib-base.sendableliquity.registerfrontend.md)
+
+## SendableLiquity.registerFrontend() method
+
+Register current wallet address as a Liquity frontend.
+
+Signature:
+
+```typescript
+registerFrontend(kickbackRate: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| kickbackRate | [Decimalish](./lib-base.decimalish.md) | The portion of LQTY rewards to pass onto users of the frontend (between 0 and 1). |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.repaylusd.md b/docs/sdk/lib-base.sendableliquity.repaylusd.md
new file mode 100644
index 00000000..e91eb808
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.repaylusd.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [repayLUSD](./lib-base.sendableliquity.repaylusd.md)
+
+## SendableLiquity.repayLUSD() method
+
+Adjust existing Trove by repaying some of its debt.
+
+Signature:
+
+```typescript
+repayLUSD(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of LUSD to repay. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>>>
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ repayLUSD: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.sendableliquity.sendlqty.md b/docs/sdk/lib-base.sendableliquity.sendlqty.md
new file mode 100644
index 00000000..fff71f2e
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.sendlqty.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [sendLQTY](./lib-base.sendableliquity.sendlqty.md)
+
+## SendableLiquity.sendLQTY() method
+
+Send LQTY tokens to an address.
+
+Signature:
+
+```typescript
+sendLQTY(toAddress: string, amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| toAddress | string | Address of receipient. |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to send. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.sendlusd.md b/docs/sdk/lib-base.sendableliquity.sendlusd.md
new file mode 100644
index 00000000..4bdca421
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.sendlusd.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [sendLUSD](./lib-base.sendableliquity.sendlusd.md)
+
+## SendableLiquity.sendLUSD() method
+
+Send LUSD tokens to an address.
+
+Signature:
+
+```typescript
+sendLUSD(toAddress: string, amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| toAddress | string | Address of receipient. |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to send. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.stakelqty.md b/docs/sdk/lib-base.sendableliquity.stakelqty.md
new file mode 100644
index 00000000..de5ad54b
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.stakelqty.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [stakeLQTY](./lib-base.sendableliquity.stakelqty.md)
+
+## SendableLiquity.stakeLQTY() method
+
+Stake LQTY to start earning fee revenue or increase existing stake.
+
+Signature:
+
+```typescript
+stakeLQTY(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to add to new or existing stake. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
+## Remarks
+
+As a side-effect, the transaction will also pay out an existing LQTY stake's [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md).
+
diff --git a/docs/sdk/lib-base.sendableliquity.stakeunitokens.md b/docs/sdk/lib-base.sendableliquity.stakeunitokens.md
new file mode 100644
index 00000000..e76c9cb1
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.stakeunitokens.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [stakeUniTokens](./lib-base.sendableliquity.stakeunitokens.md)
+
+## SendableLiquity.stakeUniTokens() method
+
+Stake Uniswap ETH/LUSD LP tokens to participate in liquidity mining and earn LQTY.
+
+Signature:
+
+```typescript
+stakeUniTokens(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LP tokens to add to new or existing stake. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.transfercollateralgaintotrove.md b/docs/sdk/lib-base.sendableliquity.transfercollateralgaintotrove.md
new file mode 100644
index 00000000..57354096
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.transfercollateralgaintotrove.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [transferCollateralGainToTrove](./lib-base.sendableliquity.transfercollateralgaintotrove.md)
+
+## SendableLiquity.transferCollateralGainToTrove() method
+
+Transfer [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) from Stability Deposit to Trove.
+
+Signature:
+
+```typescript
+transferCollateralGainToTrove(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [CollateralGainTransferDetails](./lib-base.collateralgaintransferdetails.md)>>>
+
+## Remarks
+
+The collateral gain is transfered to the Trove as additional collateral.
+
+As a side-effect, the transaction will also pay out the Stability Deposit's [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.sendableliquity.unstakelqty.md b/docs/sdk/lib-base.sendableliquity.unstakelqty.md
new file mode 100644
index 00000000..c8487cd2
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.unstakelqty.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [unstakeLQTY](./lib-base.sendableliquity.unstakelqty.md)
+
+## SendableLiquity.unstakeLQTY() method
+
+Withdraw LQTY from staking.
+
+Signature:
+
+```typescript
+unstakeLQTY(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to withdraw. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
+## Remarks
+
+As a side-effect, the transaction will also pay out the LQTY stake's [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md).
+
diff --git a/docs/sdk/lib-base.sendableliquity.unstakeunitokens.md b/docs/sdk/lib-base.sendableliquity.unstakeunitokens.md
new file mode 100644
index 00000000..2cf679a8
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.unstakeunitokens.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [unstakeUniTokens](./lib-base.sendableliquity.unstakeunitokens.md)
+
+## SendableLiquity.unstakeUniTokens() method
+
+Withdraw Uniswap ETH/LUSD LP tokens from liquidity mining.
+
+Signature:
+
+```typescript
+unstakeUniTokens(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LP tokens to withdraw. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.withdrawcollateral.md b/docs/sdk/lib-base.sendableliquity.withdrawcollateral.md
new file mode 100644
index 00000000..aaedb500
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.withdrawcollateral.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [withdrawCollateral](./lib-base.sendableliquity.withdrawcollateral.md)
+
+## SendableLiquity.withdrawCollateral() method
+
+Adjust existing Trove by withdrawing some of its collateral.
+
+Signature:
+
+```typescript
+withdrawCollateral(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of collateral to withdraw from the Trove. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>>>
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ withdrawCollateral: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstabilitypool.md b/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstabilitypool.md
new file mode 100644
index 00000000..4f8ef5a5
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstabilitypool.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [withdrawGainsFromStabilityPool](./lib-base.sendableliquity.withdrawgainsfromstabilitypool.md)
+
+## SendableLiquity.withdrawGainsFromStabilityPool() method
+
+Withdraw [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md) from Stability Deposit.
+
+Signature:
+
+```typescript
+withdrawGainsFromStabilityPool(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md)>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstaking.md b/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstaking.md
new file mode 100644
index 00000000..f4fd526d
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.withdrawgainsfromstaking.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [withdrawGainsFromStaking](./lib-base.sendableliquity.withdrawgainsfromstaking.md)
+
+## SendableLiquity.withdrawGainsFromStaking() method
+
+Withdraw [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md) from LQTY stake.
+
+Signature:
+
+```typescript
+withdrawGainsFromStaking(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.withdrawlqtyrewardfromliquiditymining.md b/docs/sdk/lib-base.sendableliquity.withdrawlqtyrewardfromliquiditymining.md
new file mode 100644
index 00000000..1e1d16f5
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.withdrawlqtyrewardfromliquiditymining.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [withdrawLQTYRewardFromLiquidityMining](./lib-base.sendableliquity.withdrawlqtyrewardfromliquiditymining.md)
+
+## SendableLiquity.withdrawLQTYRewardFromLiquidityMining() method
+
+Withdraw LQTY that has been earned by mining liquidity.
+
+Signature:
+
+```typescript
+withdrawLQTYRewardFromLiquidityMining(): Promise>>;
+```
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, void>>>
+
diff --git a/docs/sdk/lib-base.sendableliquity.withdrawlusdfromstabilitypool.md b/docs/sdk/lib-base.sendableliquity.withdrawlusdfromstabilitypool.md
new file mode 100644
index 00000000..a7ffb3a8
--- /dev/null
+++ b/docs/sdk/lib-base.sendableliquity.withdrawlusdfromstabilitypool.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SendableLiquity](./lib-base.sendableliquity.md) > [withdrawLUSDFromStabilityPool](./lib-base.sendableliquity.withdrawlusdfromstabilitypool.md)
+
+## SendableLiquity.withdrawLUSDFromStabilityPool() method
+
+Withdraw LUSD from Stability Deposit.
+
+Signature:
+
+```typescript
+withdrawLUSDFromStabilityPool(amount: Decimalish): Promise>>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to withdraw. |
+
+Returns:
+
+Promise<[SentLiquityTransaction](./lib-base.sentliquitytransaction.md)<S, [LiquityReceipt](./lib-base.liquityreceipt.md)<R, [StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)>>>
+
+## Remarks
+
+As a side-effect, the transaction will also pay out the Stability Deposit's [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.sentliquitytransaction.getreceipt.md b/docs/sdk/lib-base.sentliquitytransaction.getreceipt.md
new file mode 100644
index 00000000..d246d050
--- /dev/null
+++ b/docs/sdk/lib-base.sentliquitytransaction.getreceipt.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SentLiquityTransaction](./lib-base.sentliquitytransaction.md) > [getReceipt](./lib-base.sentliquitytransaction.getreceipt.md)
+
+## SentLiquityTransaction.getReceipt() method
+
+Check whether the transaction has been mined, and whether it was successful.
+
+Signature:
+
+```typescript
+getReceipt(): Promise;
+```
+Returns:
+
+Promise<T>
+
+## Remarks
+
+Unlike [waitForReceipt()](./lib-base.sentliquitytransaction.waitforreceipt.md), this function doesn't wait for the transaction to be mined.
+
diff --git a/docs/sdk/lib-base.sentliquitytransaction.md b/docs/sdk/lib-base.sentliquitytransaction.md
new file mode 100644
index 00000000..f8e79c4b
--- /dev/null
+++ b/docs/sdk/lib-base.sentliquitytransaction.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SentLiquityTransaction](./lib-base.sentliquitytransaction.md)
+
+## SentLiquityTransaction interface
+
+A transaction that has already been sent.
+
+Signature:
+
+```typescript
+export interface SentLiquityTransaction
+```
+
+## Remarks
+
+Implemented by [SentEthersLiquityTransaction](./lib-ethers.sentethersliquitytransaction.md).
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [rawSentTransaction](./lib-base.sentliquitytransaction.rawsenttransaction.md) | S | Implementation-specific sent transaction object. |
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [getReceipt()](./lib-base.sentliquitytransaction.getreceipt.md) | Check whether the transaction has been mined, and whether it was successful. |
+| [waitForReceipt()](./lib-base.sentliquitytransaction.waitforreceipt.md) | Wait for the transaction to be mined, and check whether it was successful. |
+
diff --git a/docs/sdk/lib-base.sentliquitytransaction.rawsenttransaction.md b/docs/sdk/lib-base.sentliquitytransaction.rawsenttransaction.md
new file mode 100644
index 00000000..8fcf2284
--- /dev/null
+++ b/docs/sdk/lib-base.sentliquitytransaction.rawsenttransaction.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SentLiquityTransaction](./lib-base.sentliquitytransaction.md) > [rawSentTransaction](./lib-base.sentliquitytransaction.rawsenttransaction.md)
+
+## SentLiquityTransaction.rawSentTransaction property
+
+Implementation-specific sent transaction object.
+
+Signature:
+
+```typescript
+readonly rawSentTransaction: S;
+```
diff --git a/docs/sdk/lib-base.sentliquitytransaction.waitforreceipt.md b/docs/sdk/lib-base.sentliquitytransaction.waitforreceipt.md
new file mode 100644
index 00000000..e4309d6d
--- /dev/null
+++ b/docs/sdk/lib-base.sentliquitytransaction.waitforreceipt.md
@@ -0,0 +1,19 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SentLiquityTransaction](./lib-base.sentliquitytransaction.md) > [waitForReceipt](./lib-base.sentliquitytransaction.waitforreceipt.md)
+
+## SentLiquityTransaction.waitForReceipt() method
+
+Wait for the transaction to be mined, and check whether it was successful.
+
+Signature:
+
+```typescript
+waitForReceipt(): Promise>;
+```
+Returns:
+
+Promise<Extract<T, [MinedReceipt](./lib-base.minedreceipt.md)>>
+
+Either a [FailedReceipt](./lib-base.failedreceipt.md) or a [SuccessfulReceipt](./lib-base.successfulreceipt.md).
+
diff --git a/docs/sdk/lib-base.stabilitydeposit.apply.md b/docs/sdk/lib-base.stabilitydeposit.apply.md
new file mode 100644
index 00000000..29e6fdb5
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.apply.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [apply](./lib-base.stabilitydeposit.apply.md)
+
+## StabilityDeposit.apply() method
+
+Apply a [StabilityDepositChange](./lib-base.stabilitydepositchange.md) to this Stability Deposit.
+
+Signature:
+
+```typescript
+apply(change: StabilityDepositChange | undefined): Decimal;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| change | [StabilityDepositChange](./lib-base.stabilitydepositchange.md)<[Decimalish](./lib-base.decimalish.md)> \| undefined | |
+
+Returns:
+
+[Decimal](./lib-base.decimal.md)
+
+The new deposited LUSD amount.
+
diff --git a/docs/sdk/lib-base.stabilitydeposit.collateralgain.md b/docs/sdk/lib-base.stabilitydeposit.collateralgain.md
new file mode 100644
index 00000000..6fa05f10
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.collateralgain.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [collateralGain](./lib-base.stabilitydeposit.collateralgain.md)
+
+## StabilityDeposit.collateralGain property
+
+Amount of native currency (e.g. Ether) received in exchange for the used-up LUSD.
+
+Signature:
+
+```typescript
+readonly collateralGain: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitydeposit.currentlusd.md b/docs/sdk/lib-base.stabilitydeposit.currentlusd.md
new file mode 100644
index 00000000..dd252d40
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.currentlusd.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [currentLUSD](./lib-base.stabilitydeposit.currentlusd.md)
+
+## StabilityDeposit.currentLUSD property
+
+Amount of LUSD left in the Stability Deposit.
+
+Signature:
+
+```typescript
+readonly currentLUSD: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitydeposit.equals.md b/docs/sdk/lib-base.stabilitydeposit.equals.md
new file mode 100644
index 00000000..ad8af5af
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.equals.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [equals](./lib-base.stabilitydeposit.equals.md)
+
+## StabilityDeposit.equals() method
+
+Compare to another instance of `StabilityDeposit`.
+
+Signature:
+
+```typescript
+equals(that: StabilityDeposit): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [StabilityDeposit](./lib-base.stabilitydeposit.md) | |
+
+Returns:
+
+boolean
+
diff --git a/docs/sdk/lib-base.stabilitydeposit.frontendtag.md b/docs/sdk/lib-base.stabilitydeposit.frontendtag.md
new file mode 100644
index 00000000..e05d50de
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.frontendtag.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [frontendTag](./lib-base.stabilitydeposit.frontendtag.md)
+
+## StabilityDeposit.frontendTag property
+
+Address of frontend through which this Stability Deposit was made.
+
+Signature:
+
+```typescript
+readonly frontendTag: string;
+```
+
+## Remarks
+
+If the Stability Deposit was made through a frontend that doesn't tag deposits, this will be the zero-address.
+
diff --git a/docs/sdk/lib-base.stabilitydeposit.initiallusd.md b/docs/sdk/lib-base.stabilitydeposit.initiallusd.md
new file mode 100644
index 00000000..dde51cbe
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.initiallusd.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [initialLUSD](./lib-base.stabilitydeposit.initiallusd.md)
+
+## StabilityDeposit.initialLUSD property
+
+Amount of LUSD in the Stability Deposit at the time of the last direct modification.
+
+Signature:
+
+```typescript
+readonly initialLUSD: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitydeposit.isempty.md b/docs/sdk/lib-base.stabilitydeposit.isempty.md
new file mode 100644
index 00000000..9ebec413
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.isempty.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [isEmpty](./lib-base.stabilitydeposit.isempty.md)
+
+## StabilityDeposit.isEmpty property
+
+Signature:
+
+```typescript
+get isEmpty(): boolean;
+```
diff --git a/docs/sdk/lib-base.stabilitydeposit.lqtyreward.md b/docs/sdk/lib-base.stabilitydeposit.lqtyreward.md
new file mode 100644
index 00000000..6d6fa8d6
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.lqtyreward.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [lqtyReward](./lib-base.stabilitydeposit.lqtyreward.md)
+
+## StabilityDeposit.lqtyReward property
+
+Amount of LQTY rewarded since the last modification of the Stability Deposit.
+
+Signature:
+
+```typescript
+readonly lqtyReward: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitydeposit.md b/docs/sdk/lib-base.stabilitydeposit.md
new file mode 100644
index 00000000..ad531698
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md)
+
+## StabilityDeposit class
+
+A Stability Deposit and its accrued gains.
+
+Signature:
+
+```typescript
+export declare class StabilityDeposit
+```
+
+## Remarks
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `StabilityDeposit` class.
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [collateralGain](./lib-base.stabilitydeposit.collateralgain.md) | | [Decimal](./lib-base.decimal.md) | Amount of native currency (e.g. Ether) received in exchange for the used-up LUSD. |
+| [currentLUSD](./lib-base.stabilitydeposit.currentlusd.md) | | [Decimal](./lib-base.decimal.md) | Amount of LUSD left in the Stability Deposit. |
+| [frontendTag](./lib-base.stabilitydeposit.frontendtag.md) | | string | Address of frontend through which this Stability Deposit was made. |
+| [initialLUSD](./lib-base.stabilitydeposit.initiallusd.md) | | [Decimal](./lib-base.decimal.md) | Amount of LUSD in the Stability Deposit at the time of the last direct modification. |
+| [isEmpty](./lib-base.stabilitydeposit.isempty.md) | | boolean | |
+| [lqtyReward](./lib-base.stabilitydeposit.lqtyreward.md) | | [Decimal](./lib-base.decimal.md) | Amount of LQTY rewarded since the last modification of the Stability Deposit. |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [apply(change)](./lib-base.stabilitydeposit.apply.md) | | Apply a [StabilityDepositChange](./lib-base.stabilitydepositchange.md) to this Stability Deposit. |
+| [equals(that)](./lib-base.stabilitydeposit.equals.md) | | Compare to another instance of StabilityDeposit. |
+| [whatChanged(thatLUSD)](./lib-base.stabilitydeposit.whatchanged.md) | | Calculate the difference between the currentLUSD in this Stability Deposit and thatLUSD. |
+
diff --git a/docs/sdk/lib-base.stabilitydeposit.whatchanged.md b/docs/sdk/lib-base.stabilitydeposit.whatchanged.md
new file mode 100644
index 00000000..ed2825ef
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydeposit.whatchanged.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDeposit](./lib-base.stabilitydeposit.md) > [whatChanged](./lib-base.stabilitydeposit.whatchanged.md)
+
+## StabilityDeposit.whatChanged() method
+
+Calculate the difference between the `currentLUSD` in this Stability Deposit and `thatLUSD`.
+
+Signature:
+
+```typescript
+whatChanged(thatLUSD: Decimalish): StabilityDepositChange | undefined;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| thatLUSD | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[StabilityDepositChange](./lib-base.stabilitydepositchange.md)<[Decimal](./lib-base.decimal.md)> \| undefined
+
+An object representing the change, or `undefined` if the deposited amounts are equal.
+
diff --git a/docs/sdk/lib-base.stabilitydepositchange.md b/docs/sdk/lib-base.stabilitydepositchange.md
new file mode 100644
index 00000000..32f94ff8
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydepositchange.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDepositChange](./lib-base.stabilitydepositchange.md)
+
+## StabilityDepositChange type
+
+Represents the change between two Stability Deposit states.
+
+Signature:
+
+```typescript
+export declare type StabilityDepositChange = {
+ depositLUSD: T;
+ withdrawLUSD?: undefined;
+} | {
+ depositLUSD?: undefined;
+ withdrawLUSD: T;
+ withdrawAllLUSD: boolean;
+};
+```
diff --git a/docs/sdk/lib-base.stabilitydepositchangedetails.change.md b/docs/sdk/lib-base.stabilitydepositchangedetails.change.md
new file mode 100644
index 00000000..7b3d368a
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydepositchangedetails.change.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md) > [change](./lib-base.stabilitydepositchangedetails.change.md)
+
+## StabilityDepositChangeDetails.change property
+
+Change that was made to the deposit by this transaction.
+
+Signature:
+
+```typescript
+change: StabilityDepositChange;
+```
diff --git a/docs/sdk/lib-base.stabilitydepositchangedetails.md b/docs/sdk/lib-base.stabilitydepositchangedetails.md
new file mode 100644
index 00000000..c9281cf0
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitydepositchangedetails.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)
+
+## StabilityDepositChangeDetails interface
+
+Details of a [depositLUSDInStabilityPool()](./lib-base.transactableliquity.depositlusdinstabilitypool.md) or [withdrawLUSDFromStabilityPool()](./lib-base.transactableliquity.withdrawlusdfromstabilitypool.md) transaction.
+
+Signature:
+
+```typescript
+export interface StabilityDepositChangeDetails extends StabilityPoolGainsWithdrawalDetails
+```
+Extends: [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md)
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [change](./lib-base.stabilitydepositchangedetails.change.md) | [StabilityDepositChange](./lib-base.stabilitydepositchange.md)<[Decimal](./lib-base.decimal.md)> | Change that was made to the deposit by this transaction. |
+
diff --git a/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.collateralgain.md b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.collateralgain.md
new file mode 100644
index 00000000..35a3fa33
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.collateralgain.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md) > [collateralGain](./lib-base.stabilitypoolgainswithdrawaldetails.collateralgain.md)
+
+## StabilityPoolGainsWithdrawalDetails.collateralGain property
+
+Amount of native currency (e.g. Ether) paid out to the depositor in this transaction.
+
+Signature:
+
+```typescript
+collateralGain: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lqtyreward.md b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lqtyreward.md
new file mode 100644
index 00000000..b3eb08cb
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lqtyreward.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md) > [lqtyReward](./lib-base.stabilitypoolgainswithdrawaldetails.lqtyreward.md)
+
+## StabilityPoolGainsWithdrawalDetails.lqtyReward property
+
+Amount of LQTY rewarded to the depositor in this transaction.
+
+Signature:
+
+```typescript
+lqtyReward: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lusdloss.md b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lusdloss.md
new file mode 100644
index 00000000..c554804e
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.lusdloss.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md) > [lusdLoss](./lib-base.stabilitypoolgainswithdrawaldetails.lusdloss.md)
+
+## StabilityPoolGainsWithdrawalDetails.lusdLoss property
+
+Amount of LUSD burned from the deposit by liquidations since the last modification.
+
+Signature:
+
+```typescript
+lusdLoss: Decimal;
+```
diff --git a/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.md b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.md
new file mode 100644
index 00000000..4a8376a0
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md)
+
+## StabilityPoolGainsWithdrawalDetails interface
+
+Details of a [withdrawGainsFromStabilityPool()](./lib-base.transactableliquity.withdrawgainsfromstabilitypool.md) transaction.
+
+Signature:
+
+```typescript
+export interface StabilityPoolGainsWithdrawalDetails
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [collateralGain](./lib-base.stabilitypoolgainswithdrawaldetails.collateralgain.md) | [Decimal](./lib-base.decimal.md) | Amount of native currency (e.g. Ether) paid out to the depositor in this transaction. |
+| [lqtyReward](./lib-base.stabilitypoolgainswithdrawaldetails.lqtyreward.md) | [Decimal](./lib-base.decimal.md) | Amount of LQTY rewarded to the depositor in this transaction. |
+| [lusdLoss](./lib-base.stabilitypoolgainswithdrawaldetails.lusdloss.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD burned from the deposit by liquidations since the last modification. |
+| [newLUSDDeposit](./lib-base.stabilitypoolgainswithdrawaldetails.newlusddeposit.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD in the deposit directly after this transaction. |
+
diff --git a/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.newlusddeposit.md b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.newlusddeposit.md
new file mode 100644
index 00000000..52ad4cbd
--- /dev/null
+++ b/docs/sdk/lib-base.stabilitypoolgainswithdrawaldetails.newlusddeposit.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md) > [newLUSDDeposit](./lib-base.stabilitypoolgainswithdrawaldetails.newlusddeposit.md)
+
+## StabilityPoolGainsWithdrawalDetails.newLUSDDeposit property
+
+Amount of LUSD in the deposit directly after this transaction.
+
+Signature:
+
+```typescript
+newLUSDDeposit: Decimal;
+```
diff --git a/docs/sdk/lib-base.successfulreceipt.md b/docs/sdk/lib-base.successfulreceipt.md
new file mode 100644
index 00000000..9ff385d6
--- /dev/null
+++ b/docs/sdk/lib-base.successfulreceipt.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [SuccessfulReceipt](./lib-base.successfulreceipt.md)
+
+## SuccessfulReceipt type
+
+Indicates that the transaction has succeeded.
+
+Signature:
+
+```typescript
+export declare type SuccessfulReceipt = {
+ status: "succeeded";
+ rawReceipt: R;
+ details: D;
+};
+```
+
+## Remarks
+
+The `rawReceipt` property is an implementation-specific transaction receipt object.
+
+The `details` property may contain more information about the transaction. See the return types of [TransactableLiquity](./lib-base.transactableliquity.md) functions for the exact contents of `details` for each type of Liquity transaction.
+
+Returned by [SentLiquityTransaction.getReceipt()](./lib-base.sentliquitytransaction.getreceipt.md) and [SentLiquityTransaction.waitForReceipt()](./lib-base.sentliquitytransaction.waitforreceipt.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.adjusttrove.md b/docs/sdk/lib-base.transactableliquity.adjusttrove.md
new file mode 100644
index 00000000..cc0014d7
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.adjusttrove.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [adjustTrove](./lib-base.transactableliquity.adjusttrove.md)
+
+## TransactableLiquity.adjustTrove() method
+
+Adjust existing Trove by changing its collateral, debt, or both.
+
+Signature:
+
+```typescript
+adjustTrove(params: TroveAdjustmentParams, maxBorrowingRate?: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimalish](./lib-base.decimalish.md)> | Parameters of the adjustment. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md) if params includes borrowLUSD. |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+The transaction will fail if the Trove's debt would fall below [LUSD\_MINIMUM\_DEBT](./lib-base.lusd_minimum_debt.md).
+
+If `maxBorrowingRate` is omitted, the current borrowing rate plus 0.5% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.transactableliquity.approveunitokens.md b/docs/sdk/lib-base.transactableliquity.approveunitokens.md
new file mode 100644
index 00000000..a69058b5
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.approveunitokens.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [approveUniTokens](./lib-base.transactableliquity.approveunitokens.md)
+
+## TransactableLiquity.approveUniTokens() method
+
+Allow the liquidity mining contract to use Uniswap ETH/LUSD LP tokens for [staking](./lib-base.transactableliquity.stakeunitokens.md).
+
+Signature:
+
+```typescript
+approveUniTokens(allowance?: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| allowance | [Decimalish](./lib-base.decimalish.md) | Maximum amount of LP tokens that will be transferrable to liquidity mining (2^256 - 1 by default). |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Must be performed before calling [stakeUniTokens()](./lib-base.transactableliquity.stakeunitokens.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.borrowlusd.md b/docs/sdk/lib-base.transactableliquity.borrowlusd.md
new file mode 100644
index 00000000..79876c0e
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.borrowlusd.md
@@ -0,0 +1,38 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [borrowLUSD](./lib-base.transactableliquity.borrowlusd.md)
+
+## TransactableLiquity.borrowLUSD() method
+
+Adjust existing Trove by borrowing more LUSD.
+
+Signature:
+
+```typescript
+borrowLUSD(amount: Decimalish, maxBorrowingRate?: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of LUSD to borrow. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md). |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ borrowLUSD: amount }, maxBorrowingRate)
+
+```
+
diff --git a/docs/sdk/lib-base.transactableliquity.claimcollateralsurplus.md b/docs/sdk/lib-base.transactableliquity.claimcollateralsurplus.md
new file mode 100644
index 00000000..2c722adb
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.claimcollateralsurplus.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [claimCollateralSurplus](./lib-base.transactableliquity.claimcollateralsurplus.md)
+
+## TransactableLiquity.claimCollateralSurplus() method
+
+Claim leftover collateral after a liquidation or redemption.
+
+Signature:
+
+```typescript
+claimCollateralSurplus(): Promise;
+```
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Use [getCollateralSurplusBalance()](./lib-base.readableliquity.getcollateralsurplusbalance.md) to check the amount of collateral available for withdrawal.
+
diff --git a/docs/sdk/lib-base.transactableliquity.closetrove.md b/docs/sdk/lib-base.transactableliquity.closetrove.md
new file mode 100644
index 00000000..44048ffc
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.closetrove.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [closeTrove](./lib-base.transactableliquity.closetrove.md)
+
+## TransactableLiquity.closeTrove() method
+
+Close existing Trove by repaying all debt and withdrawing all collateral.
+
+Signature:
+
+```typescript
+closeTrove(): Promise;
+```
+Returns:
+
+Promise<[TroveClosureDetails](./lib-base.troveclosuredetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.depositcollateral.md b/docs/sdk/lib-base.transactableliquity.depositcollateral.md
new file mode 100644
index 00000000..930fa030
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.depositcollateral.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [depositCollateral](./lib-base.transactableliquity.depositcollateral.md)
+
+## TransactableLiquity.depositCollateral() method
+
+Adjust existing Trove by depositing more collateral.
+
+Signature:
+
+```typescript
+depositCollateral(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of collateral to add to the Trove's existing collateral. |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ depositCollateral: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.transactableliquity.depositlusdinstabilitypool.md b/docs/sdk/lib-base.transactableliquity.depositlusdinstabilitypool.md
new file mode 100644
index 00000000..a83f3a3b
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.depositlusdinstabilitypool.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [depositLUSDInStabilityPool](./lib-base.transactableliquity.depositlusdinstabilitypool.md)
+
+## TransactableLiquity.depositLUSDInStabilityPool() method
+
+Make a new Stability Deposit, or top up existing one.
+
+Signature:
+
+```typescript
+depositLUSDInStabilityPool(amount: Decimalish, frontendTag?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to add to new or existing deposit. |
+| frontendTag | string | Address that should receive a share of this deposit's LQTY rewards. |
+
+Returns:
+
+Promise<[StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+The `frontendTag` parameter is only effective when making a new deposit.
+
+As a side-effect, the transaction will also pay out an existing Stability Deposit's [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.exitliquiditymining.md b/docs/sdk/lib-base.transactableliquity.exitliquiditymining.md
new file mode 100644
index 00000000..9a9fa0c0
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.exitliquiditymining.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [exitLiquidityMining](./lib-base.transactableliquity.exitliquiditymining.md)
+
+## TransactableLiquity.exitLiquidityMining() method
+
+Withdraw all staked LP tokens from liquidity mining and claim reward.
+
+Signature:
+
+```typescript
+exitLiquidityMining(): Promise;
+```
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.liquidate.md b/docs/sdk/lib-base.transactableliquity.liquidate.md
new file mode 100644
index 00000000..7d4452df
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.liquidate.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [liquidate](./lib-base.transactableliquity.liquidate.md)
+
+## TransactableLiquity.liquidate() method
+
+Liquidate one or more undercollateralized Troves.
+
+Signature:
+
+```typescript
+liquidate(address: string | string[]): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| address | string \| string\[\] | Address or array of addresses whose Troves to liquidate. |
+
+Returns:
+
+Promise<[LiquidationDetails](./lib-base.liquidationdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.liquidateupto.md b/docs/sdk/lib-base.transactableliquity.liquidateupto.md
new file mode 100644
index 00000000..23ed55a2
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.liquidateupto.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [liquidateUpTo](./lib-base.transactableliquity.liquidateupto.md)
+
+## TransactableLiquity.liquidateUpTo() method
+
+Liquidate the least collateralized Troves up to a maximum number.
+
+Signature:
+
+```typescript
+liquidateUpTo(maximumNumberOfTrovesToLiquidate: number): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| maximumNumberOfTrovesToLiquidate | number | Stop after liquidating this many Troves. |
+
+Returns:
+
+Promise<[LiquidationDetails](./lib-base.liquidationdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.md b/docs/sdk/lib-base.transactableliquity.md
new file mode 100644
index 00000000..aa84e7b8
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.md
@@ -0,0 +1,51 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md)
+
+## TransactableLiquity interface
+
+Send Liquity transactions and wait for them to succeed.
+
+Signature:
+
+```typescript
+export interface TransactableLiquity
+```
+
+## Remarks
+
+The functions return the details of the transaction (if any), or throw an implementation-specific subclass of [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+Implemented by [EthersLiquity](./lib-ethers.ethersliquity.md).
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [adjustTrove(params, maxBorrowingRate)](./lib-base.transactableliquity.adjusttrove.md) | Adjust existing Trove by changing its collateral, debt, or both. |
+| [approveUniTokens(allowance)](./lib-base.transactableliquity.approveunitokens.md) | Allow the liquidity mining contract to use Uniswap ETH/LUSD LP tokens for [staking](./lib-base.transactableliquity.stakeunitokens.md). |
+| [borrowLUSD(amount, maxBorrowingRate)](./lib-base.transactableliquity.borrowlusd.md) | Adjust existing Trove by borrowing more LUSD. |
+| [claimCollateralSurplus()](./lib-base.transactableliquity.claimcollateralsurplus.md) | Claim leftover collateral after a liquidation or redemption. |
+| [closeTrove()](./lib-base.transactableliquity.closetrove.md) | Close existing Trove by repaying all debt and withdrawing all collateral. |
+| [depositCollateral(amount)](./lib-base.transactableliquity.depositcollateral.md) | Adjust existing Trove by depositing more collateral. |
+| [depositLUSDInStabilityPool(amount, frontendTag)](./lib-base.transactableliquity.depositlusdinstabilitypool.md) | Make a new Stability Deposit, or top up existing one. |
+| [exitLiquidityMining()](./lib-base.transactableliquity.exitliquiditymining.md) | Withdraw all staked LP tokens from liquidity mining and claim reward. |
+| [liquidate(address)](./lib-base.transactableliquity.liquidate.md) | Liquidate one or more undercollateralized Troves. |
+| [liquidateUpTo(maximumNumberOfTrovesToLiquidate)](./lib-base.transactableliquity.liquidateupto.md) | Liquidate the least collateralized Troves up to a maximum number. |
+| [openTrove(params, maxBorrowingRate)](./lib-base.transactableliquity.opentrove.md) | Open a new Trove by depositing collateral and borrowing LUSD. |
+| [redeemLUSD(amount, maxRedemptionRate)](./lib-base.transactableliquity.redeemlusd.md) | Redeem LUSD to native currency (e.g. Ether) at face value. |
+| [registerFrontend(kickbackRate)](./lib-base.transactableliquity.registerfrontend.md) | Register current wallet address as a Liquity frontend. |
+| [repayLUSD(amount)](./lib-base.transactableliquity.repaylusd.md) | Adjust existing Trove by repaying some of its debt. |
+| [sendLQTY(toAddress, amount)](./lib-base.transactableliquity.sendlqty.md) | Send LQTY tokens to an address. |
+| [sendLUSD(toAddress, amount)](./lib-base.transactableliquity.sendlusd.md) | Send LUSD tokens to an address. |
+| [stakeLQTY(amount)](./lib-base.transactableliquity.stakelqty.md) | Stake LQTY to start earning fee revenue or increase existing stake. |
+| [stakeUniTokens(amount)](./lib-base.transactableliquity.stakeunitokens.md) | Stake Uniswap ETH/LUSD LP tokens to participate in liquidity mining and earn LQTY. |
+| [transferCollateralGainToTrove()](./lib-base.transactableliquity.transfercollateralgaintotrove.md) | Transfer [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) from Stability Deposit to Trove. |
+| [unstakeLQTY(amount)](./lib-base.transactableliquity.unstakelqty.md) | Withdraw LQTY from staking. |
+| [unstakeUniTokens(amount)](./lib-base.transactableliquity.unstakeunitokens.md) | Withdraw Uniswap ETH/LUSD LP tokens from liquidity mining. |
+| [withdrawCollateral(amount)](./lib-base.transactableliquity.withdrawcollateral.md) | Adjust existing Trove by withdrawing some of its collateral. |
+| [withdrawGainsFromStabilityPool()](./lib-base.transactableliquity.withdrawgainsfromstabilitypool.md) | Withdraw [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md) from Stability Deposit. |
+| [withdrawGainsFromStaking()](./lib-base.transactableliquity.withdrawgainsfromstaking.md) | Withdraw [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md) from LQTY stake. |
+| [withdrawLQTYRewardFromLiquidityMining()](./lib-base.transactableliquity.withdrawlqtyrewardfromliquiditymining.md) | Withdraw LQTY that has been earned by mining liquidity. |
+| [withdrawLUSDFromStabilityPool(amount)](./lib-base.transactableliquity.withdrawlusdfromstabilitypool.md) | Withdraw LUSD from Stability Deposit. |
+
diff --git a/docs/sdk/lib-base.transactableliquity.opentrove.md b/docs/sdk/lib-base.transactableliquity.opentrove.md
new file mode 100644
index 00000000..87dc08f1
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.opentrove.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [openTrove](./lib-base.transactableliquity.opentrove.md)
+
+## TransactableLiquity.openTrove() method
+
+Open a new Trove by depositing collateral and borrowing LUSD.
+
+Signature:
+
+```typescript
+openTrove(params: TroveCreationParams, maxBorrowingRate?: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveCreationParams](./lib-base.trovecreationparams.md)<[Decimalish](./lib-base.decimalish.md)> | How much to deposit and borrow. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md). |
+
+Returns:
+
+Promise<[TroveCreationDetails](./lib-base.trovecreationdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+If `maxBorrowingRate` is omitted, the current borrowing rate plus 0.5% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.transactableliquity.redeemlusd.md b/docs/sdk/lib-base.transactableliquity.redeemlusd.md
new file mode 100644
index 00000000..787cd73e
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.redeemlusd.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [redeemLUSD](./lib-base.transactableliquity.redeemlusd.md)
+
+## TransactableLiquity.redeemLUSD() method
+
+Redeem LUSD to native currency (e.g. Ether) at face value.
+
+Signature:
+
+```typescript
+redeemLUSD(amount: Decimalish, maxRedemptionRate?: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to be redeemed. |
+| maxRedemptionRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [redemption rate](./lib-base.fees.redemptionrate.md). |
+
+Returns:
+
+Promise<[RedemptionDetails](./lib-base.redemptiondetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+If `maxRedemptionRate` is omitted, the current redemption rate (based on `amount`) plus 0.1% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-base.transactableliquity.registerfrontend.md b/docs/sdk/lib-base.transactableliquity.registerfrontend.md
new file mode 100644
index 00000000..d9672ee3
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.registerfrontend.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [registerFrontend](./lib-base.transactableliquity.registerfrontend.md)
+
+## TransactableLiquity.registerFrontend() method
+
+Register current wallet address as a Liquity frontend.
+
+Signature:
+
+```typescript
+registerFrontend(kickbackRate: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| kickbackRate | [Decimalish](./lib-base.decimalish.md) | The portion of LQTY rewards to pass onto users of the frontend (between 0 and 1). |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.repaylusd.md b/docs/sdk/lib-base.transactableliquity.repaylusd.md
new file mode 100644
index 00000000..d58f80bf
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.repaylusd.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [repayLUSD](./lib-base.transactableliquity.repaylusd.md)
+
+## TransactableLiquity.repayLUSD() method
+
+Adjust existing Trove by repaying some of its debt.
+
+Signature:
+
+```typescript
+repayLUSD(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of LUSD to repay. |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ repayLUSD: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.transactableliquity.sendlqty.md b/docs/sdk/lib-base.transactableliquity.sendlqty.md
new file mode 100644
index 00000000..344cff4c
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.sendlqty.md
@@ -0,0 +1,29 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [sendLQTY](./lib-base.transactableliquity.sendlqty.md)
+
+## TransactableLiquity.sendLQTY() method
+
+Send LQTY tokens to an address.
+
+Signature:
+
+```typescript
+sendLQTY(toAddress: string, amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| toAddress | string | Address of receipient. |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to send. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.sendlusd.md b/docs/sdk/lib-base.transactableliquity.sendlusd.md
new file mode 100644
index 00000000..74ae6896
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.sendlusd.md
@@ -0,0 +1,29 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [sendLUSD](./lib-base.transactableliquity.sendlusd.md)
+
+## TransactableLiquity.sendLUSD() method
+
+Send LUSD tokens to an address.
+
+Signature:
+
+```typescript
+sendLUSD(toAddress: string, amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| toAddress | string | Address of receipient. |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to send. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.stakelqty.md b/docs/sdk/lib-base.transactableliquity.stakelqty.md
new file mode 100644
index 00000000..dfb90be0
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.stakelqty.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [stakeLQTY](./lib-base.transactableliquity.stakelqty.md)
+
+## TransactableLiquity.stakeLQTY() method
+
+Stake LQTY to start earning fee revenue or increase existing stake.
+
+Signature:
+
+```typescript
+stakeLQTY(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to add to new or existing stake. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+As a side-effect, the transaction will also pay out an existing LQTY stake's [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.stakeunitokens.md b/docs/sdk/lib-base.transactableliquity.stakeunitokens.md
new file mode 100644
index 00000000..d882fd03
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.stakeunitokens.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [stakeUniTokens](./lib-base.transactableliquity.stakeunitokens.md)
+
+## TransactableLiquity.stakeUniTokens() method
+
+Stake Uniswap ETH/LUSD LP tokens to participate in liquidity mining and earn LQTY.
+
+Signature:
+
+```typescript
+stakeUniTokens(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LP tokens to add to new or existing stake. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.transfercollateralgaintotrove.md b/docs/sdk/lib-base.transactableliquity.transfercollateralgaintotrove.md
new file mode 100644
index 00000000..95e9ce4f
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.transfercollateralgaintotrove.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [transferCollateralGainToTrove](./lib-base.transactableliquity.transfercollateralgaintotrove.md)
+
+## TransactableLiquity.transferCollateralGainToTrove() method
+
+Transfer [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) from Stability Deposit to Trove.
+
+Signature:
+
+```typescript
+transferCollateralGainToTrove(): Promise;
+```
+Returns:
+
+Promise<[CollateralGainTransferDetails](./lib-base.collateralgaintransferdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+The collateral gain is transfered to the Trove as additional collateral.
+
+As a side-effect, the transaction will also pay out the Stability Deposit's [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.unstakelqty.md b/docs/sdk/lib-base.transactableliquity.unstakelqty.md
new file mode 100644
index 00000000..a25d9c05
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.unstakelqty.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [unstakeLQTY](./lib-base.transactableliquity.unstakelqty.md)
+
+## TransactableLiquity.unstakeLQTY() method
+
+Withdraw LQTY from staking.
+
+Signature:
+
+```typescript
+unstakeLQTY(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LQTY to withdraw. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+As a side-effect, the transaction will also pay out the LQTY stake's [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md).
+
diff --git a/docs/sdk/lib-base.transactableliquity.unstakeunitokens.md b/docs/sdk/lib-base.transactableliquity.unstakeunitokens.md
new file mode 100644
index 00000000..b78914d1
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.unstakeunitokens.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [unstakeUniTokens](./lib-base.transactableliquity.unstakeunitokens.md)
+
+## TransactableLiquity.unstakeUniTokens() method
+
+Withdraw Uniswap ETH/LUSD LP tokens from liquidity mining.
+
+Signature:
+
+```typescript
+unstakeUniTokens(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LP tokens to withdraw. |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.withdrawcollateral.md b/docs/sdk/lib-base.transactableliquity.withdrawcollateral.md
new file mode 100644
index 00000000..a3d49031
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.withdrawcollateral.md
@@ -0,0 +1,37 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [withdrawCollateral](./lib-base.transactableliquity.withdrawcollateral.md)
+
+## TransactableLiquity.withdrawCollateral() method
+
+Adjust existing Trove by withdrawing some of its collateral.
+
+Signature:
+
+```typescript
+withdrawCollateral(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of collateral to withdraw from the Trove. |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ withdrawCollateral: amount })
+
+```
+
diff --git a/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstabilitypool.md b/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstabilitypool.md
new file mode 100644
index 00000000..598e3396
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstabilitypool.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [withdrawGainsFromStabilityPool](./lib-base.transactableliquity.withdrawgainsfromstabilitypool.md)
+
+## TransactableLiquity.withdrawGainsFromStabilityPool() method
+
+Withdraw [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md) from Stability Deposit.
+
+Signature:
+
+```typescript
+withdrawGainsFromStabilityPool(): Promise;
+```
+Returns:
+
+Promise<[StabilityPoolGainsWithdrawalDetails](./lib-base.stabilitypoolgainswithdrawaldetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstaking.md b/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstaking.md
new file mode 100644
index 00000000..43f7e648
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.withdrawgainsfromstaking.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [withdrawGainsFromStaking](./lib-base.transactableliquity.withdrawgainsfromstaking.md)
+
+## TransactableLiquity.withdrawGainsFromStaking() method
+
+Withdraw [collateral gain](./lib-base.lqtystake.collateralgain.md) and [LUSD gain](./lib-base.lqtystake.lusdgain.md) from LQTY stake.
+
+Signature:
+
+```typescript
+withdrawGainsFromStaking(): Promise;
+```
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.withdrawlqtyrewardfromliquiditymining.md b/docs/sdk/lib-base.transactableliquity.withdrawlqtyrewardfromliquiditymining.md
new file mode 100644
index 00000000..522b3d92
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.withdrawlqtyrewardfromliquiditymining.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [withdrawLQTYRewardFromLiquidityMining](./lib-base.transactableliquity.withdrawlqtyrewardfromliquiditymining.md)
+
+## TransactableLiquity.withdrawLQTYRewardFromLiquidityMining() method
+
+Withdraw LQTY that has been earned by mining liquidity.
+
+Signature:
+
+```typescript
+withdrawLQTYRewardFromLiquidityMining(): Promise;
+```
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
diff --git a/docs/sdk/lib-base.transactableliquity.withdrawlusdfromstabilitypool.md b/docs/sdk/lib-base.transactableliquity.withdrawlusdfromstabilitypool.md
new file mode 100644
index 00000000..e95e1cc1
--- /dev/null
+++ b/docs/sdk/lib-base.transactableliquity.withdrawlusdfromstabilitypool.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactableLiquity](./lib-base.transactableliquity.md) > [withdrawLUSDFromStabilityPool](./lib-base.transactableliquity.withdrawlusdfromstabilitypool.md)
+
+## TransactableLiquity.withdrawLUSDFromStabilityPool() method
+
+Withdraw LUSD from Stability Deposit.
+
+Signature:
+
+```typescript
+withdrawLUSDFromStabilityPool(amount: Decimalish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | Amount of LUSD to withdraw. |
+
+Returns:
+
+Promise<[StabilityDepositChangeDetails](./lib-base.stabilitydepositchangedetails.md)>
+
+## Exceptions
+
+Throws [TransactionFailedError](./lib-base.transactionfailederror.md) in case of transaction failure.
+
+## Remarks
+
+As a side-effect, the transaction will also pay out the Stability Deposit's [collateral gain](./lib-base.stabilitydeposit.collateralgain.md) and [LQTY reward](./lib-base.stabilitydeposit.lqtyreward.md).
+
diff --git a/docs/sdk/lib-base.transactionfailederror.failedreceipt.md b/docs/sdk/lib-base.transactionfailederror.failedreceipt.md
new file mode 100644
index 00000000..f7e793fa
--- /dev/null
+++ b/docs/sdk/lib-base.transactionfailederror.failedreceipt.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactionFailedError](./lib-base.transactionfailederror.md) > [failedReceipt](./lib-base.transactionfailederror.failedreceipt.md)
+
+## TransactionFailedError.failedReceipt property
+
+Signature:
+
+```typescript
+readonly failedReceipt: T;
+```
diff --git a/docs/sdk/lib-base.transactionfailederror.md b/docs/sdk/lib-base.transactionfailederror.md
new file mode 100644
index 00000000..dfb80156
--- /dev/null
+++ b/docs/sdk/lib-base.transactionfailederror.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TransactionFailedError](./lib-base.transactionfailederror.md)
+
+## TransactionFailedError class
+
+Thrown by [TransactableLiquity](./lib-base.transactableliquity.md) functions in case of transaction failure.
+
+Signature:
+
+```typescript
+export declare class TransactionFailedError extends Error
+```
+Extends: Error
+
+## Remarks
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `TransactionFailedError` class.
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [failedReceipt](./lib-base.transactionfailederror.failedreceipt.md) | | T | |
+
diff --git a/docs/sdk/lib-base.trove.add.md b/docs/sdk/lib-base.trove.add.md
new file mode 100644
index 00000000..054ce29d
--- /dev/null
+++ b/docs/sdk/lib-base.trove.add.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [add](./lib-base.trove.add.md)
+
+## Trove.add() method
+
+Signature:
+
+```typescript
+add(that: Trove): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.addcollateral.md b/docs/sdk/lib-base.trove.addcollateral.md
new file mode 100644
index 00000000..db60904d
--- /dev/null
+++ b/docs/sdk/lib-base.trove.addcollateral.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [addCollateral](./lib-base.trove.addcollateral.md)
+
+## Trove.addCollateral() method
+
+Signature:
+
+```typescript
+addCollateral(collateral: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| collateral | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.adddebt.md b/docs/sdk/lib-base.trove.adddebt.md
new file mode 100644
index 00000000..ef44257e
--- /dev/null
+++ b/docs/sdk/lib-base.trove.adddebt.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [addDebt](./lib-base.trove.adddebt.md)
+
+## Trove.addDebt() method
+
+Signature:
+
+```typescript
+addDebt(debt: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| debt | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.adjust.md b/docs/sdk/lib-base.trove.adjust.md
new file mode 100644
index 00000000..e3d050ea
--- /dev/null
+++ b/docs/sdk/lib-base.trove.adjust.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [adjust](./lib-base.trove.adjust.md)
+
+## Trove.adjust() method
+
+Calculate the result of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction on this Trove.
+
+Signature:
+
+```typescript
+adjust(params: TroveAdjustmentParams, borrowingRate?: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimalish](./lib-base.decimalish.md)> | Parameters of the transaction. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Borrowing rate to use when adding to the Trove's debt. |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.adjustto.md b/docs/sdk/lib-base.trove.adjustto.md
new file mode 100644
index 00000000..7f42d665
--- /dev/null
+++ b/docs/sdk/lib-base.trove.adjustto.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [adjustTo](./lib-base.trove.adjustto.md)
+
+## Trove.adjustTo() method
+
+Calculate the parameters of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction that will change this Trove into the given Trove.
+
+Signature:
+
+```typescript
+adjustTo(that: Trove, borrowingRate?: Decimalish): TroveAdjustmentParams;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | The desired result of the transaction. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Current borrowing rate. |
+
+Returns:
+
+[TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.trove.apply.md b/docs/sdk/lib-base.trove.apply.md
new file mode 100644
index 00000000..c06cc855
--- /dev/null
+++ b/docs/sdk/lib-base.trove.apply.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [apply](./lib-base.trove.apply.md)
+
+## Trove.apply() method
+
+Make a new Trove by applying a [TroveChange](./lib-base.trovechange.md) to this Trove.
+
+Signature:
+
+```typescript
+apply(change: TroveChange | undefined, borrowingRate?: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| change | [TroveChange](./lib-base.trovechange.md)<[Decimal](./lib-base.decimal.md)> \| undefined | The change to apply. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Borrowing rate to use when adding a borrowed amount to the Trove's debt. |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.collateral.md b/docs/sdk/lib-base.trove.collateral.md
new file mode 100644
index 00000000..fd595df1
--- /dev/null
+++ b/docs/sdk/lib-base.trove.collateral.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [collateral](./lib-base.trove.collateral.md)
+
+## Trove.collateral property
+
+Amount of native currency (e.g. Ether) collateralized.
+
+Signature:
+
+```typescript
+readonly collateral: Decimal;
+```
diff --git a/docs/sdk/lib-base.trove.collateralratio.md b/docs/sdk/lib-base.trove.collateralratio.md
new file mode 100644
index 00000000..40d3a87b
--- /dev/null
+++ b/docs/sdk/lib-base.trove.collateralratio.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [collateralRatio](./lib-base.trove.collateralratio.md)
+
+## Trove.collateralRatio() method
+
+Calculate the Trove's collateralization ratio at a given price.
+
+Signature:
+
+```typescript
+collateralRatio(price: Decimalish): Decimal;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| price | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Decimal](./lib-base.decimal.md)
+
diff --git a/docs/sdk/lib-base.trove.collateralratioisbelowcritical.md b/docs/sdk/lib-base.trove.collateralratioisbelowcritical.md
new file mode 100644
index 00000000..10ff0cd4
--- /dev/null
+++ b/docs/sdk/lib-base.trove.collateralratioisbelowcritical.md
@@ -0,0 +1,38 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [collateralRatioIsBelowCritical](./lib-base.trove.collateralratioisbelowcritical.md)
+
+## Trove.collateralRatioIsBelowCritical() method
+
+Whether the collateralization ratio is less than the [CRITICAL\_COLLATERAL\_RATIO](./lib-base.critical_collateral_ratio.md) at a given price.
+
+Signature:
+
+```typescript
+collateralRatioIsBelowCritical(price: Decimalish): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| price | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+boolean
+
+## Example
+
+Can be used to check whether the Liquity protocol is in recovery mode by using it on the return value of [getTotal()](./lib-base.readableliquity.gettotal.md). For example:
+
+```typescript
+const total = await liquity.getTotal();
+const price = await liquity.getPrice();
+
+if (total.collateralRatioIsBelowCritical(price)) {
+ // Recovery mode is active
+}
+
+```
+
diff --git a/docs/sdk/lib-base.trove.collateralratioisbelowminimum.md b/docs/sdk/lib-base.trove.collateralratioisbelowminimum.md
new file mode 100644
index 00000000..3cc1eea7
--- /dev/null
+++ b/docs/sdk/lib-base.trove.collateralratioisbelowminimum.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [collateralRatioIsBelowMinimum](./lib-base.trove.collateralratioisbelowminimum.md)
+
+## Trove.collateralRatioIsBelowMinimum() method
+
+Whether the Trove is undercollateralized at a given price.
+
+Signature:
+
+```typescript
+collateralRatioIsBelowMinimum(price: Decimalish): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| price | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+boolean
+
+`true` if the Trove's collateralization ratio is less than the [MINIMUM\_COLLATERAL\_RATIO](./lib-base.minimum_collateral_ratio.md).
+
diff --git a/docs/sdk/lib-base.trove.create.md b/docs/sdk/lib-base.trove.create.md
new file mode 100644
index 00000000..d9711e42
--- /dev/null
+++ b/docs/sdk/lib-base.trove.create.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [create](./lib-base.trove.create.md)
+
+## Trove.create() method
+
+Calculate the result of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction.
+
+Signature:
+
+```typescript
+static create(params: TroveCreationParams, borrowingRate?: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveCreationParams](./lib-base.trovecreationparams.md)<[Decimalish](./lib-base.decimalish.md)> | Parameters of the transaction. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Borrowing rate to use when calculating the Trove's debt. |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.debt.md b/docs/sdk/lib-base.trove.debt.md
new file mode 100644
index 00000000..a9e29dd5
--- /dev/null
+++ b/docs/sdk/lib-base.trove.debt.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [debt](./lib-base.trove.debt.md)
+
+## Trove.debt property
+
+Amount of LUSD owed.
+
+Signature:
+
+```typescript
+readonly debt: Decimal;
+```
diff --git a/docs/sdk/lib-base.trove.equals.md b/docs/sdk/lib-base.trove.equals.md
new file mode 100644
index 00000000..0ce2a79d
--- /dev/null
+++ b/docs/sdk/lib-base.trove.equals.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [equals](./lib-base.trove.equals.md)
+
+## Trove.equals() method
+
+Signature:
+
+```typescript
+equals(that: Trove): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | |
+
+Returns:
+
+boolean
+
diff --git a/docs/sdk/lib-base.trove.isempty.md b/docs/sdk/lib-base.trove.isempty.md
new file mode 100644
index 00000000..230a0c5d
--- /dev/null
+++ b/docs/sdk/lib-base.trove.isempty.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [isEmpty](./lib-base.trove.isempty.md)
+
+## Trove.isEmpty property
+
+Signature:
+
+```typescript
+get isEmpty(): boolean;
+```
diff --git a/docs/sdk/lib-base.trove.isopenableinrecoverymode.md b/docs/sdk/lib-base.trove.isopenableinrecoverymode.md
new file mode 100644
index 00000000..7d7d7120
--- /dev/null
+++ b/docs/sdk/lib-base.trove.isopenableinrecoverymode.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [isOpenableInRecoveryMode](./lib-base.trove.isopenableinrecoverymode.md)
+
+## Trove.isOpenableInRecoveryMode() method
+
+Whether the Trove is sufficiently collateralized to be opened during recovery mode.
+
+Signature:
+
+```typescript
+isOpenableInRecoveryMode(price: Decimalish): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| price | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+boolean
+
diff --git a/docs/sdk/lib-base.trove.md b/docs/sdk/lib-base.trove.md
new file mode 100644
index 00000000..208632c0
--- /dev/null
+++ b/docs/sdk/lib-base.trove.md
@@ -0,0 +1,52 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md)
+
+## Trove class
+
+A combination of collateral and debt.
+
+Signature:
+
+```typescript
+export declare class Trove
+```
+
+## Remarks
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `Trove` class.
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [collateral](./lib-base.trove.collateral.md) | | [Decimal](./lib-base.decimal.md) | Amount of native currency (e.g. Ether) collateralized. |
+| [debt](./lib-base.trove.debt.md) | | [Decimal](./lib-base.decimal.md) | Amount of LUSD owed. |
+| [isEmpty](./lib-base.trove.isempty.md) | | boolean | |
+| [netDebt](./lib-base.trove.netdebt.md) | | [Decimal](./lib-base.decimal.md) | Amount of LUSD that must be repaid to close this Trove. |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [add(that)](./lib-base.trove.add.md) | | |
+| [addCollateral(collateral)](./lib-base.trove.addcollateral.md) | | |
+| [addDebt(debt)](./lib-base.trove.adddebt.md) | | |
+| [adjust(params, borrowingRate)](./lib-base.trove.adjust.md) | | Calculate the result of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction on this Trove. |
+| [adjustTo(that, borrowingRate)](./lib-base.trove.adjustto.md) | | Calculate the parameters of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction that will change this Trove into the given Trove. |
+| [apply(change, borrowingRate)](./lib-base.trove.apply.md) | | Make a new Trove by applying a [TroveChange](./lib-base.trovechange.md) to this Trove. |
+| [collateralRatio(price)](./lib-base.trove.collateralratio.md) | | Calculate the Trove's collateralization ratio at a given price. |
+| [collateralRatioIsBelowCritical(price)](./lib-base.trove.collateralratioisbelowcritical.md) | | Whether the collateralization ratio is less than the [CRITICAL\_COLLATERAL\_RATIO](./lib-base.critical_collateral_ratio.md) at a given price. |
+| [collateralRatioIsBelowMinimum(price)](./lib-base.trove.collateralratioisbelowminimum.md) | | Whether the Trove is undercollateralized at a given price. |
+| [create(params, borrowingRate)](./lib-base.trove.create.md) | static | Calculate the result of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction. |
+| [equals(that)](./lib-base.trove.equals.md) | | |
+| [isOpenableInRecoveryMode(price)](./lib-base.trove.isopenableinrecoverymode.md) | | Whether the Trove is sufficiently collateralized to be opened during recovery mode. |
+| [multiply(multiplier)](./lib-base.trove.multiply.md) | | |
+| [recreate(that, borrowingRate)](./lib-base.trove.recreate.md) | static | Calculate the parameters of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction that will result in the given Trove. |
+| [setCollateral(collateral)](./lib-base.trove.setcollateral.md) | | |
+| [setDebt(debt)](./lib-base.trove.setdebt.md) | | |
+| [subtract(that)](./lib-base.trove.subtract.md) | | |
+| [subtractCollateral(collateral)](./lib-base.trove.subtractcollateral.md) | | |
+| [subtractDebt(debt)](./lib-base.trove.subtractdebt.md) | | |
+| [whatChanged(that, borrowingRate)](./lib-base.trove.whatchanged.md) | | Calculate the difference between this Trove and another. |
+
diff --git a/docs/sdk/lib-base.trove.multiply.md b/docs/sdk/lib-base.trove.multiply.md
new file mode 100644
index 00000000..b632d8e8
--- /dev/null
+++ b/docs/sdk/lib-base.trove.multiply.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [multiply](./lib-base.trove.multiply.md)
+
+## Trove.multiply() method
+
+Signature:
+
+```typescript
+multiply(multiplier: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| multiplier | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.netdebt.md b/docs/sdk/lib-base.trove.netdebt.md
new file mode 100644
index 00000000..3da70fdb
--- /dev/null
+++ b/docs/sdk/lib-base.trove.netdebt.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [netDebt](./lib-base.trove.netdebt.md)
+
+## Trove.netDebt property
+
+Amount of LUSD that must be repaid to close this Trove.
+
+Signature:
+
+```typescript
+get netDebt(): Decimal;
+```
+
+## Remarks
+
+This doesn't include the liquidation reserve, which is refunded in case of normal closure.
+
diff --git a/docs/sdk/lib-base.trove.recreate.md b/docs/sdk/lib-base.trove.recreate.md
new file mode 100644
index 00000000..0e506a55
--- /dev/null
+++ b/docs/sdk/lib-base.trove.recreate.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [recreate](./lib-base.trove.recreate.md)
+
+## Trove.recreate() method
+
+Calculate the parameters of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction that will result in the given Trove.
+
+Signature:
+
+```typescript
+static recreate(that: Trove, borrowingRate?: Decimalish): TroveCreationParams;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | The Trove to recreate. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Current borrowing rate. |
+
+Returns:
+
+[TroveCreationParams](./lib-base.trovecreationparams.md)<[Decimal](./lib-base.decimal.md)>
+
diff --git a/docs/sdk/lib-base.trove.setcollateral.md b/docs/sdk/lib-base.trove.setcollateral.md
new file mode 100644
index 00000000..64a4d618
--- /dev/null
+++ b/docs/sdk/lib-base.trove.setcollateral.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [setCollateral](./lib-base.trove.setcollateral.md)
+
+## Trove.setCollateral() method
+
+Signature:
+
+```typescript
+setCollateral(collateral: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| collateral | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.setdebt.md b/docs/sdk/lib-base.trove.setdebt.md
new file mode 100644
index 00000000..feb15dc1
--- /dev/null
+++ b/docs/sdk/lib-base.trove.setdebt.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [setDebt](./lib-base.trove.setdebt.md)
+
+## Trove.setDebt() method
+
+Signature:
+
+```typescript
+setDebt(debt: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| debt | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.subtract.md b/docs/sdk/lib-base.trove.subtract.md
new file mode 100644
index 00000000..f7e29bb0
--- /dev/null
+++ b/docs/sdk/lib-base.trove.subtract.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [subtract](./lib-base.trove.subtract.md)
+
+## Trove.subtract() method
+
+Signature:
+
+```typescript
+subtract(that: Trove): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.subtractcollateral.md b/docs/sdk/lib-base.trove.subtractcollateral.md
new file mode 100644
index 00000000..0a285d7b
--- /dev/null
+++ b/docs/sdk/lib-base.trove.subtractcollateral.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [subtractCollateral](./lib-base.trove.subtractcollateral.md)
+
+## Trove.subtractCollateral() method
+
+Signature:
+
+```typescript
+subtractCollateral(collateral: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| collateral | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.subtractdebt.md b/docs/sdk/lib-base.trove.subtractdebt.md
new file mode 100644
index 00000000..e2b10cab
--- /dev/null
+++ b/docs/sdk/lib-base.trove.subtractdebt.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [subtractDebt](./lib-base.trove.subtractdebt.md)
+
+## Trove.subtractDebt() method
+
+Signature:
+
+```typescript
+subtractDebt(debt: Decimalish): Trove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| debt | [Decimalish](./lib-base.decimalish.md) | |
+
+Returns:
+
+[Trove](./lib-base.trove.md)
+
diff --git a/docs/sdk/lib-base.trove.whatchanged.md b/docs/sdk/lib-base.trove.whatchanged.md
new file mode 100644
index 00000000..95cc5731
--- /dev/null
+++ b/docs/sdk/lib-base.trove.whatchanged.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [Trove](./lib-base.trove.md) > [whatChanged](./lib-base.trove.whatchanged.md)
+
+## Trove.whatChanged() method
+
+Calculate the difference between this Trove and another.
+
+Signature:
+
+```typescript
+whatChanged(that: Trove, borrowingRate?: Decimalish): TroveChange | undefined;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [Trove](./lib-base.trove.md) | The other Trove. |
+| borrowingRate | [Decimalish](./lib-base.decimalish.md) | Borrowing rate to use when calculating a borrowed amount. |
+
+Returns:
+
+[TroveChange](./lib-base.trovechange.md)<[Decimal](./lib-base.decimal.md)> \| undefined
+
+An object representing the change, or `undefined` if the Troves are equal.
+
diff --git a/docs/sdk/lib-base.troveadjustmentdetails.fee.md b/docs/sdk/lib-base.troveadjustmentdetails.fee.md
new file mode 100644
index 00000000..cc08f195
--- /dev/null
+++ b/docs/sdk/lib-base.troveadjustmentdetails.fee.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md) > [fee](./lib-base.troveadjustmentdetails.fee.md)
+
+## TroveAdjustmentDetails.fee property
+
+Amount of LUSD added to the Trove's debt as borrowing fee.
+
+Signature:
+
+```typescript
+fee: Decimal;
+```
diff --git a/docs/sdk/lib-base.troveadjustmentdetails.md b/docs/sdk/lib-base.troveadjustmentdetails.md
new file mode 100644
index 00000000..9c6e72fa
--- /dev/null
+++ b/docs/sdk/lib-base.troveadjustmentdetails.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)
+
+## TroveAdjustmentDetails interface
+
+Details of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction.
+
+Signature:
+
+```typescript
+export interface TroveAdjustmentDetails
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [fee](./lib-base.troveadjustmentdetails.fee.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD added to the Trove's debt as borrowing fee. |
+| [newTrove](./lib-base.troveadjustmentdetails.newtrove.md) | [Trove](./lib-base.trove.md) | New state of the adjusted Trove directly after the transaction. |
+| [params](./lib-base.troveadjustmentdetails.params.md) | [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimal](./lib-base.decimal.md)> | Parameters of the adjustment. |
+
diff --git a/docs/sdk/lib-base.troveadjustmentdetails.newtrove.md b/docs/sdk/lib-base.troveadjustmentdetails.newtrove.md
new file mode 100644
index 00000000..ebc13d66
--- /dev/null
+++ b/docs/sdk/lib-base.troveadjustmentdetails.newtrove.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md) > [newTrove](./lib-base.troveadjustmentdetails.newtrove.md)
+
+## TroveAdjustmentDetails.newTrove property
+
+New state of the adjusted Trove directly after the transaction.
+
+Signature:
+
+```typescript
+newTrove: Trove;
+```
diff --git a/docs/sdk/lib-base.troveadjustmentdetails.params.md b/docs/sdk/lib-base.troveadjustmentdetails.params.md
new file mode 100644
index 00000000..0aa77839
--- /dev/null
+++ b/docs/sdk/lib-base.troveadjustmentdetails.params.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md) > [params](./lib-base.troveadjustmentdetails.params.md)
+
+## TroveAdjustmentDetails.params property
+
+Parameters of the adjustment.
+
+Signature:
+
+```typescript
+params: TroveAdjustmentParams;
+```
diff --git a/docs/sdk/lib-base.troveadjustmentparams.md b/docs/sdk/lib-base.troveadjustmentparams.md
new file mode 100644
index 00000000..c5f9ca40
--- /dev/null
+++ b/docs/sdk/lib-base.troveadjustmentparams.md
@@ -0,0 +1,38 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)
+
+## TroveAdjustmentParams type
+
+Parameters of an [adjustTrove()](./lib-base.transactableliquity.adjusttrove.md) transaction.
+
+Signature:
+
+```typescript
+export declare type TroveAdjustmentParams = (_CollateralChange & _NoDebtChange) | (_DebtChange & _NoCollateralChange) | (_CollateralChange & _DebtChange);
+```
+
+## Remarks
+
+The type parameter `T` specifies the allowed value type(s) of the particular `TroveAdjustmentParams` object's properties.
+
+Even though all properties are optional, a valid `TroveAdjustmentParams` object must define at least one.
+
+Defining both `depositCollateral` and `withdrawCollateral`, or both `borrowLUSD` and `repayLUSD` at the same time is disallowed, and will result in a type-checking error.
+
+Properties
+
+
+
+ | Property | Type | Description |
+
+ | depositCollateral? | T | (Optional) The amount of collateral that's deposited. |
+
+ | withdrawCollateral? | T | (Optional) The amount of collateral that's withdrawn. |
+
+ | borrowLUSD? | T | (Optional) The amount of LUSD that's borrowed. |
+
+ | repayLUSD? | T | (Optional) The amount of LUSD that's repaid. |
+
+
+
diff --git a/docs/sdk/lib-base.trovechange.md b/docs/sdk/lib-base.trovechange.md
new file mode 100644
index 00000000..6d58f379
--- /dev/null
+++ b/docs/sdk/lib-base.trovechange.md
@@ -0,0 +1,35 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveChange](./lib-base.trovechange.md)
+
+## TroveChange type
+
+Represents the change between two Trove states.
+
+Signature:
+
+```typescript
+export declare type TroveChange = {
+ type: "invalidCreation";
+ invalidTrove: Trove;
+ error: TroveCreationError;
+} | {
+ type: "creation";
+ params: TroveCreationParams;
+} | {
+ type: "closure";
+ params: TroveClosureParams;
+} | {
+ type: "adjustment";
+ params: TroveAdjustmentParams;
+ setToZero?: "collateral" | "debt";
+};
+```
+References: [Trove](./lib-base.trove.md), [TroveCreationError](./lib-base.trovecreationerror.md), [TroveCreationParams](./lib-base.trovecreationparams.md), [TroveClosureParams](./lib-base.troveclosureparams.md), [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)
+
+## Remarks
+
+Returned by [Trove.whatChanged()](./lib-base.trove.whatchanged.md).
+
+Passed as a parameter to [Trove.apply()](./lib-base.trove.apply.md).
+
diff --git a/docs/sdk/lib-base.troveclosuredetails.md b/docs/sdk/lib-base.troveclosuredetails.md
new file mode 100644
index 00000000..320968da
--- /dev/null
+++ b/docs/sdk/lib-base.troveclosuredetails.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveClosureDetails](./lib-base.troveclosuredetails.md)
+
+## TroveClosureDetails interface
+
+Details of a [closeTrove()](./lib-base.transactableliquity.closetrove.md) transaction.
+
+Signature:
+
+```typescript
+export interface TroveClosureDetails
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [params](./lib-base.troveclosuredetails.params.md) | [TroveClosureParams](./lib-base.troveclosureparams.md)<[Decimal](./lib-base.decimal.md)> | How much was withdrawn and repaid. |
+
diff --git a/docs/sdk/lib-base.troveclosuredetails.params.md b/docs/sdk/lib-base.troveclosuredetails.params.md
new file mode 100644
index 00000000..2a9a978f
--- /dev/null
+++ b/docs/sdk/lib-base.troveclosuredetails.params.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveClosureDetails](./lib-base.troveclosuredetails.md) > [params](./lib-base.troveclosuredetails.params.md)
+
+## TroveClosureDetails.params property
+
+How much was withdrawn and repaid.
+
+Signature:
+
+```typescript
+params: TroveClosureParams;
+```
diff --git a/docs/sdk/lib-base.troveclosureparams.md b/docs/sdk/lib-base.troveclosureparams.md
new file mode 100644
index 00000000..697f0558
--- /dev/null
+++ b/docs/sdk/lib-base.troveclosureparams.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveClosureParams](./lib-base.troveclosureparams.md)
+
+## TroveClosureParams type
+
+Parameters of a [closeTrove()](./lib-base.transactableliquity.closetrove.md) transaction.
+
+Signature:
+
+```typescript
+export declare type TroveClosureParams = _CollateralWithdrawal & _NoCollateralDeposit & Partial<_LUSDRepayment> & _NoLUSDBorrowing;
+```
+
+## Remarks
+
+The type parameter `T` specifies the allowed value type(s) of the particular `TroveClosureParams` object's properties.
+
+Properties
+
+
+
+ | Property | Type | Description |
+
+ | withdrawCollateral | T | The amount of collateral that's withdrawn. |
+
+ | repayLUSD? | T | (Optional) The amount of LUSD that's repaid. |
+
+
+
diff --git a/docs/sdk/lib-base.trovecreationdetails.fee.md b/docs/sdk/lib-base.trovecreationdetails.fee.md
new file mode 100644
index 00000000..150915a0
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationdetails.fee.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationDetails](./lib-base.trovecreationdetails.md) > [fee](./lib-base.trovecreationdetails.fee.md)
+
+## TroveCreationDetails.fee property
+
+Amount of LUSD added to the Trove's debt as borrowing fee.
+
+Signature:
+
+```typescript
+fee: Decimal;
+```
diff --git a/docs/sdk/lib-base.trovecreationdetails.md b/docs/sdk/lib-base.trovecreationdetails.md
new file mode 100644
index 00000000..85df4901
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationdetails.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationDetails](./lib-base.trovecreationdetails.md)
+
+## TroveCreationDetails interface
+
+Details of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction.
+
+Signature:
+
+```typescript
+export interface TroveCreationDetails
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [fee](./lib-base.trovecreationdetails.fee.md) | [Decimal](./lib-base.decimal.md) | Amount of LUSD added to the Trove's debt as borrowing fee. |
+| [newTrove](./lib-base.trovecreationdetails.newtrove.md) | [Trove](./lib-base.trove.md) | The Trove that was created by the transaction. |
+| [params](./lib-base.trovecreationdetails.params.md) | [TroveCreationParams](./lib-base.trovecreationparams.md)<[Decimal](./lib-base.decimal.md)> | How much was deposited and borrowed. |
+
diff --git a/docs/sdk/lib-base.trovecreationdetails.newtrove.md b/docs/sdk/lib-base.trovecreationdetails.newtrove.md
new file mode 100644
index 00000000..cae323d5
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationdetails.newtrove.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationDetails](./lib-base.trovecreationdetails.md) > [newTrove](./lib-base.trovecreationdetails.newtrove.md)
+
+## TroveCreationDetails.newTrove property
+
+The Trove that was created by the transaction.
+
+Signature:
+
+```typescript
+newTrove: Trove;
+```
diff --git a/docs/sdk/lib-base.trovecreationdetails.params.md b/docs/sdk/lib-base.trovecreationdetails.params.md
new file mode 100644
index 00000000..36d1cc01
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationdetails.params.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationDetails](./lib-base.trovecreationdetails.md) > [params](./lib-base.trovecreationdetails.params.md)
+
+## TroveCreationDetails.params property
+
+How much was deposited and borrowed.
+
+Signature:
+
+```typescript
+params: TroveCreationParams;
+```
diff --git a/docs/sdk/lib-base.trovecreationerror.md b/docs/sdk/lib-base.trovecreationerror.md
new file mode 100644
index 00000000..f116e57c
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationerror.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationError](./lib-base.trovecreationerror.md)
+
+## TroveCreationError type
+
+Describes why a Trove could not be created.
+
+Signature:
+
+```typescript
+export declare type TroveCreationError = "missingLiquidationReserve";
+```
+
+## Remarks
+
+See [TroveChange](./lib-base.trovechange.md).
+
+Possible values
+
+
+
+ | Value | Reason |
+
+ | "missingLiquidationReserve" | A Trove's debt cannot be less than the liquidation reserve. |
+
+
+
+More errors may be added in the future.
+
diff --git a/docs/sdk/lib-base.trovecreationparams.md b/docs/sdk/lib-base.trovecreationparams.md
new file mode 100644
index 00000000..eee87145
--- /dev/null
+++ b/docs/sdk/lib-base.trovecreationparams.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveCreationParams](./lib-base.trovecreationparams.md)
+
+## TroveCreationParams type
+
+Parameters of an [openTrove()](./lib-base.transactableliquity.opentrove.md) transaction.
+
+Signature:
+
+```typescript
+export declare type TroveCreationParams = _CollateralDeposit & _NoCollateralWithdrawal & _LUSDBorrowing & _NoLUSDRepayment;
+```
+
+## Remarks
+
+The type parameter `T` specifies the allowed value type(s) of the particular `TroveCreationParams` object's properties.
+
+Properties
+
+
+
+ | Property | Type | Description |
+
+ | depositCollateral | T | The amount of collateral that's deposited. |
+
+ | borrowLUSD | T | The amount of LUSD that's borrowed. |
+
+
+
diff --git a/docs/sdk/lib-base.trovelistingparams.beforeredistribution.md b/docs/sdk/lib-base.trovelistingparams.beforeredistribution.md
new file mode 100644
index 00000000..236c52af
--- /dev/null
+++ b/docs/sdk/lib-base.trovelistingparams.beforeredistribution.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveListingParams](./lib-base.trovelistingparams.md) > [beforeRedistribution](./lib-base.trovelistingparams.beforeredistribution.md)
+
+## TroveListingParams.beforeRedistribution property
+
+When set to `true`, the retrieved Troves won't include the liquidation shares received since the last time they were directly modified.
+
+Signature:
+
+```typescript
+readonly beforeRedistribution?: boolean;
+```
+
+## Remarks
+
+Changes the type of returned Troves to [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md).
+
diff --git a/docs/sdk/lib-base.trovelistingparams.first.md b/docs/sdk/lib-base.trovelistingparams.first.md
new file mode 100644
index 00000000..58870517
--- /dev/null
+++ b/docs/sdk/lib-base.trovelistingparams.first.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveListingParams](./lib-base.trovelistingparams.md) > [first](./lib-base.trovelistingparams.first.md)
+
+## TroveListingParams.first property
+
+Number of Troves to retrieve.
+
+Signature:
+
+```typescript
+readonly first: number;
+```
diff --git a/docs/sdk/lib-base.trovelistingparams.md b/docs/sdk/lib-base.trovelistingparams.md
new file mode 100644
index 00000000..58eb3d48
--- /dev/null
+++ b/docs/sdk/lib-base.trovelistingparams.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveListingParams](./lib-base.trovelistingparams.md)
+
+## TroveListingParams interface
+
+Parameters of the [getTroves()](./lib-base.readableliquity.gettroves_1.md) function.
+
+Signature:
+
+```typescript
+export interface TroveListingParams
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [beforeRedistribution?](./lib-base.trovelistingparams.beforeredistribution.md) | boolean | (Optional) When set to true, the retrieved Troves won't include the liquidation shares received since the last time they were directly modified. |
+| [first](./lib-base.trovelistingparams.first.md) | number | Number of Troves to retrieve. |
+| [sortedBy](./lib-base.trovelistingparams.sortedby.md) | "ascendingCollateralRatio" \| "descendingCollateralRatio" | How the Troves should be sorted. |
+| [startingAt?](./lib-base.trovelistingparams.startingat.md) | number | (Optional) Index of the first Trove to retrieve from the sorted list. |
+
diff --git a/docs/sdk/lib-base.trovelistingparams.sortedby.md b/docs/sdk/lib-base.trovelistingparams.sortedby.md
new file mode 100644
index 00000000..2e467951
--- /dev/null
+++ b/docs/sdk/lib-base.trovelistingparams.sortedby.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveListingParams](./lib-base.trovelistingparams.md) > [sortedBy](./lib-base.trovelistingparams.sortedby.md)
+
+## TroveListingParams.sortedBy property
+
+How the Troves should be sorted.
+
+Signature:
+
+```typescript
+readonly sortedBy: "ascendingCollateralRatio" | "descendingCollateralRatio";
+```
diff --git a/docs/sdk/lib-base.trovelistingparams.startingat.md b/docs/sdk/lib-base.trovelistingparams.startingat.md
new file mode 100644
index 00000000..30c05896
--- /dev/null
+++ b/docs/sdk/lib-base.trovelistingparams.startingat.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveListingParams](./lib-base.trovelistingparams.md) > [startingAt](./lib-base.trovelistingparams.startingat.md)
+
+## TroveListingParams.startingAt property
+
+Index of the first Trove to retrieve from the sorted list.
+
+Signature:
+
+```typescript
+readonly startingAt?: number;
+```
diff --git a/docs/sdk/lib-base.trovewithpendingredistribution.applyredistribution.md b/docs/sdk/lib-base.trovewithpendingredistribution.applyredistribution.md
new file mode 100644
index 00000000..55a7ffd3
--- /dev/null
+++ b/docs/sdk/lib-base.trovewithpendingredistribution.applyredistribution.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md) > [applyRedistribution](./lib-base.trovewithpendingredistribution.applyredistribution.md)
+
+## TroveWithPendingRedistribution.applyRedistribution() method
+
+Signature:
+
+```typescript
+applyRedistribution(totalRedistributed: Trove): UserTrove;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| totalRedistributed | [Trove](./lib-base.trove.md) | |
+
+Returns:
+
+[UserTrove](./lib-base.usertrove.md)
+
diff --git a/docs/sdk/lib-base.trovewithpendingredistribution.equals.md b/docs/sdk/lib-base.trovewithpendingredistribution.equals.md
new file mode 100644
index 00000000..1bf14e8f
--- /dev/null
+++ b/docs/sdk/lib-base.trovewithpendingredistribution.equals.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md) > [equals](./lib-base.trovewithpendingredistribution.equals.md)
+
+## TroveWithPendingRedistribution.equals() method
+
+Signature:
+
+```typescript
+equals(that: TroveWithPendingRedistribution): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md) | |
+
+Returns:
+
+boolean
+
diff --git a/docs/sdk/lib-base.trovewithpendingredistribution.md b/docs/sdk/lib-base.trovewithpendingredistribution.md
new file mode 100644
index 00000000..4a00d64d
--- /dev/null
+++ b/docs/sdk/lib-base.trovewithpendingredistribution.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [TroveWithPendingRedistribution](./lib-base.trovewithpendingredistribution.md)
+
+## TroveWithPendingRedistribution class
+
+A Trove in its state after the last direct modification.
+
+Signature:
+
+```typescript
+export declare class TroveWithPendingRedistribution extends UserTrove
+```
+Extends: [UserTrove](./lib-base.usertrove.md)
+
+## Remarks
+
+The Trove may have received collateral and debt shares from liquidations since then. Use [applyRedistribution()](./lib-base.trovewithpendingredistribution.applyredistribution.md) to calculate the Trove's most up-to-date state.
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `TroveWithPendingRedistribution` class.
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [applyRedistribution(totalRedistributed)](./lib-base.trovewithpendingredistribution.applyredistribution.md) | | |
+| [equals(that)](./lib-base.trovewithpendingredistribution.equals.md) | | |
+
diff --git a/docs/sdk/lib-base.usertrove.equals.md b/docs/sdk/lib-base.usertrove.equals.md
new file mode 100644
index 00000000..fee34967
--- /dev/null
+++ b/docs/sdk/lib-base.usertrove.equals.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [UserTrove](./lib-base.usertrove.md) > [equals](./lib-base.usertrove.equals.md)
+
+## UserTrove.equals() method
+
+Signature:
+
+```typescript
+equals(that: UserTrove): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| that | [UserTrove](./lib-base.usertrove.md) | |
+
+Returns:
+
+boolean
+
diff --git a/docs/sdk/lib-base.usertrove.md b/docs/sdk/lib-base.usertrove.md
new file mode 100644
index 00000000..ad82c444
--- /dev/null
+++ b/docs/sdk/lib-base.usertrove.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [UserTrove](./lib-base.usertrove.md)
+
+## UserTrove class
+
+A Trove that is associated with a single owner.
+
+Signature:
+
+```typescript
+export declare class UserTrove extends Trove
+```
+Extends: [Trove](./lib-base.trove.md)
+
+## Remarks
+
+The SDK uses the base [Trove](./lib-base.trove.md) class as a generic container of collateral and debt, for example to represent the [total collateral and debt](./lib-base.readableliquity.gettotal.md) locked up in the protocol.
+
+The `UserTrove` class extends `Trove` with extra information that's only available for Troves that are associated with a single owner (such as the owner's address, or the Trove's status).
+
+The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `UserTrove` class.
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [ownerAddress](./lib-base.usertrove.owneraddress.md) | | string | Address that owns this Trove. |
+| [status](./lib-base.usertrove.status.md) | | [UserTroveStatus](./lib-base.usertrovestatus.md) | Provides more information when the UserTrove is empty. |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [equals(that)](./lib-base.usertrove.equals.md) | | |
+
diff --git a/docs/sdk/lib-base.usertrove.owneraddress.md b/docs/sdk/lib-base.usertrove.owneraddress.md
new file mode 100644
index 00000000..289961c6
--- /dev/null
+++ b/docs/sdk/lib-base.usertrove.owneraddress.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [UserTrove](./lib-base.usertrove.md) > [ownerAddress](./lib-base.usertrove.owneraddress.md)
+
+## UserTrove.ownerAddress property
+
+Address that owns this Trove.
+
+Signature:
+
+```typescript
+readonly ownerAddress: string;
+```
diff --git a/docs/sdk/lib-base.usertrove.status.md b/docs/sdk/lib-base.usertrove.status.md
new file mode 100644
index 00000000..51227543
--- /dev/null
+++ b/docs/sdk/lib-base.usertrove.status.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [UserTrove](./lib-base.usertrove.md) > [status](./lib-base.usertrove.status.md)
+
+## UserTrove.status property
+
+Provides more information when the UserTrove is empty.
+
+Signature:
+
+```typescript
+readonly status: UserTroveStatus;
+```
diff --git a/docs/sdk/lib-base.usertrovestatus.md b/docs/sdk/lib-base.usertrovestatus.md
new file mode 100644
index 00000000..9aa91739
--- /dev/null
+++ b/docs/sdk/lib-base.usertrovestatus.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-base](./lib-base.md) > [UserTroveStatus](./lib-base.usertrovestatus.md)
+
+## UserTroveStatus type
+
+Represents whether a UserTrove is open or not, or why it was closed.
+
+Signature:
+
+```typescript
+export declare type UserTroveStatus = "nonExistent" | "open" | "closedByOwner" | "closedByLiquidation" | "closedByRedemption";
+```
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystore._constructor_.md b/docs/sdk/lib-ethers.blockpolledliquitystore._constructor_.md
new file mode 100644
index 00000000..1097a804
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystore._constructor_.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStore](./lib-ethers.blockpolledliquitystore.md) > [(constructor)](./lib-ethers.blockpolledliquitystore._constructor_.md)
+
+## BlockPolledLiquityStore.(constructor)
+
+Constructs a new instance of the `BlockPolledLiquityStore` class
+
+Signature:
+
+```typescript
+constructor(readable: ReadableEthersLiquity);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| readable | [ReadableEthersLiquity](./lib-ethers.readableethersliquity.md) | |
+
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystore.connection.md b/docs/sdk/lib-ethers.blockpolledliquitystore.connection.md
new file mode 100644
index 00000000..572b6c1c
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystore.connection.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStore](./lib-ethers.blockpolledliquitystore.md) > [connection](./lib-ethers.blockpolledliquitystore.connection.md)
+
+## BlockPolledLiquityStore.connection property
+
+Signature:
+
+```typescript
+readonly connection: EthersLiquityConnection;
+```
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystore.md b/docs/sdk/lib-ethers.blockpolledliquitystore.md
new file mode 100644
index 00000000..1b7d47de
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystore.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStore](./lib-ethers.blockpolledliquitystore.md)
+
+## BlockPolledLiquityStore class
+
+Ethers-based [LiquityStore](./lib-base.liquitystore.md) that updates state whenever there's a new block.
+
+Signature:
+
+```typescript
+export declare class BlockPolledLiquityStore extends LiquityStore
+```
+Extends: [LiquityStore](./lib-base.liquitystore.md)<[BlockPolledLiquityStoreExtraState](./lib-ethers.blockpolledliquitystoreextrastate.md)>
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(readable)](./lib-ethers.blockpolledliquitystore._constructor_.md) | | Constructs a new instance of the BlockPolledLiquityStore class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [connection](./lib-ethers.blockpolledliquitystore.connection.md) | | [EthersLiquityConnection](./lib-ethers.ethersliquityconnection.md) | |
+
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktag.md b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktag.md
new file mode 100644
index 00000000..61945657
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktag.md
@@ -0,0 +1,18 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStoreExtraState](./lib-ethers.blockpolledliquitystoreextrastate.md) > [blockTag](./lib-ethers.blockpolledliquitystoreextrastate.blocktag.md)
+
+## BlockPolledLiquityStoreExtraState.blockTag property
+
+Number of block that the store state was fetched from.
+
+Signature:
+
+```typescript
+blockTag?: number;
+```
+
+## Remarks
+
+May be undefined when the store state is fetched for the first time.
+
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktimestamp.md b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktimestamp.md
new file mode 100644
index 00000000..ef008d2c
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.blocktimestamp.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStoreExtraState](./lib-ethers.blockpolledliquitystoreextrastate.md) > [blockTimestamp](./lib-ethers.blockpolledliquitystoreextrastate.blocktimestamp.md)
+
+## BlockPolledLiquityStoreExtraState.blockTimestamp property
+
+Timestamp of latest block (number of seconds since epoch).
+
+Signature:
+
+```typescript
+blockTimestamp: number;
+```
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.md b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.md
new file mode 100644
index 00000000..b96a04c2
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystoreextrastate.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStoreExtraState](./lib-ethers.blockpolledliquitystoreextrastate.md)
+
+## BlockPolledLiquityStoreExtraState interface
+
+Extra state added to [LiquityStoreState](./lib-base.liquitystorestate.md) by [BlockPolledLiquityStore](./lib-ethers.blockpolledliquitystore.md).
+
+Signature:
+
+```typescript
+export interface BlockPolledLiquityStoreExtraState
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [blockTag?](./lib-ethers.blockpolledliquitystoreextrastate.blocktag.md) | number | (Optional) Number of block that the store state was fetched from. |
+| [blockTimestamp](./lib-ethers.blockpolledliquitystoreextrastate.blocktimestamp.md) | number | Timestamp of latest block (number of seconds since epoch). |
+
diff --git a/docs/sdk/lib-ethers.blockpolledliquitystorestate.md b/docs/sdk/lib-ethers.blockpolledliquitystorestate.md
new file mode 100644
index 00000000..9514b10a
--- /dev/null
+++ b/docs/sdk/lib-ethers.blockpolledliquitystorestate.md
@@ -0,0 +1,15 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BlockPolledLiquityStoreState](./lib-ethers.blockpolledliquitystorestate.md)
+
+## BlockPolledLiquityStoreState type
+
+The type of [BlockPolledLiquityStore](./lib-ethers.blockpolledliquitystore.md)'s [state](./lib-base.liquitystore.state.md).
+
+Signature:
+
+```typescript
+export declare type BlockPolledLiquityStoreState = LiquityStoreState;
+```
+References: [LiquityStoreState](./lib-base.liquitystorestate.md), [BlockPolledLiquityStoreExtraState](./lib-ethers.blockpolledliquitystoreextrastate.md)
+
diff --git a/docs/sdk/lib-ethers.borrowingoperationoptionalparams.borrowingfeedecaytoleranceminutes.md b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.borrowingfeedecaytoleranceminutes.md
new file mode 100644
index 00000000..26ddb73d
--- /dev/null
+++ b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.borrowingfeedecaytoleranceminutes.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BorrowingOperationOptionalParams](./lib-ethers.borrowingoperationoptionalparams.md) > [borrowingFeeDecayToleranceMinutes](./lib-ethers.borrowingoperationoptionalparams.borrowingfeedecaytoleranceminutes.md)
+
+## BorrowingOperationOptionalParams.borrowingFeeDecayToleranceMinutes property
+
+Control the amount of extra gas included attached to the transaction.
+
+Signature:
+
+```typescript
+borrowingFeeDecayToleranceMinutes?: number;
+```
+
+## Remarks
+
+Transactions that borrow LUSD must pay a variable borrowing fee, which is added to the Trove's debt. This fee increases whenever a redemption occurs, and otherwise decays exponentially. Due to this decay, a Trove's collateral ratio can end up being higher than initially calculated if the transaction is pending for a long time. When this happens, the backend has to iterate over the sorted list of Troves to find a new position for the Trove, which costs extra gas.
+
+The SDK can estimate how much the gas costs of the transaction may increase due to this decay, and can include additional gas to ensure that it will still succeed, even if it ends up pending for a relatively long time. This parameter specifies the length of time that should be covered by the extra gas.
+
+Default: 10 minutes.
+
diff --git a/docs/sdk/lib-ethers.borrowingoperationoptionalparams.maxborrowingrate.md b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.maxborrowingrate.md
new file mode 100644
index 00000000..911318eb
--- /dev/null
+++ b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.maxborrowingrate.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BorrowingOperationOptionalParams](./lib-ethers.borrowingoperationoptionalparams.md) > [maxBorrowingRate](./lib-ethers.borrowingoperationoptionalparams.maxborrowingrate.md)
+
+## BorrowingOperationOptionalParams.maxBorrowingRate property
+
+Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md) (default: current borrowing rate plus 0.5%).
+
+Signature:
+
+```typescript
+maxBorrowingRate?: Decimalish;
+```
diff --git a/docs/sdk/lib-ethers.borrowingoperationoptionalparams.md b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.md
new file mode 100644
index 00000000..16d4ae44
--- /dev/null
+++ b/docs/sdk/lib-ethers.borrowingoperationoptionalparams.md
@@ -0,0 +1,21 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [BorrowingOperationOptionalParams](./lib-ethers.borrowingoperationoptionalparams.md)
+
+## BorrowingOperationOptionalParams interface
+
+Optional parameters of a transaction that borrows LUSD.
+
+Signature:
+
+```typescript
+export interface BorrowingOperationOptionalParams
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [borrowingFeeDecayToleranceMinutes?](./lib-ethers.borrowingoperationoptionalparams.borrowingfeedecaytoleranceminutes.md) | number | (Optional) Control the amount of extra gas included attached to the transaction. |
+| [maxBorrowingRate?](./lib-ethers.borrowingoperationoptionalparams.maxborrowingrate.md) | [Decimalish](./lib-base.decimalish.md) | (Optional) Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md) (default: current borrowing rate plus 0.5%). |
+
diff --git a/docs/sdk/lib-ethers.etherscalloverrides.blocktag.md b/docs/sdk/lib-ethers.etherscalloverrides.blocktag.md
new file mode 100644
index 00000000..c24dae21
--- /dev/null
+++ b/docs/sdk/lib-ethers.etherscalloverrides.blocktag.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersCallOverrides](./lib-ethers.etherscalloverrides.md) > [blockTag](./lib-ethers.etherscalloverrides.blocktag.md)
+
+## EthersCallOverrides.blockTag property
+
+Signature:
+
+```typescript
+blockTag?: BlockTag;
+```
diff --git a/docs/sdk/lib-ethers.etherscalloverrides.md b/docs/sdk/lib-ethers.etherscalloverrides.md
new file mode 100644
index 00000000..9046a2ca
--- /dev/null
+++ b/docs/sdk/lib-ethers.etherscalloverrides.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersCallOverrides](./lib-ethers.etherscalloverrides.md)
+
+## EthersCallOverrides interface
+
+Optional parameters taken by [ReadableEthersLiquity](./lib-ethers.readableethersliquity.md) functions.
+
+Signature:
+
+```typescript
+export interface EthersCallOverrides
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [blockTag?](./lib-ethers.etherscalloverrides.blocktag.md) | BlockTag | (Optional) |
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.adjusttrove.md b/docs/sdk/lib-ethers.ethersliquity.adjusttrove.md
new file mode 100644
index 00000000..c3eae04b
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.adjusttrove.md
@@ -0,0 +1,36 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [adjustTrove](./lib-ethers.ethersliquity.adjusttrove.md)
+
+## EthersLiquity.adjustTrove() method
+
+Adjust existing Trove by changing its collateral, debt, or both.
+
+Signature:
+
+```typescript
+adjustTrove(params: TroveAdjustmentParams, maxBorrowingRateOrOptionalParams?: Decimalish | BorrowingOperationOptionalParams, overrides?: EthersTransactionOverrides): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| params | [TroveAdjustmentParams](./lib-base.troveadjustmentparams.md)<[Decimalish](./lib-base.decimalish.md)> | Parameters of the adjustment. |
+| maxBorrowingRateOrOptionalParams | [Decimalish](./lib-base.decimalish.md) \| [BorrowingOperationOptionalParams](./lib-ethers.borrowingoperationoptionalparams.md) | |
+| overrides | [EthersTransactionOverrides](./lib-ethers.etherstransactionoverrides.md) | |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [EthersTransactionFailedError](./lib-ethers.etherstransactionfailederror.md) in case of transaction failure. Throws [EthersTransactionCancelledError](./lib-ethers.etherstransactioncancellederror.md) if the transaction is cancelled or replaced.
+
+## Remarks
+
+The transaction will fail if the Trove's debt would fall below [LUSD\_MINIMUM\_DEBT](./lib-base.lusd_minimum_debt.md).
+
+If `maxBorrowingRate` is omitted, the current borrowing rate plus 0.5% is used as maximum acceptable rate.
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.approveunitokens.md b/docs/sdk/lib-ethers.ethersliquity.approveunitokens.md
new file mode 100644
index 00000000..83e20e22
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.approveunitokens.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [approveUniTokens](./lib-ethers.ethersliquity.approveunitokens.md)
+
+## EthersLiquity.approveUniTokens() method
+
+Allow the liquidity mining contract to use Uniswap ETH/LUSD LP tokens for [staking](./lib-base.transactableliquity.stakeunitokens.md).
+
+Signature:
+
+```typescript
+approveUniTokens(allowance?: Decimalish, overrides?: EthersTransactionOverrides): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| allowance | [Decimalish](./lib-base.decimalish.md) | Maximum amount of LP tokens that will be transferrable to liquidity mining (2^256 - 1 by default). |
+| overrides | [EthersTransactionOverrides](./lib-ethers.etherstransactionoverrides.md) | |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [EthersTransactionFailedError](./lib-ethers.etherstransactionfailederror.md) in case of transaction failure. Throws [EthersTransactionCancelledError](./lib-ethers.etherstransactioncancellederror.md) if the transaction is cancelled or replaced.
+
+## Remarks
+
+Must be performed before calling [stakeUniTokens()](./lib-base.transactableliquity.stakeunitokens.md).
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.borrowlusd.md b/docs/sdk/lib-ethers.ethersliquity.borrowlusd.md
new file mode 100644
index 00000000..13adf428
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.borrowlusd.md
@@ -0,0 +1,39 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [borrowLUSD](./lib-ethers.ethersliquity.borrowlusd.md)
+
+## EthersLiquity.borrowLUSD() method
+
+Adjust existing Trove by borrowing more LUSD.
+
+Signature:
+
+```typescript
+borrowLUSD(amount: Decimalish, maxBorrowingRate?: Decimalish, overrides?: EthersTransactionOverrides): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| amount | [Decimalish](./lib-base.decimalish.md) | The amount of LUSD to borrow. |
+| maxBorrowingRate | [Decimalish](./lib-base.decimalish.md) | Maximum acceptable [borrowing rate](./lib-base.fees.borrowingrate.md). |
+| overrides | [EthersTransactionOverrides](./lib-ethers.etherstransactionoverrides.md) | |
+
+Returns:
+
+Promise<[TroveAdjustmentDetails](./lib-base.troveadjustmentdetails.md)>
+
+## Exceptions
+
+Throws [EthersTransactionFailedError](./lib-ethers.etherstransactionfailederror.md) in case of transaction failure. Throws [EthersTransactionCancelledError](./lib-ethers.etherstransactioncancellederror.md) if the transaction is cancelled or replaced.
+
+## Remarks
+
+Equivalent to:
+
+```typescript
+adjustTrove({ borrowLUSD: amount }, maxBorrowingRate)
+
+```
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.claimcollateralsurplus.md b/docs/sdk/lib-ethers.ethersliquity.claimcollateralsurplus.md
new file mode 100644
index 00000000..dc0a18f1
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.claimcollateralsurplus.md
@@ -0,0 +1,32 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [claimCollateralSurplus](./lib-ethers.ethersliquity.claimcollateralsurplus.md)
+
+## EthersLiquity.claimCollateralSurplus() method
+
+Claim leftover collateral after a liquidation or redemption.
+
+Signature:
+
+```typescript
+claimCollateralSurplus(overrides?: EthersTransactionOverrides): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| overrides | [EthersTransactionOverrides](./lib-ethers.etherstransactionoverrides.md) | |
+
+Returns:
+
+Promise<void>
+
+## Exceptions
+
+Throws [EthersTransactionFailedError](./lib-ethers.etherstransactionfailederror.md) in case of transaction failure. Throws [EthersTransactionCancelledError](./lib-ethers.etherstransactioncancellederror.md) if the transaction is cancelled or replaced.
+
+## Remarks
+
+Use [getCollateralSurplusBalance()](./lib-base.readableliquity.getcollateralsurplusbalance.md) to check the amount of collateral available for withdrawal.
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.closetrove.md b/docs/sdk/lib-ethers.ethersliquity.closetrove.md
new file mode 100644
index 00000000..7d22ddaa
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.closetrove.md
@@ -0,0 +1,28 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [closeTrove](./lib-ethers.ethersliquity.closetrove.md)
+
+## EthersLiquity.closeTrove() method
+
+Close existing Trove by repaying all debt and withdrawing all collateral.
+
+Signature:
+
+```typescript
+closeTrove(overrides?: EthersTransactionOverrides): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| overrides | [EthersTransactionOverrides](./lib-ethers.etherstransactionoverrides.md) | |
+
+Returns:
+
+Promise<[TroveClosureDetails](./lib-base.troveclosuredetails.md)>
+
+## Exceptions
+
+Throws [EthersTransactionFailedError](./lib-ethers.etherstransactionfailederror.md) in case of transaction failure. Throws [EthersTransactionCancelledError](./lib-ethers.etherstransactioncancellederror.md) if the transaction is cancelled or replaced.
+
diff --git a/docs/sdk/lib-ethers.ethersliquity.connect_1.md b/docs/sdk/lib-ethers.ethersliquity.connect_1.md
new file mode 100644
index 00000000..d94ab908
--- /dev/null
+++ b/docs/sdk/lib-ethers.ethersliquity.connect_1.md
@@ -0,0 +1,25 @@
+
+
+[Home](./index.md) > [@liquity/lib-ethers](./lib-ethers.md) > [EthersLiquity](./lib-ethers.ethersliquity.md) > [connect](./lib-ethers.ethersliquity.connect_1.md)
+
+## EthersLiquity.connect() method
+
+Connect to the Liquity protocol and create an `EthersLiquity` object.
+
+Signature:
+
+```typescript
+static connect(signerOrProvider: EthersSigner | EthersProvider, optionalParams?: EthersLiquityConnectionOptionalParams): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| signerOrProvider | [EthersSigner](./lib-ethers.etherssigner.md) \| [EthersProvider](./lib-ethers.ethersprovider.md) | Ethers