Arcc Systems protocol
Arcc Systems is an Arc-first USDC credit market. It deliberately uses a single debt asset, USDC, with a small set of governed collateral assets. It currently runs on Arc Testnet (chain 5042002) with USDC as the supply and borrow asset and tWETH as collateral.
Parameters on this page are read live from the chain when it loads.
Market model
Suppliers deposit USDC and receive internal supply shares. Their balance grows as borrowers pay interest. Borrowers deposit approved collateral and borrow USDC up to their borrow power. Debt is tracked in debt shares, so interest accrues continuously and is added to every borrower's debt without a transaction.
Interest is only paid on the part of the pool that is borrowed. A share of it, the reserve factor, goes to protocol reserves; the rest goes to suppliers.
Interest rates
Rates depend only on utilization, the share of supplied USDC that is currently borrowed. Below the kink the borrow rate rises gently. Above it the rate rises steeply to push borrowers to repay and attract new supply, so suppliers can withdraw.
utilization U = total borrows / total supplied borrow APR = base + slope1 × U / kink (U ≤ kink) borrow APR = base + slope1 + slope2 × (U − kink) / (1 − kink) (U > kink) supply APR = borrow APR × U × (1 − reserve factor)
| Base rate | 0% |
|---|---|
| Kink (optimal utilization) | 85% |
| Slope below kink | 5% |
| Slope above kink | 75% |
| Borrow APR at 100% utilization | 80% |
| Reserve factor | 10% |
Examples at the current parameters. Rates are variable and simple (annualized, not compounded).
| Utilization | Borrow APR | Supply APR |
|---|---|---|
| 50% | 2.94% | 1.32% |
| 80% | 4.71% | 3.39% |
| 85% | 5% | 3.83% |
| 90% | 30% | 24.3% |
| 95% | 55% | 47.03% |
| 100% | 80% | 72% |
Risk parameters
| tWETH loan-to-value (LTV) | 70% | Borrow power per dollar of tWETH |
|---|---|---|
| tWETH liquidation threshold | 78% | Below this the position can be liquidated |
| Liquidation bonus | 5% | Extra collateral a liquidator receives |
| Close factor | 50% | Max share of a debt repaid in one liquidation |
| tWETH collateral cap | 5,000 tWETH (706 tWETH deposited) | Pool-wide limit on deposited collateral |
| USDC borrow cap | 500,000 USDC | Pool-wide limit on total borrows |
| tWETH price | $2,000 | Oracle price used for borrow power and liquidation |
| Price freshness | 24 hours | Older prices are rejected; borrowing and collateral withdrawal revert until refreshed |
Borrow power and health factor
borrow power = Σ collateral USD value × LTV health factor = Σ collateral USD value × liquidation threshold / current debt
A new borrow or a collateral withdrawal must keep the debt within borrow power. A position with a health factor below 1 can be liquidated. For example, 1 tWETH at $2,000 gives 70% × $2,000 of borrow power. With 1,000 USDC of debt, its health factor is $2,000 × 78% / 1,000 = 1.56.
Liquidation
Liquidation is permissionless. When a borrower's health factor is below 1, anyone can repay part of that debt and receive the borrower's collateral at a discount:
- One call repays at most 50% of the borrower's debt.
- The liquidator receives collateral worth the repaid amount plus a 5% bonus, valued at the oracle price.
- If the collateral runs out first, the whole remaining collateral is seized and only the matching debt is repaid.
- Debt left on an account with no collateral can be written off with
resolveBadDebt. Protocol reserves absorb it first; any remainder reduces supplier balances.
Arcc Systems does not run a liquidation bot. A read-only monitor scans borrowers every minute and reports positions that are eligible.
Pauses
A normal risk pause blocks new supply, collateral deposits, collateral withdrawals and new borrows. Repayment, supplier withdrawals and liquidations keep working so users can always reduce risk. A liquidation emergency pause additionally stops liquidations and also forces the normal pause; reopening requires two separate admin actions.
Governance
| Admin | 0x0b53…C30D | Sets risk parameters, rate model and oracle; unpauses |
|---|---|---|
| Guardian | 0x0b53…C30D | Can pause immediately; cannot change parameters or move reserves |
| Treasury | 0x0b53…C30D | Receives withdrawn protocol reserves |
All three roles are currently held by the same deployment wallet, so the separation described above is not yet in effect.
The Timelock is deployed but does not yet own the Pool or Oracle. The mainnet authority path is Safe multisig → Timelock → Pool / Oracle, with a separate guardian that can only pause.
Website limits
During the testnet, the arcc.systems interface applies two limits per wallet:
- Collateral: at most 20 tWETH per wallet.
- Borrowing: at most 300 USDC of total debt per wallet, including accrued interest.
Both are enforced by the website, not by the contract. Positions already above a limit are kept and can always be repaid or reduced; only further deposits or borrows through the website are blocked.
Contract addresses
| Pool | 0xcca1C2099776AE22EaD43DF042714b7F9BCCaC06 | Lending market |
|---|---|---|
| USDC | 0x3600000000000000000000000000000000000000 | Debt and supply asset (6 decimals) |
| tWETH | 0x6A2387F4A5e61365F750e526E60B65c7791a25C0 | Collateral asset (18 decimals) |
| Oracle | 0x449961258B9BC17E4A6857Cbdc5F260f13782C2F | Price feeds |
| Rate model | 0xb55Da9023f1978741A3843e2088d81d52b58235C | Kink interest rate model |
| Timelock | 0xb104905C54Ca95f1C811266C9933Df492b54D9d6 | Deployed; not yet in the authority path |
Integration
Read-only integrations should use the public HTTP API documented in the API reference. GET /api/v1/params returns every parameter and address on this page. Transaction integrations should use the Pool ABI and check the contract addresses above, the Pool's USDC and Oracle, and the admin before sending transactions; the Arcc Systems app runs the same checks before it enables transactions.