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.
Files changed (138) hide show
  1. package/LICENSE +1 -1
  2. package/MCP.md +270 -48
  3. package/README.md +395 -87
  4. package/dist/commands/batch/batch.d.ts.map +1 -1
  5. package/dist/commands/batch/batch.js +12 -0
  6. package/dist/commands/batch/batch.js.map +1 -1
  7. package/dist/commands/config/config.d.ts.map +1 -1
  8. package/dist/commands/config/config.js +12 -6
  9. package/dist/commands/config/config.js.map +1 -1
  10. package/dist/commands/lending/lending.d.ts.map +1 -1
  11. package/dist/commands/lending/lending.js +15 -8
  12. package/dist/commands/lending/lending.js.map +1 -1
  13. package/dist/commands/staking/staking.d.ts.map +1 -1
  14. package/dist/commands/staking/staking.js +6 -4
  15. package/dist/commands/staking/staking.js.map +1 -1
  16. package/dist/commands/trade/multi-swap.d.ts.map +1 -1
  17. package/dist/commands/trade/multi-swap.js +3 -2
  18. package/dist/commands/trade/multi-swap.js.map +1 -1
  19. package/dist/commands/trade/swap.d.ts.map +1 -1
  20. package/dist/commands/trade/swap.js +3 -2
  21. package/dist/commands/trade/swap.js.map +1 -1
  22. package/dist/commands/wallet/balance.js +1 -1
  23. package/dist/commands/wallet/balance.js.map +1 -1
  24. package/dist/commands/wallet/send.js +1 -1
  25. package/dist/commands/wallet/send.js.map +1 -1
  26. package/dist/index.js +151 -13
  27. package/dist/index.js.map +1 -1
  28. package/dist/lib/concurrency.d.ts +2 -0
  29. package/dist/lib/concurrency.d.ts.map +1 -0
  30. package/dist/lib/concurrency.js +21 -0
  31. package/dist/lib/concurrency.js.map +1 -0
  32. package/dist/lib/fetch.d.ts +4 -0
  33. package/dist/lib/fetch.d.ts.map +1 -0
  34. package/dist/lib/fetch.js +13 -0
  35. package/dist/lib/fetch.js.map +1 -0
  36. package/dist/lib/format.d.ts +12 -43
  37. package/dist/lib/format.d.ts.map +1 -1
  38. package/dist/lib/format.js +69 -52
  39. package/dist/lib/format.js.map +1 -1
  40. package/dist/lib/retry.d.ts +0 -7
  41. package/dist/lib/retry.d.ts.map +1 -1
  42. package/dist/lib/retry.js +0 -4
  43. package/dist/lib/retry.js.map +1 -1
  44. package/dist/lib/types.d.ts +6 -0
  45. package/dist/lib/types.d.ts.map +1 -0
  46. package/dist/lib/types.js +2 -0
  47. package/dist/lib/types.js.map +1 -0
  48. package/dist/mcp/handlers/multi-swap.js +2 -2
  49. package/dist/mcp/handlers/multi-swap.js.map +1 -1
  50. package/dist/mcp/handlers/trade.js +4 -4
  51. package/dist/mcp/handlers/trade.js.map +1 -1
  52. package/dist/mcp/handlers/wallet.d.ts.map +1 -1
  53. package/dist/mcp/handlers/wallet.js +8 -4
  54. package/dist/mcp/handlers/wallet.js.map +1 -1
  55. package/dist/mcp/server.d.ts.map +1 -1
  56. package/dist/mcp/server.js +45 -4
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/mcp/tools/auth.d.ts +3 -0
  59. package/dist/mcp/tools/auth.d.ts.map +1 -0
  60. package/dist/mcp/tools/auth.js +17 -0
  61. package/dist/mcp/tools/auth.js.map +1 -0
  62. package/dist/mcp/tools/error-handling.d.ts +12 -0
  63. package/dist/mcp/tools/error-handling.d.ts.map +1 -0
  64. package/dist/mcp/tools/error-handling.js +28 -0
  65. package/dist/mcp/tools/error-handling.js.map +1 -0
  66. package/dist/mcp/tools/index.d.ts +11 -0
  67. package/dist/mcp/tools/index.d.ts.map +1 -0
  68. package/dist/mcp/tools/index.js +19 -0
  69. package/dist/mcp/tools/index.js.map +1 -0
  70. package/dist/mcp/tools/lending.d.ts +3 -0
  71. package/dist/mcp/tools/lending.d.ts.map +1 -0
  72. package/dist/mcp/tools/lending.js +71 -0
  73. package/dist/mcp/tools/lending.js.map +1 -0
  74. package/dist/mcp/tools/staking.d.ts +3 -0
  75. package/dist/mcp/tools/staking.d.ts.map +1 -0
  76. package/dist/mcp/tools/staking.js +50 -0
  77. package/dist/mcp/tools/staking.js.map +1 -0
  78. package/dist/mcp/tools/trade.d.ts +3 -0
  79. package/dist/mcp/tools/trade.d.ts.map +1 -0
  80. package/dist/mcp/tools/trade.js +63 -0
  81. package/dist/mcp/tools/trade.js.map +1 -0
  82. package/dist/mcp/tools/wallet.d.ts +3 -0
  83. package/dist/mcp/tools/wallet.d.ts.map +1 -0
  84. package/dist/mcp/tools/wallet.js +27 -0
  85. package/dist/mcp/tools/wallet.js.map +1 -0
  86. package/dist/mcp/tools.d.ts.map +1 -1
  87. package/dist/mcp/tools.js +25 -10
  88. package/dist/mcp/tools.js.map +1 -1
  89. package/dist/services/api/client.d.ts.map +1 -1
  90. package/dist/services/api/client.js +5 -9
  91. package/dist/services/api/client.js.map +1 -1
  92. package/dist/services/auth/session.d.ts.map +1 -1
  93. package/dist/services/auth/session.js +3 -2
  94. package/dist/services/auth/session.js.map +1 -1
  95. package/dist/services/batch/batch.d.ts +0 -1
  96. package/dist/services/batch/batch.d.ts.map +1 -1
  97. package/dist/services/batch/batch.js +5 -6
  98. package/dist/services/batch/batch.js.map +1 -1
  99. package/dist/services/config/config.d.ts +0 -1
  100. package/dist/services/config/config.d.ts.map +1 -1
  101. package/dist/services/config/config.js +0 -1
  102. package/dist/services/config/config.js.map +1 -1
  103. package/dist/services/fibrous/route.d.ts +0 -4
  104. package/dist/services/fibrous/route.d.ts.map +1 -1
  105. package/dist/services/fibrous/route.js +3 -3
  106. package/dist/services/fibrous/route.js.map +1 -1
  107. package/dist/services/portfolio/portfolio.d.ts +0 -4
  108. package/dist/services/portfolio/portfolio.d.ts.map +1 -1
  109. package/dist/services/portfolio/portfolio.js +56 -58
  110. package/dist/services/portfolio/portfolio.js.map +1 -1
  111. package/dist/services/simulate/simulate.d.ts +0 -8
  112. package/dist/services/simulate/simulate.d.ts.map +1 -1
  113. package/dist/services/simulate/simulate.js +1 -5
  114. package/dist/services/simulate/simulate.js.map +1 -1
  115. package/dist/services/staking/staking.d.ts +7 -20
  116. package/dist/services/staking/staking.d.ts.map +1 -1
  117. package/dist/services/staking/staking.js +2 -2
  118. package/dist/services/staking/staking.js.map +1 -1
  119. package/dist/services/starkzap/client.d.ts +2 -1
  120. package/dist/services/starkzap/client.d.ts.map +1 -1
  121. package/dist/services/starkzap/client.js +1 -3
  122. package/dist/services/starkzap/client.js.map +1 -1
  123. package/dist/services/tokens/balances.d.ts.map +1 -1
  124. package/dist/services/tokens/balances.js +17 -29
  125. package/dist/services/tokens/balances.js.map +1 -1
  126. package/dist/services/vesu/api.d.ts.map +1 -1
  127. package/dist/services/vesu/api.js +3 -9
  128. package/dist/services/vesu/api.js.map +1 -1
  129. package/dist/services/vesu/lending.d.ts +1 -4
  130. package/dist/services/vesu/lending.d.ts.map +1 -1
  131. package/dist/services/vesu/lending.js +14 -17
  132. package/dist/services/vesu/lending.js.map +1 -1
  133. package/dist/services/vesu/pools.d.ts +1 -1
  134. package/dist/services/vesu/pools.d.ts.map +1 -1
  135. package/dist/services/vesu/pools.js.map +1 -1
  136. package/package.json +1 -1
  137. package/skills/README.md +5 -9
  138. package/skills/config/SKILL.md +5 -5
package/README.md CHANGED
@@ -1,145 +1,453 @@
1
- # StarkFi
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 is an advanced command-line interface and Model Context Protocol (MCP) toolkit designed for decentralized finance operations on Starknet. Engineered for both direct developer interaction and artificial intelligence agent workflows, it provides a highly optimized, abstracted layer over complex DeFi protocols.
7
+ <h1 align="center">StarkFi</h1>
4
8
 
5
- The toolkit integrates the StarkZap SDK, Privy authentication, Fibrous trade aggregation, Vesu V2 lending, and AVNU paymaster services into a unified, secure environment.
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
- ## System Architecture Overview
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
- StarkFi abstracts the complexities of the Starknet ecosystem through the following core capabilities:
33
+ ## Architecture
10
34
 
11
- - **Intelligent Trade Routing:** Seamless token swaps aggregated via Fibrous for optimal execution paths.
12
- - **Multi-Swap:** Execute up to 3 token swaps in a single transaction via Fibrous batch routing.
13
- - **Transaction Batching:** Bundle different operations (swap + stake + supply + send) into a single Starknet multicall.
14
- - **Simulation / Dry Run:** Estimate fees and validate any transaction without broadcasting — available on swap, send, multi-swap, and batch.
15
- - **Portfolio Dashboard:** Consolidated view of all DeFi positions — token balances (with USD), staking, and lending.
16
- - **Advanced Gas Abstraction:** All transactions are routed through the Paymaster by default. Gas is paid in STRK (configurable to ETH, USDC, USDT, DAI). Developer-sponsored (Gasfree) mode is also available.
17
- - **Delegation and Staking Management:** Multi-token staking lifecycle controls (STRK, WBTC, tBTC, SolvBTC, LBTC), including entering pools, restaking, atomic compounding, and intent-based unstaking.
18
- - **Protocol-Level Lending:** Direct integration with Vesu V2 for supplying collateral, borrowing assets, and managing debt positions.
19
- - **Native AI Integration:** An embedded Model Context Protocol (MCP) server that exposes the entire toolkit to LLM-driven environments such as Cursor and Claude.
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
- ## System Requirements
76
+ StarkFi leverages **all core Starkzap modules**:
22
77
 
23
- - **Node.js:** v18.0.0+
24
- - **Starknet Auth Server:** Required for Email OTP (Privy TEE) and AVNU Paymaster gas abstraction.
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
- ## Quick Start Configuration
86
+ ---
27
87
 
28
- ### 1. Secure Authentication
88
+ ## Features
29
89
 
30
- StarkFi utilizes a remote Auth Server for email-based OTP.
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
- # Email OTP Authentication (Requires running starkfi-server)
34
- npx starkfi auth login <user@example.com>
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
- ### 2. Primary Command Reference
99
+ ### ⚛️ Atomic Transaction Batching
39
100
 
40
- #### Session and Wallet Management
101
+ Bundle multiple DeFi operations into a single Starknet multicall. Minimum 2 operations.
41
102
 
42
103
  ```bash
43
- npx starkfi auth logout # Terminate active session
44
- npx starkfi status # Check authentication status and API health
45
- npx starkfi address # Display active Starknet address
46
- npx starkfi deploy # Deploy smart account contract on-chain
47
- npx starkfi balance [--token <symbol>] [--json] # Query token balances (STRK, ETH, ERC-20)
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
- #### Trading and Aggregation (Fibrous)
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 trade <amount> <from> <to> [--slippage <percent>] [--simulate] [--json]
56
- npx starkfi multi-swap "<pairs>" [--slippage <percent>] [--simulate] [--json]
57
- # Example: npx starkfi multi-swap "100 USDC>ETH, 50 USDT>STRK"
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
- #### Transaction Batching (Multicall)
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 batch [--simulate] \
64
- --swap "100 USDC ETH" \
65
- --stake "50 STRK karnot" \
66
- --supply "200 USDC 0xPool" \
67
- --send "10 STRK 0xAddr"
68
- # All options are repeatable. Minimum 2 operations required.
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
- #### Staking Operations
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
- npx starkfi validators [--json] # Retrieve active validator set
75
- npx starkfi pools <validator> [--json] # Query delegation pools per validator (multi-token)
76
- npx starkfi stake-status [validator] [--json] # Display comprehensive or filtered staking dashboard
77
- npx starkfi stake <amount> --validator <name> [--token <symbol>] [--simulate] # Smart stake (default: STRK)
78
- npx starkfi rewards --validator <name> [--token <symbol>] <--claim|--compound>
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
- #### Environment Configuration
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 tx-status <hash> # Query transaction receipt and status
86
- npx starkfi config list # Display current environment configuration
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
- #### Lending and Borrowing (Vesu V2)
161
+ ### 📊 Portfolio Dashboard
95
162
 
96
- Pool data (assets, APY, pairs) is fetched dynamically from the Vesu API.
163
+ Consolidated view of all DeFi positions in one call.
97
164
 
98
165
  ```bash
99
- npx starkfi lend-pools # Summary table (name, version, asset/pair counts)
100
- npx starkfi lend-pools <name> # Detail view (assets with APY, pairs, pool address)
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
- ## Artificial Intelligence Integration (MCP)
170
+ ---
171
+
172
+ ## AI Integration (MCP)
116
173
 
117
- StarkFi is built from the ground up to operate as an MCP server, allowing AI assistants to reason about and execute DeFi operations.
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
- For detailed integration instructions and the complete LLM tool registry, refer to the [MCP Documentation](MCP.md).
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 (Cursor, Claude, Antigravity) how to use the CLI without custom prompting.
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 | Skills |
130
- | ----------- | ------------------------------------------------------------ |
131
- | Auth | `authenticate-wallet` |
132
- | Wallet Data | `balance`, `portfolio` |
133
- | Transaction | `send`, `trade`, `multi-swap`, `batch`, `staking`, `lending` |
134
- | Utility | `config` |
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 via Skills CLI
233
+ # Install skills for your AI assistant
138
234
  npx skills add ahmetenesdur/starkfi
139
235
  ```
140
236
 
141
- Each skill documents the exact commands, parameters, error handling, and multi-step workflows an agent should follow. For full details, see the [Skills Documentation](skills/README.md).
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 License.
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,CAgG3D"}
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,CAyH5D"}
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"}