skills/t2000-borrow/SKILL.md
Borrow USDC or USDsui against savings collateral. Use when asked to borrow, take a loan, get credit, leverage savings, or access funds without withdrawing from savings. A 0.05% protocol fee applies. Only accepts USDC or USDsui. Always validates projected health factor before signing — refuses if HF would drop below 1.5.
npx skillsauth add mission69b/t2000-skills t2000-borrowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Take a collateralized loan using savings deposits as collateral. Borrowed funds go to the available balance. A 0.05% protocol fee applies. USDsui is permitted as a strategic exception (v0.51.0+) alongside USDC — both have NAVI lending pools.
t2000 borrow <amount> [--asset USDC|USDsui]
# Examples:
t2000 borrow 40 # 40 USDC (default)
t2000 borrow 100 --asset USDsui # 100 USDsui
--asset defaults to USDC when omitted.
Before broadcasting the borrow transaction, t2000 evaluates the projected health factor and routes the user through one of three paths:
| Projected HF after borrow | What happens |
|---|---|
| < 1.5 | Refuse — borrow blocked with HEALTH_FACTOR_TOO_LOW. Error includes maxBorrow (the largest amount that keeps HF ≥ 1.5). Suggest: repay existing debt OR add more collateral. |
| 1.5 – 2.0 | Warn — surface the projected HF and require explicit user confirmation. Always state: borrow amount, projected HF, current borrow APY. Do NOT silently proceed. |
| > 2.0 | Proceed — borrow is well-collateralized, no extra confirmation needed beyond the standard signing flow. |
Always state to the user: borrow amount, interest rate, and projected health factor before signing.
When called inside the Audric chat agent:
health_check first to get current HF and maxBorrow.(supplied × liquidationThreshold) / (borrowed + amountUsd).borrow({ amount, asset }) as the write tool_use.Borrows are always single-write — never bundle with another write in a Payment Intent. The user must consciously accept the debt.
✓ Borrowed $XX.XX <asset>
Health Factor: X.XX
Borrow APY: X.XX%
Tx: https://suiscan.xyz/mainnet/tx/0x...
NO_COLLATERAL — no savings deposited to borrow against. Use t2000 save first.HEALTH_FACTOR_TOO_LOW — borrow would drop HF below 1.5. Error data includes maxBorrow. Suggest: repay debt or add collateral.UNSUPPORTED_ASSET — asset is not USDC or USDsui. Other tokens cannot be borrowed (NAVI doesn't have pools for them).A USDsui borrow MUST be repaid with USDsui. A USDC borrow MUST be repaid
with USDC. The SDK fetches the matching coin type per borrow asset. If the
user holds only the wrong stable, tell them to swap manually first — never
auto-chain swap + repay. See t2000-repay for the repay flow.
development
Swap tokens on Sui via Cetus Aggregator (20+ DEXs, best-route across SUI, USDC, USDsui, USDT, USDe, ETH, GOLD, NAVX, WAL, vSUI, and more). Use when asked to swap, trade, convert, exchange, or "turn X into Y". Do not use for sending — use the t2000-send skill for transfers.
tools
Set up a t2000 Agent Wallet end-to-end on the user's machine. Use when the user says "set up t2000", "install the wallet", "create my Agent Wallet", "connect t2000 to Claude / Cursor", or pastes a one-prompt install URL. Covers wallet creation, optional spending limits, and MCP wiring. Read this first when bootstrapping a new user; the other skills assume this has run.
development
Discover MPP services payable via `t2 pay`. Use when the user asks "what can I pay for?", "what AI models are available?", "show me the service catalog", "is there a weather API?", or any other discovery question. Pairs with the t2000-pay skill (discovery first, then pay).
data-ai
Rebalance the wallet to a target allocation by executing multiple swaps in one atomic Payment Intent. Use when asked to rebalance, adjust allocation, "shuffle my positions", or move from one set of holdings to another. Every leg prices against the same on-chain snapshot — no cross-leg slippage drift; user signs once.