# SAL Contract

<figure><img src="/files/KyMmjzmtkHOVKMYjakli" alt=""><figcaption></figcaption></figure>

### Router Contract Functions

#### Code URL

&#x20;<https://github.com/solv-finance/SolvBTC/blob/main/contracts/SolvBTCRouter.sol>

### Deposit

```solidity
/**
 * Subscribe with payment currency (i.e. WBTC) and receive SolvBTC.
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param currencyAmount: Amount of currency to be deposited.
 * @return shareValue: Amount of SolvBTC to be received after subscription.
 */
function createSubscription(bytes32 poolId, uint256 currencyAmount) external returns (uint256 shareValue);
```

### Withdraw Request

```solidity
/**
 * Redeem with SolvBTC and receive currency (i.e. WBTC).
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param redeemAmount: Amount of SolvBTC to be withdrawn.
 * @return redemptionId: TokenId of the redemption SFT to be received after redemption.
 */
function createRedemption(bytes32 poolId, uint256 redeemAmount) external returns (uint256 redemptionId);
```

### Revoke Withdraw Request

```solidity
/**
 * Revoke redemption with target the tokenId of redemption SFT and receive SolvBTC 
 * with an equivalent amount of the value of the redemption SFT token.
 * @param poolId: The pool ID corresponding to SolvBTC or SolvBTC LST.
 * @param redemptionId: TokenId of the redemption SFT to be revoked.
 */
function cancelRedemption(bytes32 poolId, uint256 redemptionId) external;
```

## Withdraw Functions

#### Code URL

<https://github.com/solv-finance/solv-contracts-v3/blob/main/sft/abilities/contracts/multi-repayable/MultiRepayableDelegate.sol>

### WithDraw(Claim)

```solidity
function claimTo(address to_, uint256 tokenId_, address currency_, uint256 claimValue_) external
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.solv.finance/developer-guide/smart-contracts/contract-architecture-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
