> For the complete documentation index, see [llms.txt](https://doc.brink.money/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.brink.money/vault/technical-overview/usage-notes.md).

# Usage notes

#### Full Deposit Process (Ethers.js)

```javascript
import { ethers } from "ethers";
import brinkVaultAbi from "./BrinkVault.json";

const brinkVault = new ethers.Contract(brinkVaultAddress, brinkVaultAbi, signer);
const asset = new ethers.Contract(assetAddress, erc20Abi, signer);

const amount = ethers.parseUnits("100", 18);

// Step 1: Approve
await asset.approve(brinkVaultAddress, amount);

// Step 2: Deposit
const tx = await brinkVault.deposit(amount, await signer.getAddress());
await tx.wait();

// Step 3: Check balance
const shares = await brinkVault.balanceOf(await signer.getAddress());
console.log("Vault shares:", shares.toString());
```

#### Withdraw Tokens

```javascript
const withdrawTx = await brinkVault.withdraw(amount, await signer.getAddress(), await signer.getAddress());
await withdrawTx.wait();
```

#### View Vault State

```javascript
const data = await brinkVault.getBrinkVaultData();
console.log("Strategies:", data);
```

#### Summary

The BrinkVault contract provides a user-friendly ERC-4626 vault interface for depositing, earning, and withdrawing ERC20 tokens.\
As an investor:

* Approve → Deposit → Earn → Withdraw
* Monitor your balance and vault performance using read-only functions.\
  Administrative operations (e.g., rebalancing, whitelist management) are handled by vault managers and strategists.
