> For the complete documentation index, see [llms.txt](https://docs.overnight.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overnight.fi/core-concept/withdraw.md).

# Withdraw Your Funds

Overnight app is discontinued. Withdraw USD+ and USDT+ directly from the contracts, step by step

## Support Discontinued — How to Withdraw Your Funds

{% hint style="warning" %}
**Overnight has stopped supporting the app and the protocol.** The website app.overnight.fi no longer works. Yield is no longer paid.

**Your funds are safe.** Tokens are backed by USDC / USDT held in the smart contracts. You can withdraw at any time directly from the contracts. You do not need the Overnight app or the Overnight team to do it.
{% endhint %}

### Which token do you hold?

| Token                                 | Chain    | You receive | Fee   | Instructions      |
| ------------------------------------- | -------- | ----------- | ----- | ----------------- |
| **USD+**                              | Base     | USDC        | 0.01% | USD+ on Base      |
| **USD+** (named **xUSD** on Arbiscan) | Arbitrum | USDC        | 0.01% | USD+ on Arbitrum  |
| **USDT+**                             | Arbitrum | USDT        | 0.04% | USDT+ on Arbitrum |

### Before you start

* You need the wallet that holds your tokens (MetaMask, Rabby, etc.) and a little ETH on the same chain for gas.
* Everything is done on the block explorer: Basescan for Base, Arbiscan for Arbitrum. The links below open the right page and the right tab.
* On the explorer you will use two tabs: **Read as Proxy** (to see your balance) and **Write as Proxy** (to withdraw). Do not use the **Write Contract** tab, it shows different functions.
* Never share your seed phrase or private key. Nobody from Overnight will ever ask for them.

### USD+ on Base

{% stepper %}
{% step %}
**Get your balance**

Open [USD+ token → Read as Proxy](https://basescan.org/address/0xB79DD08EA68A908A97220C76d19A6aA9cBDE4376#readProxyContract).

Find **balanceOf**, click the arrow on the right to expand it. Paste your wallet address, click **Query**. Copy the number exactly as shown.
{% endstep %}

{% step %}
**Redeem**

Open [Exchange → Write as Proxy](https://basescan.org/address/0x7cb1B38591021309C64f451859d79312d8Ca2789#writeProxyContract).

Click **Connect Wallet** and connect your wallet.

Find **redeem**, click the arrow on the right to expand it. Fill in:

* `_asset`: `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` (USDC)
* `_amount`: the number from step 1

Optional: click **Simulate** to check that the transaction will succeed. Then click **Write** and confirm the transaction in your wallet.
{% endstep %}

{% step %}
**Done**

USDC arrives in the same wallet, minus the 0.01% fee.
{% endstep %}
{% endstepper %}

### USD+ on Arbitrum

{% hint style="info" %}
Your wallet shows this token as **USD+**. On Arbiscan the same contract `0xe80772Eaf6e2E18B651F160Bc9158b2A5caFCA65` is named **xUSD**. It is one and the same token, just two names.
{% endhint %}

{% stepper %}
{% step %}
**Get your balance**

Open [USD+ (xUSD) token → Read as Proxy](https://arbiscan.io/address/0xe80772Eaf6e2E18B651F160Bc9158b2A5caFCA65#readProxyContract).

Find **balanceOf**, click the arrow on the right to expand it. Paste your wallet address, click **Query**. Copy the number exactly as shown.
{% endstep %}

{% step %}
**Redeem**

Open [Exchange → Write as Proxy](https://arbiscan.io/address/0x73cb180bf0521828d8849bc8CF2B920918e23032#writeProxyContract).

Click **Connect Wallet** and connect your wallet.

Find **redeem**, click the arrow on the right to expand it. Fill in:

* `_asset`: `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` (USDC)
* `_amount`: the number from step 1

Optional: click **Simulate** to check that the transaction will succeed. Then click **Write** and confirm the transaction in your wallet.
{% endstep %}

{% step %}
**Done**

USDC arrives in the same wallet, minus the 0.01% fee.
{% endstep %}
{% endstepper %}

### USDT+ on Arbitrum

{% stepper %}
{% step %}
**Get your balance**

Open [USDT+ token → Read as Proxy](https://arbiscan.io/address/0xb1084db8D3C05CEbd5FA9335dF95EE4b8a0edc30#readProxyContract).

Find **balanceOf**, click the arrow on the right to expand it. Paste your wallet address, click **Query**. Copy the number exactly as shown.
{% endstep %}

{% step %}
**Redeem**

Open [Exchange → Write as Proxy](https://arbiscan.io/address/0x8b80Da76AAb8798Fd537A9A83f462CDA69eC1EE4#writeProxyContract).

Click **Connect Wallet** and connect your wallet.

Find **redeem**, click the arrow on the right to expand it. Fill in:

* `_asset`: `0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9` (USDT)
* `_amount`: the number from step 1

Optional: click **Simulate** to check that the transaction will succeed. Then click **Write** and confirm the transaction in your wallet.
{% endstep %}

{% step %}
**Done**

USDT arrives in the same wallet, minus the 0.04% fee.
{% endstep %}
{% endstepper %}

### If the transaction fails

| Error message                          | What it means                                       | What to do                                                               |
| -------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------ |
| `Only asset available for redeem`      | Wrong `_asset` address                              | Copy the `_asset` address from the instructions for your token and chain |
| `Not enough tokens to redeem`          | `_amount` is bigger than your balance               | Copy the number from **balanceOf** again                                 |
| `Only once in block`                   | Someone else redeemed in the same block             | Try again in a few seconds                                               |
| `Not enough for transfer redeemAmount` | Not enough free liquidity in the contract right now | Try a smaller amount, or try again later                                 |
