SepehrSepehrFrançais

Testnet · Arbitrum Sepolia

Testing Sepehr on Arbitrum Sepolia

Open the app

This guide walks you through Sepehr end to end on the Arbitrum Sepolia testnet. You will subscribe, open a borrow position on Aave V3, protect it, then push it below your threshold on purpose and watch the keeper rescue it.

Everything happens on a test network. The tokens have no value, nothing is real, you cannot lose anything. Never put a mainnet key or mainnet funds on this wallet.

Allow about 30 minutes, plus a day's wait if you want a second trip to the USDC faucet (see §2).

1. What you need

2. How much USDC?

One trip to the faucet (10 USDC) covers the subscription and leaves 5.50 USDC for the Aave position. That is enough to test everything. If you would rather have a roomier position, come back to the faucet the next day before step 5.

3. Open the app

  1. Open the test app: app.sepehr.app. Announcements go out on the Telegram channel t.me/SepehrProtocol and on X @SepehrFi.
  2. Connect your wallet and accept the switch to Arbitrum Sepolia.

4. Subscribe to Shield

  1. Go to the Plan page (/app/plan).
  2. Leave billing on monthly.
  3. On the Shield card, click Upgrade to Shield.
  4. Your wallet asks for two confirmations:
    1. the approval to spend the plan's price;
    2. the subscription itself (subscribe).

Once both transactions confirm, the dashboard shows Plan: Shield.

Invited to the closed beta? Your address may already hold the Titan plan, granted by the Sepehr team. The dashboard then shows Plan: Titan: skip this step.

5. Open a position on Aave V3

  1. Go to app.aave.com and connect the same wallet.
  2. Turn on testnet mode: settings menu, Testnet mode.
  3. In the market list, pick Arbitrum Sepolia.
  4. Supply your USDC. Check that it is Circle's USDC (0x75fa…AA4d, full address in §10).
  5. Borrow USDC worth about half your deposit, for example 2.75 USDC against 5.50 USDC supplied.

Your health factor (HF) is then about 1.6. On this market, USDC has an 80% liquidation threshold, so HF = 0.8 × deposit ÷ debt.

Supply and borrow the same asset, USDC. On this testnet, Sepehr only rescues positions whose debt and collateral are the same token. Rescuing a mixed position (say WETH supplied, USDC borrowed) goes through a Uniswap swap, and the Uniswap router deployed on Arbitrum Sepolia lacks the interface Sepehr calls. On Arbitrum One, these rescues work.

6. Protect the position

  1. Back on Sepehr, go to Settings (/app/settings), Protection card.

  2. On the Aave v3 (Arbitrum Sepolia) row, click Protect.

  3. Set the three parameters:

    Parameter What it does Limits
    HF threshold The keeper rescues the position below this health factor. 1.20 minimum
    Max slippage Largest price impact accepted during the swap. 3% maximum
    Repay share Share of the debt one rescue repays. 50% maximum, 25% by default

    For this test, set HF threshold to 1.30 and keep the other defaults.

  4. Confirm. The app runs two transactions in a row:

    1. Grant the delegation on Aave v3 (Arbitrum Sepolia): you allow Sepehr's Aave adapter to move your aUSDC. That is what lets it withdraw collateral during a rescue.
    2. Enable protection on Aave v3 (Arbitrum Sepolia): you record your parameters in the SepehrCore contract.

The row then shows as protected. The keeper picks it up within seconds.

7. Trigger a rescue

  1. Go back to Aave.
  2. Borrow more USDC until your HF drops below 1.30: a debt of about 65% of your deposit gives an HF close to 1.23. Aave shows the resulting HF before you confirm.
  3. The keeper checks positions every 15 seconds. Within a minute, it calls SepehrCore.execute, which:
    1. borrows USDC through a flash loan;
    2. repays the share of your debt set by Repay share;
    3. withdraws the same amount of collateral, plus fees, to pay back the flash loan.
  4. On Aave, your debt and your deposit went down, and your HF climbed back above your threshold.
  5. On Sepehr, the History page (/app/history) lists the rescue. Its transaction link leads to the Triggered event on Arbiscan.

After a rescue, the position waits 1 hour before it can be rescued again.

Careful: USDC has an 80% liquidation threshold. If you borrow the maximum in one go, your HF falls to about 1.04. The rescue still happens, but keep a margin so the test stays easy to follow.

8. Stop everything

In Settings, Protection card:

  1. Click Disable.
  2. Tick Also revoke the delegation to also withdraw the permission given to the adapter. This adds one transaction.

On Aave, repay your debt (Repay), then withdraw your deposit (Withdraw).

9. Report a problem

Use Feedback in the app's top bar, or write to hello@sepehr.app. Include:

Do not report a security flaw in public: write to security@sepehr.app.

10. Testnet addresses

All on Arbitrum Sepolia, viewable on sepolia.arbiscan.io.

Contract Address
SepehrCore 0x3a804C535E32aE6C15419cf7808D517915A4163c
Sepehr's Aave V3 adapter (the one that receives the delegation) 0x396471bf2466E7f37C4091f3f76Efce47c991c1b
USDC (Circle) 0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
aUSDC (aArbSepUSDC) 0x460b97BD498E1157530AEb3086301d5225b91216
Aave V3 Pool 0xBfC91D59fdAA134A4ED45f7B584cAf96D7792Eff
Keeper 0x33Db6eD6C6203967B090DeE9065eB8e1f7063C62

This testnet differs from the coming mainnet in a few ways: