---
# System prepended metadata

title: Multiparty Ragequit and related functionalities

---

# Multiparty Ragequit and related functionalities

## Getting the last know report for a KNOT
This function can be used to fetch the last known balance report for a KNOT.
```
await getLastKnownReportForKNOT(signer, blsPublicKey);
```
Input parameters:
```
signer: signer instance of the execution layer Address of the user.
blsPublicKey: The BLS Public Key of the KNOT.
```
Returns:
```
Balance Report of the KNOT
```

## Signing the RageQuit request
Before going through with the multiparty ragequit, the signatures need to be collected from each of the authority taking part in the multiparty ragequit. These authorities are:
* The router. The first signature must always be the router signing and approving the beacon chain report.
* Free floating sETH owner (they must own 12 sETH effective balance. Active balance can be more based on exchange rate)
* savETH index owner of savETH and dETH for a KNOT (must own at least 24 dETH for KNOT rage quitting)
* A signature from each of the collateralised SLOT owners of the KNOT (a KNOT will only have 1 collateralised owner unless it has been slashed and other users have purchased SLOT)

```
await signRageQuitRequest(signer, stakeHouseAddress, blsPubKey, recipient, deadline, signatureHolder, contractAddress, contractName);
```
Input parameters:
```
signer: signer instance of the execution layer Address of the user.
stakehouseAddress: Stakehouse Address that the KNOT belongs to
blsPubKey: BLS Public Key of the KNOT
recipient: ETH recipient is the address that will receive ETH from the rage quit knot 
deadline: deadline for the request
signatureHolder: The type of the signature holder which can be "ROUTER", "FREE_FLOATING_SLOT_OWNER", "SAVETH_INDEX_OWNER" or "COLLATERALISDED_SLOT_OWNER"
contractAddress: Address of the Smart Contract
contractName: Name of the Smart Contract
```
Returns:
```
Signature Metadata containing v, r and s.
```

## Multiparty Ragequit
This is the main function which is required for a multiparty ragequit.
```
await multipartyRageQuit(signer, stakehouseAddress, ethRecipient, freeFloatingSlotOwner, authenticatedReport, reportAndTokenHolderSignatures, ethValue);
```
Input parameters:
```
signer: signer instance of the execution layer Address of the user.
stakehouseAddress: Stakehouse Address that the KNOT belongs to.
ethRecipient: ETH recipient is the address that will receive ETH from the rage quit knot.
freeFloatingSlotOwner: Address of the Free Floating SLOT Owner.
authenticatedReport: Authenticated Balance report of the KNOT.
reportAndTokenHolderSignatures: Array of signatures of all the authorities in the correct order of "ROUTER", "FREE_FLOATING_SLOT_OWNER", "SAVETH_INDEX_OWNER" and "COLLATERALISDED_SLOT_OWNER".
ethValue: ETH to be sent along with the transaction due to the function being payable.
```
Returns:
```
Transaction data
```