ACT.
Verify. Report.

Execute protocol actions against the live system, observe state changes across every surface, and submit structured findings. This is not a demo — it is a live system on Arbitrum Sepolia.

Follow the steps below to test the protocol in under 2 minutes.

ARBITRUM SEPOLIA · TESTNET ONLY · NO REAL FUNDS

What you are interacting with

NEXUS Finance is an overcollateralised credit protocol. Deposit WETH as collateral, mint NXUSD — a protocol-issued stablecoin — against it. The protocol enforces solvency through on-chain collateral ratio constraints and a keeper-operated liquidation engine.

Core Mechanics
CollateralWETH (wrapped test ETH) deposited into VaultManager
StablecoinNXUSD — minted against collateral, burned on repayment
Min CR150% — below this, new mints are rejected
Liquidation CR130% — below this, keepers can liquidate the vault
Keeper bonus5% of seized collateral — incentivises liquidation
Price sourceChainlink ETH/USD feed via OracleModule on Arbitrum Sepolia
Verification Surfaces
/statusLive protocol state — ETH price, CR, oracle status, pillar verdicts
/liquidationsSystem-wide vault table — identifies at-risk and liquidatable vaults
/api/vaultsPer-vault JSON — your vault's CR and status after each action
/receiptsHourly audit packages — SHA-256 hashed, immutable chain snapshots
ArbiscanIndependent verification without trusting this interface

Before you start

Requirements
NetworkArbitrum Sepolia — chain ID 421614. Add to MetaMask if not present. RPC: https://sepolia-rollup.arbitrum.io/rpc
Test ETHRequired for gas and to wrap into WETH collateral. Obtain from the Arbitrum Sepolia faucet.
WalletMetaMask or any EIP-1193 compatible wallet. Use a dedicated test wallet — not your mainnet wallet.
WETHTest ETH must be wrapped into WETH before depositing as collateral. The vault interface below handles this.
Safety — read before proceeding
Testnet onlyThis deployment is exclusively on Arbitrum Sepolia. There is no mainnet version. Test ETH and WETH here have no real-world value.
No real fundsDo not send mainnet ETH, real WETH, or any token with real value to these contracts. The contract addresses exist only on chain ID 421614.
Active developmentContracts may be upgraded or redeployed. Protocol parameters may change. This is a controlled testing environment, not a production system.
Dedicated walletUse a wallet address you control that is separate from any wallet holding real assets. Never expose a mainnet private key.
Contract Addresses — Arbitrum Sepolia
VaultManager0xF09AAD220C6c4d805cF6cE5561B546f51ADFBb03Arbiscan →Collateral + debt state. Target for deposit, withdraw, mint, burn.
WETH (collateral token)0x980B62Da83eFf3D4576C647993b0c1D7faf17c73Arbiscan →ERC-20 wrapper for test ETH. Approve this for the VaultManager.
NXUSD (protocol stablecoin)0x515844Dd91956C749e33521B4f171dac4e04FE07Arbiscan →Minted against collateral. Approve this for burn/repay operations.

Interact with the live protocol

Connect your wallet to deposit collateral, mint NXUSD, repay debt, and withdraw — all against the live contract on Arbitrum Sepolia.

Testnet interface · Arbitrum Sepolia only · No real value · For testing system behavior
Before you start
  1. 1 Connect wallet — Arbitrum Sepolia, chain ID 421614
  2. 2 Convert ETH → WETH — the vault panel will guide you automatically
  3. 3 Deposit WETH as collateral — opens your vault position
  4. 4 Mint NXUSD — against your collateral at ≥150% CR
Initializing wallet connection…

Structured protocol flows

Execute these flows in order. Each flow builds on the previous vault state. Flow 1 is required — Flows 2 and 3 depend on an open position from Flow 1. Flow 4 is optional and read-oriented.

Use the vault interface above to execute all on-chain transactions from your browser wallet. Contract addresses and ABIs are also available in Contracts → for direct interaction via Arbiscan or a local tool.

Earn points — complete this sequence
1.Wrap ETH2.Approve WETH3.Deposit collateral4.Mint NXUSD5.Generate receipt6.Submit task

Steps 1–4 use the vault interface above (Flow 1). Steps 5–6: go to /contribute, enter your wallet address, claim your receipt, then submit the task.

FLOW 1REQUIRED
Deposit & Mint

Open a vault position by depositing WETH collateral and minting NXUSD against it.

STEPS
01
Get test ETH from the Arbitrum Sepolia faucet
You need test ETH to pay gas and to wrap into WETH. The official faucet is at faucet.triangleplatform.com/arbitrum-sepolia — confirm it is set to chain ID 421614 before requesting. Availability varies; alternative faucets can be found by searching "Arbitrum Sepolia faucet".
02
Wrap test ETH into WETH
Call deposit() on the WETH contract with the ETH amount you want to deposit as collateral. The vault interface above handles this. Alternatively, call WETH.deposit() directly via Arbiscan.
03
Approve WETH spend
Call WETH.approve(VaultManager, amount) before depositing. The vault interface prompts this automatically when your allowance is insufficient.
04
Deposit collateral
Call VaultManager.deposit(amount) with the WETH amount in wei (1 ETH = 1e18). Your collateral position is now recorded on-chain under your wallet address.
05
Mint NXUSD
Call VaultManager.mint(amount). The contract enforces a minimum collateral ratio of 150%. If the mint would push your CR below 150%, the transaction reverts. Recommended: mint at most 60% of collateral value to maintain safe headroom.
EXPECTED OUTCOMES
Your vault appears in /api/vaults with status "safe" and CR > 150%.
/api/status total_collateral_eth and total_debt_nxusd both increase.
NXUSD balance in your wallet equals the minted amount.
Next audit receipt (generated hourly) records your vault in the chain state snapshot.
FLOW 2STANDARD
Repay Debt

Reduce your debt position by repaying part or all of your outstanding NXUSD.

STEPS
01
Approve NXUSD spend
Call NXUSD.approve(VaultManager, amount). The VaultManager needs permission to burn the NXUSD from your wallet during repayment.
02
Repay (partial or full)
Call VaultManager.burn(amount) where amount is in wei. For full repayment, pass your exact debtOf() balance. Partial repayment is valid — your CR increases proportionally.
EXPECTED OUTCOMES
Your vault CR increases — confirm via /api/vaults.
NXUSD balance in your wallet decreases by the repaid amount.
If fully repaid, debtOf() returns 0 for your address.
System-wide total_debt_nxusd in /api/status decreases.
FLOW 3STANDARD
Withdraw Collateral

Withdraw WETH collateral from your vault, subject to maintaining the minimum collateral ratio.

STEPS
01
Verify post-withdrawal CR
Before withdrawing, calculate your resulting CR: (remaining_collateral × ETH_price) / debt_nxusd. This must remain above 150% (minCollateralRatioBps = 15000). If you have repaid all debt, you can withdraw the full collateral.
02
Withdraw
Call VaultManager.withdraw(amount). If the withdrawal would breach the 150% minimum, the transaction reverts with a CR error. There is no partial-failure — the contract is atomic.
EXPECTED OUTCOMES
collateralOf() for your address decreases by the withdrawn amount.
Your WETH balance increases.
If fully withdrawn with zero debt, your vault disappears from /api/vaults on the next fetch.
System-wide total_collateral_eth in /api/status decreases.
FLOW 4ADVANCED
Observe Liquidation Threshold

Observe how the protocol classifies and surfaces undercollateralised positions. Note: liquidation execution requires KEEPER_ROLE and is not available to external testers.

STEPS
01
Open a position close to the minimum collateral ratio
Deposit WETH and mint NXUSD at a CR just above 150% (minCollateralRatioBps = 15000). Minting below 150% will revert — the contract enforces the minimum at the time of mint. The at-risk zone (130%–150%) is entered when the ETH price falls after your position is open, not by minting at a sub-150% CR. On testnet, ETH price movement is real and unpredictable; opening close to 150% maximises the chance of observing a threshold transition without waiting for a large price move.
02
Observe "active" status in the vault monitor
Visit /liquidations. Your vault should appear with status "active" — meaning CR is below the 150% minimum but above the 130% liquidation threshold. This is the at-risk zone.
03
Understand the liquidation boundary
If ETH price drops such that your CR falls below 130%, your vault becomes "liquidatable" in the API. isLiquidatable() on the VaultManager will also return true (when oracle is live). Note: executing a liquidation requires KEEPER_ROLE — external testers cannot call the LiquidationEngine directly. This step is observation only. If your vault reaches this state, repay debt or add collateral to restore your CR.
EXPECTED OUTCOMES
/liquidations correctly classifies your vault as "active" when 130% < CR < 150%.
If CR falls below 130%, status changes to "liquidatable".
oracle_stale in /api/status affects how the liquidation monitor classifies vaults.
isLiquidatable() on-chain reverts when oracle is stale — the API classifies server-side instead.

Confirm every state change

Every on-chain action produces a verifiable state change. Use the surfaces below to confirm your transactions took effect and to observe how protocol state responds to each operation.

Verification surfaces
/statusSystem-wide aggregate state. Confirms that your vault's deposit/mint registered in total_collateral_eth and total_debt_nxusd.
/api/vaultsMachine-readable per-vault data. After any action, poll this endpoint to confirm collateral_eth, debt_nxusd, collateral_ratio_pct, and status for your wallet address.
/liquidationsVault classification monitor. Use this to observe how the protocol classifies your vault — safe, active, or liquidatable — relative to the current ETH price and CR thresholds.
/receiptsAudit trail. The NEXUS-120 Engine generates a receipt package every hour. The next package after your actions will record your vault position in its chain state snapshot.
ArbiscanIndependent verification. Call VaultManager.collateralOf(your_address) and debtOf(your_address) directly on Arbiscan to confirm state without going through the API.

Submit your findings

After completing your test flows, submit a structured report. Include your wallet address so we can cross-reference your vault state with on-chain data. Reports are reviewed directly — this is not automated feedback collection.

What to include
Wallet addressRequired. Used to verify your vault state on-chain.
Flows completedWhich of the four flows you executed (F1–F4).
Issue typeBug · UX confusion · Docs issue · Protocol inconsistency · No issue.
Expected vs actualWhat the guide said should happen versus what you observed. Include error messages verbatim.
SeverityYour assessment: P1 (critical) → P4 (low) → Info.
Tx hashesOptional but helpful for failures. One per line.
How to report
Emailnexus120.official@gmail.com →
Primary channel. Include your wallet address, flows completed, transaction hashes for any failures, and a description of unexpected behaviour.
X / Twitter@NexusFinance120 →
DMs open for quick questions or to confirm receipt of your report.
Before you submit
Flow 1 — Deposit & Mint executed
Flow 2 — Repay Debt executed
Flow 3 — Withdraw Collateral executed
Flow 4 — Liquidation Threshold observed (optional)
Vault state confirmed in /api/vaults
System state confirmed in /status
Any unexpected outcomes noted with tx hash if available
Wallet address recorded
Ready to start

Connect your wallet above to begin. All four test flows can be executed without leaving this page.

Execute Actions ↑Protocol Status →Liquidation Monitor →