starkfi 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/MCP.md +270 -48
- package/README.md +395 -87
- package/dist/commands/batch/batch.d.ts.map +1 -1
- package/dist/commands/batch/batch.js +12 -0
- package/dist/commands/batch/batch.js.map +1 -1
- package/dist/commands/config/config.d.ts.map +1 -1
- package/dist/commands/config/config.js +12 -6
- package/dist/commands/config/config.js.map +1 -1
- package/dist/commands/lending/lending.d.ts.map +1 -1
- package/dist/commands/lending/lending.js +15 -8
- package/dist/commands/lending/lending.js.map +1 -1
- package/dist/commands/staking/staking.d.ts.map +1 -1
- package/dist/commands/staking/staking.js +6 -4
- package/dist/commands/staking/staking.js.map +1 -1
- package/dist/commands/trade/multi-swap.d.ts.map +1 -1
- package/dist/commands/trade/multi-swap.js +3 -2
- package/dist/commands/trade/multi-swap.js.map +1 -1
- package/dist/commands/trade/swap.d.ts.map +1 -1
- package/dist/commands/trade/swap.js +3 -2
- package/dist/commands/trade/swap.js.map +1 -1
- package/dist/commands/wallet/balance.js +1 -1
- package/dist/commands/wallet/balance.js.map +1 -1
- package/dist/commands/wallet/send.js +1 -1
- package/dist/commands/wallet/send.js.map +1 -1
- package/dist/index.js +151 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/concurrency.d.ts +2 -0
- package/dist/lib/concurrency.d.ts.map +1 -0
- package/dist/lib/concurrency.js +21 -0
- package/dist/lib/concurrency.js.map +1 -0
- package/dist/lib/fetch.d.ts +4 -0
- package/dist/lib/fetch.d.ts.map +1 -0
- package/dist/lib/fetch.js +13 -0
- package/dist/lib/fetch.js.map +1 -0
- package/dist/lib/format.d.ts +12 -43
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +69 -52
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/retry.d.ts +0 -7
- package/dist/lib/retry.d.ts.map +1 -1
- package/dist/lib/retry.js +0 -4
- package/dist/lib/retry.js.map +1 -1
- package/dist/lib/types.d.ts +6 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/mcp/handlers/multi-swap.js +2 -2
- package/dist/mcp/handlers/multi-swap.js.map +1 -1
- package/dist/mcp/handlers/trade.js +4 -4
- package/dist/mcp/handlers/trade.js.map +1 -1
- package/dist/mcp/handlers/wallet.d.ts.map +1 -1
- package/dist/mcp/handlers/wallet.js +8 -4
- package/dist/mcp/handlers/wallet.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +45 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/auth.d.ts +3 -0
- package/dist/mcp/tools/auth.d.ts.map +1 -0
- package/dist/mcp/tools/auth.js +17 -0
- package/dist/mcp/tools/auth.js.map +1 -0
- package/dist/mcp/tools/error-handling.d.ts +12 -0
- package/dist/mcp/tools/error-handling.d.ts.map +1 -0
- package/dist/mcp/tools/error-handling.js +28 -0
- package/dist/mcp/tools/error-handling.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +11 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +19 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/lending.d.ts +3 -0
- package/dist/mcp/tools/lending.d.ts.map +1 -0
- package/dist/mcp/tools/lending.js +71 -0
- package/dist/mcp/tools/lending.js.map +1 -0
- package/dist/mcp/tools/staking.d.ts +3 -0
- package/dist/mcp/tools/staking.d.ts.map +1 -0
- package/dist/mcp/tools/staking.js +50 -0
- package/dist/mcp/tools/staking.js.map +1 -0
- package/dist/mcp/tools/trade.d.ts +3 -0
- package/dist/mcp/tools/trade.d.ts.map +1 -0
- package/dist/mcp/tools/trade.js +63 -0
- package/dist/mcp/tools/trade.js.map +1 -0
- package/dist/mcp/tools/wallet.d.ts +3 -0
- package/dist/mcp/tools/wallet.d.ts.map +1 -0
- package/dist/mcp/tools/wallet.js +27 -0
- package/dist/mcp/tools/wallet.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +25 -10
- package/dist/mcp/tools.js.map +1 -1
- package/dist/services/api/client.d.ts.map +1 -1
- package/dist/services/api/client.js +5 -9
- package/dist/services/api/client.js.map +1 -1
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +3 -2
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/batch/batch.d.ts +0 -1
- package/dist/services/batch/batch.d.ts.map +1 -1
- package/dist/services/batch/batch.js +5 -6
- package/dist/services/batch/batch.js.map +1 -1
- package/dist/services/config/config.d.ts +0 -1
- package/dist/services/config/config.d.ts.map +1 -1
- package/dist/services/config/config.js +0 -1
- package/dist/services/config/config.js.map +1 -1
- package/dist/services/fibrous/route.d.ts +0 -4
- package/dist/services/fibrous/route.d.ts.map +1 -1
- package/dist/services/fibrous/route.js +3 -3
- package/dist/services/fibrous/route.js.map +1 -1
- package/dist/services/portfolio/portfolio.d.ts +0 -4
- package/dist/services/portfolio/portfolio.d.ts.map +1 -1
- package/dist/services/portfolio/portfolio.js +56 -58
- package/dist/services/portfolio/portfolio.js.map +1 -1
- package/dist/services/simulate/simulate.d.ts +0 -8
- package/dist/services/simulate/simulate.d.ts.map +1 -1
- package/dist/services/simulate/simulate.js +1 -5
- package/dist/services/simulate/simulate.js.map +1 -1
- package/dist/services/staking/staking.d.ts +7 -20
- package/dist/services/staking/staking.d.ts.map +1 -1
- package/dist/services/staking/staking.js +2 -2
- package/dist/services/staking/staking.js.map +1 -1
- package/dist/services/starkzap/client.d.ts +2 -1
- package/dist/services/starkzap/client.d.ts.map +1 -1
- package/dist/services/starkzap/client.js +1 -3
- package/dist/services/starkzap/client.js.map +1 -1
- package/dist/services/tokens/balances.d.ts.map +1 -1
- package/dist/services/tokens/balances.js +17 -29
- package/dist/services/tokens/balances.js.map +1 -1
- package/dist/services/vesu/api.d.ts.map +1 -1
- package/dist/services/vesu/api.js +3 -9
- package/dist/services/vesu/api.js.map +1 -1
- package/dist/services/vesu/lending.d.ts +1 -4
- package/dist/services/vesu/lending.d.ts.map +1 -1
- package/dist/services/vesu/lending.js +14 -17
- package/dist/services/vesu/lending.js.map +1 -1
- package/dist/services/vesu/pools.d.ts +1 -1
- package/dist/services/vesu/pools.d.ts.map +1 -1
- package/dist/services/vesu/pools.js.map +1 -1
- package/package.json +1 -1
- package/skills/README.md +5 -9
- package/skills/config/SKILL.md +5 -5
package/README.md
CHANGED
|
@@ -1,145 +1,453 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://starkfi.app">
|
|
3
|
+
<img src="docs/favicon.svg" alt="StarkFi Logo" width="100" height="100"/>
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
2
6
|
|
|
3
|
-
StarkFi
|
|
7
|
+
<h1 align="center">StarkFi</h1>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
<strong>The Gas-Abstracted DeFi CLI & Agent.</strong><br>
|
|
11
|
+
<em>The AI-native DeFi toolkit for Starknet.</em><br>
|
|
12
|
+
A production-grade CLI and MCP server that gives both developers and AI agents full access to swaps, multi-swap, atomic batch transactions, staking, lending, portfolio management, and gasless transactions — all powered by the <a href="https://github.com/keep-starknet-strange/starkzap">Starkzap SDK</a>.
|
|
13
|
+
</p>
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
```bash
|
|
16
|
+
npx starkfi --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Why StarkFi?
|
|
22
|
+
|
|
23
|
+
Most DeFi tools are built for humans clicking buttons. StarkFi is built for **agents**.
|
|
24
|
+
|
|
25
|
+
- 🤖 **27 MCP tools** — Any AI assistant (Cursor, Claude, Antigravity) can execute DeFi operations autonomously
|
|
26
|
+
- ⚡ **Atomic Batching** — Combine swap + stake + lend + send into a single multicall transaction
|
|
27
|
+
- 💸 **Gas Abstraction Built-In** — Pay gas in STRK, ETH, USDC, USDT, or DAI via AVNU Paymaster, or let the developer sponsor gas entirely (gasfree mode)
|
|
28
|
+
- 📊 **Full Portfolio** — Unified view of balances, staking positions, and lending positions with USD values
|
|
29
|
+
- 🧪 **Simulate Everything** — Dry-run any transaction to estimate fees before broadcasting
|
|
30
|
+
|
|
31
|
+
---
|
|
8
32
|
|
|
9
|
-
|
|
33
|
+
## Architecture
|
|
10
34
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
35
|
+
```
|
|
36
|
+
┌──────────────────────────────────────────────────────────────────────┐
|
|
37
|
+
│ StarkFi │
|
|
38
|
+
│ │
|
|
39
|
+
│ ┌─────────────┐ ┌─────────────────────────────────────────┐ │
|
|
40
|
+
│ │ CLI (25+ │ │ MCP Server (27 tools) │ │
|
|
41
|
+
│ │ commands) │ │ AI agents connect via stdio transport │ │
|
|
42
|
+
│ └──────┬───────┘ └──────────────┬──────────────────────────┘ │
|
|
43
|
+
│ │ │ │
|
|
44
|
+
│ └────────────┬───────────────┘ │
|
|
45
|
+
│ ▼ │
|
|
46
|
+
│ ┌──────────────────────────────────────────────────────────────┐ │
|
|
47
|
+
│ │ Service Layer │ │
|
|
48
|
+
│ │ │ │
|
|
49
|
+
│ │ ┌─────────┐ ┌─────────┐ ┌──────┐ ┌─────────┐ │ │
|
|
50
|
+
│ │ │ Fibrous │ │ Staking │ │ Vesu │ │ Batch │ │ │
|
|
51
|
+
│ │ │ Swap │ │Lifecycle│ │ V2 │ │Multicall│ │ │
|
|
52
|
+
│ │ └────┬────┘ └────┬────┘ └──┬───┘ └────┬────┘ │ │
|
|
53
|
+
│ │ │ │ │ │ │ │
|
|
54
|
+
│ │ ┌────┴────────────┴──────────┴────────────┴────┐ │ │
|
|
55
|
+
│ │ │ Starkzap SDK (starkzap v1.0.0) │ │ │
|
|
56
|
+
│ │ │ Wallet · TxBuilder · Tokens · Paymaster │ │ │
|
|
57
|
+
│ │ └───────────────────┬───────────────────────────┘ │ │
|
|
58
|
+
│ └──────────────────────┼───────────────────────────────────────┘ │
|
|
59
|
+
│ ▼ │
|
|
60
|
+
│ ┌─────────────────────────────────────┐ ┌─────────────────────┐ │
|
|
61
|
+
│ │ Auth Server (Hono + Privy TEE) │ │ AVNU Paymaster │ │
|
|
62
|
+
│ │ Email OTP · Wallet · Sign · Gas │ │ Gas Abstraction │ │
|
|
63
|
+
│ └─────────────────────────────────────┘ └─────────────────────┘ │
|
|
64
|
+
└──────────────────────────────────────────────────────────────────────┘
|
|
65
|
+
│
|
|
66
|
+
▼
|
|
67
|
+
┌──────────────────┐
|
|
68
|
+
│ Starknet (L2) │
|
|
69
|
+
└──────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Starkzap Modules Used
|
|
20
75
|
|
|
21
|
-
|
|
76
|
+
StarkFi leverages **all core Starkzap modules**:
|
|
22
77
|
|
|
23
|
-
|
|
24
|
-
|
|
78
|
+
| Module | Usage in StarkFi |
|
|
79
|
+
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| **Wallets** | `PrivySigner` + `ArgentXV050Preset` for email-based wallet management via Privy TEE |
|
|
81
|
+
| **Gasless Transactions (Paymaster)** | Paymaster integration with 5 gas tokens (STRK, ETH, USDC, USDT, DAI) + developer-sponsored gasfree mode |
|
|
82
|
+
| **Staking** | Multi-token staking lifecycle (STRK, WBTC, tBTC, SolvBTC, LBTC) — stake, claim, compound, unstake (2-step) |
|
|
83
|
+
| **TxBuilder** | Atomic multicall batching — combine swap + stake + supply + send in one transaction |
|
|
84
|
+
| **ERC-20 Tokens** | Token presets, balance queries, transfers, approvals |
|
|
25
85
|
|
|
26
|
-
|
|
86
|
+
---
|
|
27
87
|
|
|
28
|
-
|
|
88
|
+
## Features
|
|
29
89
|
|
|
30
|
-
|
|
90
|
+
### 🔄 Intelligent Swap Routing (Fibrous)
|
|
91
|
+
|
|
92
|
+
DEX-aggregated swaps with optimal routing. Single swaps, multi-swap (up to 3 pairs), and batch routing.
|
|
31
93
|
|
|
32
94
|
```bash
|
|
33
|
-
|
|
34
|
-
npx starkfi
|
|
35
|
-
npx starkfi auth verify <user@example.com> <verification_code>
|
|
95
|
+
npx starkfi trade 100 USDC ETH --slippage 1
|
|
96
|
+
npx starkfi multi-swap "100 USDC>ETH, 50 USDT>ETH"
|
|
36
97
|
```
|
|
37
98
|
|
|
38
|
-
###
|
|
99
|
+
### ⚛️ Atomic Transaction Batching
|
|
39
100
|
|
|
40
|
-
|
|
101
|
+
Bundle multiple DeFi operations into a single Starknet multicall. Minimum 2 operations.
|
|
41
102
|
|
|
42
103
|
```bash
|
|
43
|
-
npx starkfi
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
npx starkfi send <amount> <token> <recipient> [--simulate] [--json] # Execute token transfer
|
|
49
|
-
npx starkfi portfolio [--json] # Complete DeFi portfolio (balances, staking, lending)
|
|
104
|
+
npx starkfi batch \
|
|
105
|
+
--swap "100 USDC ETH" \
|
|
106
|
+
--stake "50 STRK karnot" \
|
|
107
|
+
--supply "200 USDC Prime" \
|
|
108
|
+
--send "10 STRK 0xAddr"
|
|
50
109
|
```
|
|
51
110
|
|
|
52
|
-
|
|
111
|
+
### 🥩 Multi-Token Staking Lifecycle
|
|
112
|
+
|
|
113
|
+
Full staking lifecycle across multiple validators with STRK, WBTC, tBTC, SolvBTC, and LBTC support.
|
|
53
114
|
|
|
54
115
|
```bash
|
|
55
|
-
npx starkfi
|
|
56
|
-
npx starkfi
|
|
57
|
-
|
|
116
|
+
npx starkfi stake 100 -v karnot
|
|
117
|
+
npx starkfi rewards -v karnot --compound
|
|
118
|
+
npx starkfi unstake intent -v karnot -a 50
|
|
119
|
+
npx starkfi unstake exit -v karnot
|
|
58
120
|
```
|
|
59
121
|
|
|
60
|
-
|
|
122
|
+
### 🏦 Lending & Borrowing (Vesu V2)
|
|
123
|
+
|
|
124
|
+
Supply collateral, borrow assets, monitor health factors, and atomically close positions.
|
|
61
125
|
|
|
62
126
|
```bash
|
|
63
|
-
npx starkfi
|
|
64
|
-
|
|
65
|
-
--
|
|
66
|
-
--
|
|
67
|
-
|
|
68
|
-
|
|
127
|
+
npx starkfi lend-supply 100 -p Prime -t STRK
|
|
128
|
+
npx starkfi lend-borrow -p Prime \
|
|
129
|
+
--collateral-amount 200 --collateral-token STRK \
|
|
130
|
+
--borrow-amount 50 --borrow-token USDC
|
|
131
|
+
npx starkfi lend-status -p Prime --collateral-token STRK --borrow-token USDC
|
|
132
|
+
npx starkfi lend-close -p Prime --collateral-token STRK --borrow-token USDC
|
|
69
133
|
```
|
|
70
134
|
|
|
71
|
-
|
|
135
|
+
### 💸 Gas Abstraction
|
|
136
|
+
|
|
137
|
+
All transactions are gasless by default. Users pay gas fees in their preferred ERC-20 token via Paymaster.
|
|
72
138
|
|
|
73
139
|
```bash
|
|
74
|
-
|
|
75
|
-
npx starkfi
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
npx starkfi
|
|
79
|
-
npx starkfi unstake <intent|exit> --validator <name> [--token <symbol>] [--amount <amount>]
|
|
140
|
+
# Pay gas in USDC instead of STRK
|
|
141
|
+
npx starkfi config set-gas-token USDC
|
|
142
|
+
|
|
143
|
+
# Developer pays all gas (gasfree mode)
|
|
144
|
+
npx starkfi config set-gasfree on
|
|
80
145
|
```
|
|
81
146
|
|
|
82
|
-
|
|
147
|
+
| Mode | Who Pays | Gas Tokens | Description |
|
|
148
|
+
| --------------------- | --------- | -------------------------- | --------------------------------- |
|
|
149
|
+
| **Gasless** (default) | User | STRK, ETH, USDC, USDT, DAI | User pays in ERC-20 via Paymaster |
|
|
150
|
+
| **Gasfree** | Developer | — | Developer sponsors all gas |
|
|
151
|
+
|
|
152
|
+
### 🧪 Simulation / Dry-Run
|
|
153
|
+
|
|
154
|
+
Estimate fees and validate any transaction before broadcasting.
|
|
83
155
|
|
|
84
156
|
```bash
|
|
85
|
-
npx starkfi
|
|
86
|
-
|
|
87
|
-
npx starkfi config set-rpc <url> # Override default RPC endpoint
|
|
88
|
-
npx starkfi config get-rpc # Show current RPC URL
|
|
89
|
-
npx starkfi config set-network <mainnet|sepolia> # Modify target network
|
|
90
|
-
npx starkfi config set-gasfree <on|off> # Toggle developer-sponsored gas (Paymaster credits)
|
|
91
|
-
npx starkfi config set-gas-token <token|reset> # Set gas payment token (default: STRK)
|
|
157
|
+
npx starkfi trade 100 USDC ETH --simulate
|
|
158
|
+
# → mode: SIMULATION, estimatedFee: 0.000142 ETH ($0.52), callCount: 4
|
|
92
159
|
```
|
|
93
160
|
|
|
94
|
-
|
|
161
|
+
### 📊 Portfolio Dashboard
|
|
95
162
|
|
|
96
|
-
|
|
163
|
+
Consolidated view of all DeFi positions in one call.
|
|
97
164
|
|
|
98
165
|
```bash
|
|
99
|
-
npx starkfi
|
|
100
|
-
|
|
101
|
-
npx starkfi lend-supply <amount> -p <pool> -t <token> # Supply liquidity
|
|
102
|
-
npx starkfi lend-withdraw <amount> -p <pool> -t <token> # Withdraw supplied liquidity
|
|
103
|
-
npx starkfi lend-borrow -p <pool> \ # Initiate collateralized borrow
|
|
104
|
-
--collateral-amount <n> --collateral-token <token> \
|
|
105
|
-
--borrow-amount <n> --borrow-token <token> \
|
|
106
|
-
[--use-supplied]
|
|
107
|
-
npx starkfi lend-repay <amount> -p <pool> -t <token> \ # Repay outstanding debt
|
|
108
|
-
--collateral-token <token>
|
|
109
|
-
npx starkfi lend-status -p <pool> \ # Query active position status
|
|
110
|
-
--collateral-token <token> [--borrow-token <token>]
|
|
111
|
-
npx starkfi lend-close -p <pool> \ # Atomically repay debt and withdraw collateral
|
|
112
|
-
--collateral-token <token> --borrow-token <token>
|
|
166
|
+
npx starkfi portfolio
|
|
167
|
+
# → Token Balances (USD), Staking Positions, Lending Positions, Total Value
|
|
113
168
|
```
|
|
114
169
|
|
|
115
|
-
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## AI Integration (MCP)
|
|
116
173
|
|
|
117
|
-
StarkFi
|
|
174
|
+
StarkFi exposes **27 MCP tools** via stdio transport, enabling AI assistants to execute DeFi operations.
|
|
118
175
|
|
|
119
176
|
```bash
|
|
177
|
+
# Start the MCP server
|
|
120
178
|
npx starkfi mcp-start
|
|
121
179
|
```
|
|
122
180
|
|
|
123
|
-
|
|
181
|
+
### Tool Categories
|
|
182
|
+
|
|
183
|
+
| Category | Tools | Count |
|
|
184
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
|
|
185
|
+
| **Auth & Config** | `get_auth_status`, `config_action` | 2 |
|
|
186
|
+
| **Wallet** | `get_balance`, `get_portfolio`, `deploy_account`, `send_tokens`, `get_tx_status` | 5 |
|
|
187
|
+
| **Trade** | `get_swap_quote`, `swap_tokens`, `get_multi_swap_quote`, `multi_swap`, `batch_execute` | 5 |
|
|
188
|
+
| **Staking** | `list_validators`, `list_pools`, `get_staking_info`, `get_stake_status`, `stake_tokens`, `unstake_tokens`, `claim_rewards`, `compound_rewards` | 8 |
|
|
189
|
+
| **Lending** | `list_lending_pools`, `get_lending_position`, `supply_assets`, `withdraw_assets`, `borrow_assets`, `repay_debt`, `close_position` | 7 |
|
|
190
|
+
|
|
191
|
+
### Example — AI Agent Workflow
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
User: "Swap 100 USDC to STRK and stake half on Karnot"
|
|
195
|
+
|
|
196
|
+
Agent:
|
|
197
|
+
1. get_swap_quote(amount: "100", from: "USDC", to: "STRK") → 500 STRK
|
|
198
|
+
2. swap_tokens(amount: "100", from: "USDC", to: "STRK") → txHash: 0x...
|
|
199
|
+
3. stake_tokens(amount: "250", validator: "karnot", token: "STRK") → txHash: 0x...
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### MCP Configuration
|
|
203
|
+
|
|
204
|
+
Add to your AI assistant's MCP config (Cursor, Claude, etc.):
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"mcpServers": {
|
|
209
|
+
"starkfi": {
|
|
210
|
+
"command": "npx",
|
|
211
|
+
"args": ["-y", "starkfi", "mcp-start"]
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
For the complete tool registry and schemas, see [MCP Documentation](MCP.md).
|
|
218
|
+
|
|
219
|
+
---
|
|
124
220
|
|
|
125
221
|
## Agent Skills
|
|
126
222
|
|
|
127
|
-
StarkFi ships with **10 agent skills** — structured instruction sets that teach AI coding assistants
|
|
223
|
+
StarkFi ships with **10 agent skills** — structured instruction sets that teach AI coding assistants how to use StarkFi without custom prompting.
|
|
128
224
|
|
|
129
|
-
| Category
|
|
130
|
-
|
|
|
131
|
-
| Auth
|
|
132
|
-
| Wallet Data
|
|
133
|
-
|
|
|
134
|
-
| Utility
|
|
225
|
+
| Category | Skills |
|
|
226
|
+
| ---------------- | ------------------------------------------------------------ |
|
|
227
|
+
| **Auth** | `authenticate-wallet` |
|
|
228
|
+
| **Wallet Data** | `balance`, `portfolio` |
|
|
229
|
+
| **Transactions** | `send`, `trade`, `multi-swap`, `batch`, `staking`, `lending` |
|
|
230
|
+
| **Utility** | `config` |
|
|
135
231
|
|
|
136
232
|
```bash
|
|
137
|
-
# Install
|
|
233
|
+
# Install skills for your AI assistant
|
|
138
234
|
npx skills add ahmetenesdur/starkfi
|
|
139
235
|
```
|
|
140
236
|
|
|
141
|
-
|
|
237
|
+
See [Skills Documentation](skills/README.md) for details.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Quick Start
|
|
242
|
+
|
|
243
|
+
### Prerequisites
|
|
244
|
+
|
|
245
|
+
- **Node.js** v18+
|
|
246
|
+
- **StarkFi Auth Server** running (required for Privy email OTP and Paymaster proxy)
|
|
247
|
+
|
|
248
|
+
### 1. Authenticate
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
npx starkfi auth login user@example.com
|
|
252
|
+
npx starkfi auth verify user@example.com <OTP_CODE>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### 2. Deploy Account
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
npx starkfi deploy
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 3. Check Balance
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
npx starkfi balance
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 4. Start Trading
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
npx starkfi trade 10 STRK ETH --simulate # Preview first
|
|
271
|
+
npx starkfi trade 10 STRK ETH # Execute
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Command Reference
|
|
277
|
+
|
|
278
|
+
### Session & Wallet
|
|
279
|
+
|
|
280
|
+
| Command | Description |
|
|
281
|
+
| --------------------------------------------------------- | -------------------------------- |
|
|
282
|
+
| `auth login <email>` | Start email OTP authentication |
|
|
283
|
+
| `auth verify <email> <code>` | Complete authentication |
|
|
284
|
+
| `auth logout` | Terminate session |
|
|
285
|
+
| `status` | Check auth status and API health |
|
|
286
|
+
| `address` | Display Starknet address |
|
|
287
|
+
| `deploy` | Deploy smart account on-chain |
|
|
288
|
+
| `balance [--token <symbol>] [--json]` | Query token balances |
|
|
289
|
+
| `send <amount> <token> <recipient> [--simulate] [--json]` | Transfer tokens |
|
|
290
|
+
| `portfolio [--json]` | Full DeFi portfolio |
|
|
291
|
+
|
|
292
|
+
### Trading (Fibrous)
|
|
293
|
+
|
|
294
|
+
| Command | Description |
|
|
295
|
+
| ------------------------------------------------------------------- | --------------------------- |
|
|
296
|
+
| `trade <amount> <from> <to> [--slippage <%>] [--simulate] [--json]` | Swap tokens |
|
|
297
|
+
| `multi-swap "<pairs>" [--slippage <%>] [--simulate] [--json]` | Multi-pair swap (2-3 pairs) |
|
|
298
|
+
|
|
299
|
+
### Batching (Multicall)
|
|
300
|
+
|
|
301
|
+
| Command | Description |
|
|
302
|
+
| --------------------------------------------------------------------------- | ---------------------------- |
|
|
303
|
+
| `batch [--simulate] --swap "..." --stake "..." --supply "..." --send "..."` | Atomic multicall (min 2 ops) |
|
|
304
|
+
|
|
305
|
+
### Staking
|
|
306
|
+
|
|
307
|
+
| Command | Description |
|
|
308
|
+
| ----------------------------------------------------------------------------- | ---------------------- |
|
|
309
|
+
| `validators [--json]` | List active validators |
|
|
310
|
+
| `pools <validator> [--json]` | Show delegation pools |
|
|
311
|
+
| `stake <amount> --validator <name> [--token <symbol>] [--simulate]` | Stake tokens |
|
|
312
|
+
| `stake-status [validator] [--json]` | Staking dashboard |
|
|
313
|
+
| `rewards --validator <name> [--token <symbol>] <--claim\|--compound>` | Manage rewards |
|
|
314
|
+
| `unstake <intent\|exit> --validator <name> [--token <symbol>] [--amount <n>]` | Unstake (2-step) |
|
|
315
|
+
|
|
316
|
+
### Lending (Vesu V2)
|
|
317
|
+
|
|
318
|
+
| Command | Description |
|
|
319
|
+
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
|
|
320
|
+
| `lend-pools [name]` | List lending pools |
|
|
321
|
+
| `lend-supply <amount> -p <pool> -t <token>` | Supply assets |
|
|
322
|
+
| `lend-withdraw <amount> -p <pool> -t <token>` | Withdraw assets |
|
|
323
|
+
| `lend-borrow -p <pool> --collateral-amount <n> --collateral-token <t> --borrow-amount <n> --borrow-token <t> [--use-supplied]` | Borrow |
|
|
324
|
+
| `lend-repay <amount> -p <pool> -t <token> --collateral-token <t>` | Repay debt |
|
|
325
|
+
| `lend-status -p <pool> --collateral-token <t> [--borrow-token <t>]` | Position status |
|
|
326
|
+
| `lend-close -p <pool> --collateral-token <t> --borrow-token <t>` | Close position atomically |
|
|
327
|
+
|
|
328
|
+
### Configuration
|
|
329
|
+
|
|
330
|
+
| Command | Description |
|
|
331
|
+
| --------------------------------------- | ------------------------------ |
|
|
332
|
+
| `config list` | Show current configuration |
|
|
333
|
+
| `config set-rpc <url>` | Set custom RPC endpoint |
|
|
334
|
+
| `config get-rpc` | Show current RPC |
|
|
335
|
+
| `config set-network <mainnet\|sepolia>` | Switch network |
|
|
336
|
+
| `config set-gas-token <token\|reset>` | Set gas payment token |
|
|
337
|
+
| `config set-gasfree <on\|off>` | Toggle developer-sponsored gas |
|
|
338
|
+
| `tx-status <hash>` | Check transaction status |
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Auth Server
|
|
343
|
+
|
|
344
|
+
StarkFi includes a dedicated **authentication server** (`server/`) built for secure, non-custodial wallet management.
|
|
345
|
+
|
|
346
|
+
### Route Groups
|
|
347
|
+
|
|
348
|
+
| Route | Purpose |
|
|
349
|
+
| ------------ | ------------------------------------------------- |
|
|
350
|
+
| `/auth` | Email OTP login and verification via Privy |
|
|
351
|
+
| `/wallet` | Wallet creation and address retrieval |
|
|
352
|
+
| `/sign` | Transaction signing via Privy TEE (non-custodial) |
|
|
353
|
+
| `/paymaster` | Paymaster proxy for gas abstraction |
|
|
354
|
+
|
|
355
|
+
### Security
|
|
356
|
+
|
|
357
|
+
- **CORS** with configurable allowlist (`ALLOWED_ORIGINS`)
|
|
358
|
+
- **Secure headers** via `hono/secure-headers`
|
|
359
|
+
- **Body size limit** (1MB)
|
|
360
|
+
- **Request ID tracking** for observability
|
|
361
|
+
- **Graceful shutdown** (SIGTERM/SIGINT with 5s force-kill)
|
|
362
|
+
|
|
363
|
+
See [`server/README.md`](server/README.md) for setup instructions.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Tech Stack
|
|
368
|
+
|
|
369
|
+
| Layer | Technology |
|
|
370
|
+
| --------------- | -------------------------------------------------------------------------------- |
|
|
371
|
+
| **Core SDK** | [Starkzap](https://github.com/keep-starknet-strange/starkzap) v1.0.0 |
|
|
372
|
+
| **CLI** | [Commander.js](https://github.com/tj/commander.js) v14.0.3 |
|
|
373
|
+
| **MCP** | [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) v1.27.1 |
|
|
374
|
+
| **Schema** | [Zod](https://zod.dev/) v4.3.6 |
|
|
375
|
+
| **Auth Server** | [Hono](https://hono.dev/) v4.12.2 + [Privy TEE](https://privy.io/) |
|
|
376
|
+
| **DEX Routing** | [Fibrous](https://fibrous.finance/) Aggregator |
|
|
377
|
+
| **Lending** | [Vesu](https://vesu.io/) V2 Protocol |
|
|
378
|
+
| **Gas** | [AVNU](https://avnu.fi/) Paymaster |
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Error Handling
|
|
383
|
+
|
|
384
|
+
StarkFi implements a robust error handling system with a custom `StarkfiError` class and **26 specific error codes** organized by domain:
|
|
385
|
+
|
|
386
|
+
| Domain | Error Codes |
|
|
387
|
+
| -------------- | --------------------------------------------------------------------------------- |
|
|
388
|
+
| **Auth** | `SESSION_EXPIRED`, `SESSION_NOT_FOUND`, `AUTH_FAILED`, `UNAUTHORIZED` |
|
|
389
|
+
| **Wallet** | `WALLET_NOT_FOUND`, `WALLET_NOT_DEPLOYED`, `INSUFFICIENT_BALANCE` |
|
|
390
|
+
| **Network** | `NETWORK_ERROR`, `RPC_ERROR`, `API_ERROR`, `TX_FAILED`, `TX_REVERTED` |
|
|
391
|
+
| **Validation** | `INVALID_ADDRESS`, `INVALID_AMOUNT`, `INVALID_TOKEN`, `INVALID_CONFIG` |
|
|
392
|
+
| **DeFi** | `SWAP_FAILED`, `STAKING_FAILED`, `LENDING_FAILED`, `POOL_NOT_FOUND` |
|
|
393
|
+
| **System** | `CONFIG_ERROR`, `SDK_ERROR`, `UNKNOWN_ERROR`, `SIMULATION_FAILED`, `BATCH_FAILED` |
|
|
394
|
+
|
|
395
|
+
All network operations include **automatic retry with exponential backoff** (500ms base, max 2 retries). Parallel operations use a **sliding-window concurrency pool** to prevent RPC rate-limiting.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Development
|
|
400
|
+
|
|
401
|
+
### Setup
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
git clone https://github.com/ahmetenesdur/starkfi.git
|
|
405
|
+
cd starkfi
|
|
406
|
+
pnpm install
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Build
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
pnpm build # Compile TypeScript → dist/
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Dev Mode
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
pnpm dev -- --help # Run with tsx (hot-reload)
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### Lint & Format
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
pnpm lint # ESLint
|
|
425
|
+
pnpm format # Prettier
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Auth Server
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
cd server
|
|
432
|
+
pnpm install
|
|
433
|
+
cp .env.example .env # Configure environment
|
|
434
|
+
pnpm dev
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Contributing
|
|
440
|
+
|
|
441
|
+
Contributions are welcome! Here's how to get started:
|
|
442
|
+
|
|
443
|
+
1. **Fork** the repository and create a feature branch
|
|
444
|
+
2. **Install** dependencies: `pnpm install`
|
|
445
|
+
3. **Make** your changes following the existing code style (TypeScript strict mode, ESLint + Prettier)
|
|
446
|
+
4. **Build** and verify: `pnpm build && pnpm lint`
|
|
447
|
+
5. **Submit** a pull request with a clear description
|
|
448
|
+
|
|
449
|
+
For bug reports and feature requests, please [open an issue](https://github.com/ahmetenesdur/starkfi/issues).
|
|
142
450
|
|
|
143
451
|
## License
|
|
144
452
|
|
|
145
|
-
MIT
|
|
453
|
+
[MIT](LICENSE) — ahmetenesdur
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G3D"}
|
|
@@ -68,6 +68,18 @@ export function registerBatchCommand(program) {
|
|
|
68
68
|
.option("--send <args>", 'Send tokens: "10 STRK 0xAddr" (repeatable)', collect, [])
|
|
69
69
|
.option("--simulate", "Estimate fees and validate without executing")
|
|
70
70
|
.option("--json", "Output raw JSON")
|
|
71
|
+
.addHelpText("after", `
|
|
72
|
+
Examples:
|
|
73
|
+
$ starkfi batch --swap "0.1 ETH USDC" --stake "50 STRK karnot"
|
|
74
|
+
$ starkfi batch --swap "100 USDC ETH" --supply "200 USDC 0xABC" --simulate
|
|
75
|
+
|
|
76
|
+
Flag formats:
|
|
77
|
+
--swap "<amount> <from> <to>" e.g. "0.5 ETH USDC"
|
|
78
|
+
--stake "<amount> <token> <validator>" e.g. "50 STRK karnot"
|
|
79
|
+
--supply "<amount> <token> <pool>" e.g. "200 USDC 0xABC..."
|
|
80
|
+
--send "<amount> <token> <address>" e.g. "10 STRK 0x04a3..."
|
|
81
|
+
|
|
82
|
+
Minimum 2 operations required. Each flag can be repeated.`)
|
|
71
83
|
.action(async (opts) => {
|
|
72
84
|
const spinner = createSpinner("Preparing batch...").start();
|
|
73
85
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/commands/batch/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2I5D"}
|