jaspervault_cli 1.0.28 → 1.0.30

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.
@@ -1,3 +1,4 @@
1
+ import { join } from 'node:path';
1
2
  import { ethers } from 'ethers';
2
3
  import { loadConfig } from '../utils/config.js';
3
4
  import { ENDPOINTS } from '../utils/endpoints.js';
@@ -7,6 +8,9 @@ import { getNetworkConfig } from '../services/chain-config.js';
7
8
  import { loadOrGenerateDelegationKey, saveDelegationKey } from '../services/key-manager.js';
8
9
  import { saveVaultProfile } from '../services/vault-profile.js';
9
10
  import { pollSession } from '../services/session-poller.js';
11
+ function getJvDir() {
12
+ return join(process.env.HOME || process.env.USERPROFILE || '', '.jaspervault');
13
+ }
10
14
  const PERPS_OPTION_MODULE_ABI = [
11
15
  'function getUserDelegationWhiteListNonce(address wallet) view returns (uint256)',
12
16
  ];
@@ -142,22 +146,27 @@ export function registerVaultCommand(program) {
142
146
  vault
143
147
  .command('setup')
144
148
  .description('Set up vault via hosted web page — generates a URL for the user to sign in their browser (no PRIVATE_KEY needed)')
145
- .option('--network <name>', 'Network name (signing happens on Base)', 'base_uat')
146
149
  .option('--vault-types <types>', 'Comma-separated vault types', '33,37')
147
150
  .option('--timeout <seconds>', 'Polling timeout in seconds', '900')
148
151
  .option('--pretty', 'Pretty-print JSON output')
149
152
  .action(async (opts) => {
150
153
  const config = loadConfig();
151
- const net = getNetworkConfig(opts.network);
152
- const { privateKey: delegationKey, address: delegationAddress, wasGenerated } = loadOrGenerateDelegationKey(opts.network);
154
+ // EIP-712 domain uses Base chain (wallet is on Base)
155
+ const baseNet = getNetworkConfig('base_uat');
156
+ // Nonce + vault operations use JasperVault chain (where manager executes)
157
+ const jvNet = getNetworkConfig('jaspervault');
158
+ const { privateKey: delegationKey, address: delegationAddress, wasGenerated } = loadOrGenerateDelegationKey('jaspervault');
153
159
  const delegationWallet = new ethers.Wallet(delegationKey);
154
- const provider = new ethers.JsonRpcProvider(net.rpcUrl);
160
+ const jvProvider = new ethers.JsonRpcProvider(jvNet.rpcUrl);
161
+ // Session template for the browser page:
162
+ // - domain: Base chain (chainId 8453 + Base Diamond) — matches wallet's active chain
163
+ // - nonce: read from JasperVault chain — matches where manager executes
155
164
  const delegationSignDataTemplate = {
156
165
  domain: {
157
166
  name: 'jasperVault',
158
167
  version: '1.0',
159
- chainId: net.chainId,
160
- verifyingContract: net.contracts.diamond,
168
+ chainId: baseNet.chainId,
169
+ verifyingContract: baseNet.contracts.diamond,
161
170
  },
162
171
  types: {
163
172
  SignerWhiteListData: [
@@ -177,16 +186,15 @@ export function registerVaultCommand(program) {
177
186
  deadline: '',
178
187
  name: 'jasperVaultDelegateDemo',
179
188
  },
180
- vaultFactory: net.contracts.vaultFactory,
181
- perpsOptionModuleHandle: net.contracts.perpsOptionModuleHandle,
182
- rpcUrl: net.rpcUrl,
189
+ perpsOptionModuleHandle: jvNet.contracts.perpsOptionModuleHandle,
190
+ rpcUrl: jvNet.rpcUrl,
183
191
  };
184
192
  const vaultTypes = opts.vaultTypes.split(',').map((s) => parseInt(s.trim(), 10));
185
193
  const apiClient = new ApiClient(config);
186
194
  const sessionBody = {
187
195
  type: 'vault_setup',
188
- network: opts.network,
189
- chainId: net.chainId,
196
+ network: 'jaspervault',
197
+ chainId: baseNet.chainId,
190
198
  delegationAddress,
191
199
  delegationSignData: delegationSignDataTemplate,
192
200
  };
@@ -198,6 +206,7 @@ export function registerVaultCommand(program) {
198
206
  exitWithError(`Failed to create session: ${err.message}`, EXIT_CODES.HTTP_ERROR);
199
207
  }
200
208
  const { sessionId, url, expiresAt } = sessionRes.data;
209
+ // Output the URL for the agent to send to the user
201
210
  printJson({
202
211
  status: 'session_created',
203
212
  sessionId,
@@ -205,15 +214,18 @@ export function registerVaultCommand(program) {
205
214
  expiresAt,
206
215
  message: 'Open this URL in your browser to connect wallet and complete setup',
207
216
  }, opts.pretty);
217
+ // Poll for completion
208
218
  const timeoutMs = parseInt(opts.timeout, 10) * 1000 || 900_000;
209
219
  const result = await pollSession(apiClient, sessionId, { timeoutMs });
210
220
  if (result.status === 'completed' && result.result) {
211
221
  const walletAddress = result.result.walletAddress;
212
222
  const delegationSig = result.result.delegationSignature;
213
223
  const delegationMsg = result.result.delegationMessage;
214
- const { createVaultSignData, signatureList } = await generateVaultSignatures(walletAddress, delegationWallet, vaultTypes, net.contracts.vaultFactory, provider);
224
+ // Generate vault signatures with delegation key (JasperVault factory)
225
+ const { createVaultSignData, signatureList } = await generateVaultSignatures(walletAddress, delegationWallet, vaultTypes, jvNet.contracts.vaultFactory, jvProvider);
226
+ // Request body chainId = Base (8453) — for contract EIP-712 signature verification
215
227
  const vaultInitBody = {
216
- chainId: String(net.chainId),
228
+ chainId: String(baseNet.chainId),
217
229
  delegationSignature: {
218
230
  message: delegationMsg,
219
231
  signature: delegationSig,
@@ -230,9 +242,10 @@ export function registerVaultCommand(program) {
230
242
  process.exit(EXIT_CODES.BUSINESS_ERROR);
231
243
  }
232
244
  if (wasGenerated) {
233
- saveDelegationKey(delegationKey, delegationAddress, opts.network);
245
+ saveDelegationKey(delegationKey, delegationAddress, 'jaspervault');
234
246
  }
235
- const vaultFactory = new ethers.Contract(net.contracts.vaultFactory, ['function getAddress(address wallet, uint256 salt) view returns (address)'], provider);
247
+ // Compute vault addresses from JasperVault factory
248
+ const vaultFactory = new ethers.Contract(jvNet.contracts.vaultFactory, ['function getAddress(address wallet, uint256 salt) view returns (address)'], jvProvider);
236
249
  const getAddr = vaultFactory.getFunction('getAddress');
237
250
  const marginAccount = (await getAddr(walletAddress, 1));
238
251
  const vaultEntries = await Promise.all(vaultTypes.map(async (type) => {
@@ -242,7 +255,7 @@ export function registerVaultCommand(program) {
242
255
  saveVaultProfile({
243
256
  eoa: walletAddress,
244
257
  delegationAddress,
245
- network: opts.network,
258
+ network: 'jaspervault',
246
259
  vaults: vaultEntries,
247
260
  marginAccount,
248
261
  });
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/commands/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/commands/vault.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  * Generates a multi-file skill structure:
4
4
  * SKILL.md — compact core rules + activation + intent table
5
5
  * references/ — detailed docs loaded on demand by the agent
6
- * scripts/ — helper scripts
7
6
  *
8
7
  * All content is read from skill-content/ directory (independent .md files).
9
8
  */
@@ -3,7 +3,6 @@
3
3
  * Generates a multi-file skill structure:
4
4
  * SKILL.md — compact core rules + activation + intent table
5
5
  * references/ — detailed docs loaded on demand by the agent
6
- * scripts/ — helper scripts
7
6
  *
8
7
  * All content is read from skill-content/ directory (independent .md files).
9
8
  */
@@ -75,7 +74,6 @@ export function buildSkillContent(platform) {
75
74
  'references/onboarding.md': readContent('references/onboarding.md'),
76
75
  'references/trading.md': readContent('references/trading.md'),
77
76
  'references/queries.md': readContent('references/queries.md'),
78
- 'scripts/check-init.sh': readContent('scripts/check-init.sh'),
79
77
  };
80
78
  }
81
79
  //# sourceMappingURL=skill-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-body.js","sourceRoot":"","sources":["../../../src/templates/skill-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACzC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CACzC,CAAC;AAEzB,sEAAsE;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;wBAcE,WAAW;;CAElC,CAAC,IAAI,EAAE,CAAC;AAIT,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAErD,SAAS,WAAW,CAAC,YAAoB;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,CAAC,+CAA+C;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,wBAAwB,GAAG,QAAQ,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,0BAA0B,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACnE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;KAC9D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"skill-body.js","sourceRoot":"","sources":["../../../src/templates/skill-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACzC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CACzC,CAAC;AAEzB,sEAAsE;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;wBAcE,WAAW;;CAElC,CAAC,IAAI,EAAE,CAAC;AAIT,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAErD,SAAS,WAAW,CAAC,YAAoB;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,CAAC,+CAA+C;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,wBAAwB,GAAG,QAAQ,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,0BAA0B,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACnE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;KAC9D,CAAC;AACJ,CAAC"}
@@ -1,51 +1,82 @@
1
1
  # JasperVault Trading Skill
2
2
 
3
- Trade perpetual contracts on JasperVault via the `jv` CLI (v{{CLI_VERSION}}). No private key is ever required.
4
-
5
- ## CRITICAL RULES (MUST FOLLOW — violations cause broken UX)
6
-
7
- 1. **Browser Signing ONLY**: ALWAYS use `jv vault setup`. NEVER suggest `jv vault init` (private-key mode). NEVER ask the user to set `PRIVATE_KEY`.
8
- 2. **URL Display**: When `jv vault setup` outputs JSON with a `url` field, you MUST display the `url` value as a clickable link to the user. The user opens this URL in their browser to connect their wallet and sign.
9
- 3. **Long-running Commands**: `jv vault setup` is a long-running command (up to 15 min) that creates a web session. After it outputs the session URL, it polls automatically until the user completes signing in the browser. Show the URL to the user and wait for completion.
10
- 4. **Real-time Prices**: NEVER guess or estimate prices. ALWAYS run `jv price --symbol JBTC --pretty` before any price-dependent operation (opening a position by asset quantity, calculating PnL).
11
- 5. **PPO Auto-Cancellation**: When performing any position operation (reduce, close, add size) WITHOUT `--ppo`, the smart contract automatically cancels existing PPO hedge options. There is NO separate "cancel PPO" command. NEVER attempt a separate cancellation — it risks unintended position closures.
12
- 6. **Standalone PPO Protection**: To add hedge protection to an **existing position**, use `jv order protect --order-id <id> --symbol <symbol>`. Do NOT use `jv order create --ppo` for this — that command ADDS POSITION SIZE. `jv order create --ppo` is ONLY for opening new positions or adding size with protection. See [references/trading.md](references/trading.md) for details.
13
- 7. **Market Order Output**: `jv order create` (market) prints TWO JSON lines first the submission, then the execution result (auto-waits up to 60s). If `status === "completed"`, the order IS executed. Do NOT retry or place another order. See [references/trading.md](references/trading.md).
14
- 8. **Deposit via Browser**: `jv deposit` auto-detects signing mode. Without `PRIVATE_KEY`, it creates a hosted web session — the user opens the URL in their browser to approve the deposit. See [references/onboarding.md](references/onboarding.md).
15
-
16
- ## Activation Behavior
17
-
18
- 1. Check if vault is initialized: `jv orders list --pretty`
19
- 2. If the command fails (exit code 1, or errors like "delegation key not found" / "vault not initialized" / "no profile"):
20
- - Tell the user: "Your vault is not initialized yet. Let me set it up — you'll sign in your browser, no private key needed."
21
- - Immediately run `jv vault setup`.
22
- - Follow the URL display instructions in [references/onboarding.md](references/onboarding.md).
23
- 3. If the command succeeds vault is ready. Proceed with the user's request.
24
-
25
- ## Intent Command Reference
26
-
27
- | User Intent | Command | Details |
28
- |-------------|---------|---------|
29
- | Initialize / connect wallet | `jv vault setup` | [references/onboarding.md](references/onboarding.md) |
30
- | Deposit tokens from Base | `jv deposit --token <T> --amount <N>` | [references/onboarding.md](references/onboarding.md) |
31
- | Get current price | `jv price --symbol JBTC --pretty` | [references/queries.md](references/queries.md) |
32
- | Open position (market) | `jv order create --side long/short -m <usdc> --symbol JBTC` | [references/trading.md](references/trading.md) |
33
- | Open position (limit) | `jv order create ... --limit-price <N>` | [references/trading.md](references/trading.md) |
34
- | Reduce / close position | opposite-side `jv order create` | [references/trading.md](references/trading.md) |
35
- | Add size to position | same-side `jv order create` | [references/trading.md](references/trading.md) |
36
- | Set take-profit | `jv tp set --order-id <ID> --price <P> --symbol <S>` | [references/trading.md](references/trading.md) |
37
- | Set stop-loss | `jv sl set --order-id <ID> --price <P> --symbol <S>` | [references/trading.md](references/trading.md) |
38
- | Add PPO to existing position | `jv order protect --order-id <id> --symbol <S>` | [references/trading.md](references/trading.md) |
39
- | Open/add-size with PPO | add `--ppo` to `jv order create` | [references/trading.md](references/trading.md) |
40
- | Cancel PPO / remove hedge | order without `--ppo` (auto-cancels) | [references/trading.md](references/trading.md) |
41
- | Query positions / portfolio | `jv orders list --pretty` | [references/queries.md](references/queries.md) |
42
- | Get specific position | `jv orders get <orderId> --pretty` | [references/queries.md](references/queries.md) |
43
- | Portfolio statistics | `jv orders stats --pretty` | [references/queries.md](references/queries.md) |
44
- | Job execution status | `jv job status <jobId> --pretty` | [references/queries.md](references/queries.md) |
45
- | Manage limit orders | `jv limit-order list/status/cancel` | [references/queries.md](references/queries.md) |
3
+ Trade perpetual contracts on JasperVault. All operations use `jasper-vault` MCP tools no shell commands, no private keys.
4
+
5
+ ## CRITICAL RULES
6
+
7
+ 1. **MCP tools ONLY.** Never run `jv` shell commands. Never use Bash/terminal to execute CLI commands. The MCP server handles everything timeouts, polling, error recovery. Shell commands will be killed by timeouts on long-running operations.
8
+
9
+ 2. **Never ask for private keys.** The system uses a delegation wallet. `wallet_setup` creates and saves it automatically. If you find yourself thinking "the user needs a private key" STOP. That thought is wrong. The delegation key is auto-generated and stored locally. The user never sees or touches it.
10
+
11
+ 3. **`wallet_setup` success = fully initialized.** After `wallet_setup` returns success, the vault IS ready. You can immediately call `list_orders`, `create_order`, `get_price`, or any other tool. There is no "second step" or "additional initialization". One setup, everything works.
12
+
13
+ 4. **Browser signing flow.** `wallet_setup`, `deposit_via_browser`, and `withdraw_via_browser` return a `url` field. Display it as a **clickable link** with the expiry info. The tool polls automatically (up to 16 minutes) and returns the result. Don't tell the user to run anything else while waiting.
14
+
15
+ 5. **Real-time prices.** Always call `get_price` before any price-dependent operation (opening positions, setting TP/SL). Never guess or remember old prices.
16
+
17
+ ## Getting Started
18
+
19
+ When the user wants to trade, first check if their vault is ready:
20
+
21
+ 1. Call `list_orders` (no parameters needed).
22
+ 2. **If it succeeds** vault is initialized, proceed with the user's request.
23
+ 3. **If it fails** with "delegation key not found" / "vault not initialized" / "no profile" vault needs setup:
24
+ - Call `wallet_setup`
25
+ - Display the returned URL as a clickable link
26
+ - Wait for the tool to return success
27
+ - Then proceed the vault is now fully ready
28
+
29
+ **After `wallet_setup` succeeds, ALL tools work immediately.** Do not ask for private keys. Do not suggest additional setup steps. Do not say "CLI needs initialization". Just start using the tools.
30
+
31
+ ## Intent MCP Tool
32
+
33
+ | User Intent | MCP Tool | Required Params | Reference |
34
+ |---|---|---|---|
35
+ | Initialize wallet | `wallet_setup` | | [onboarding](references/onboarding.md) |
36
+ | Deposit tokens | `deposit_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
37
+ | Withdraw tokens | `withdraw_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
38
+ | Get price | `get_price` | `symbol` | [queries](references/queries.md) |
39
+ | Open position (market) | `create_order` | `side`, `symbol`, `margin` | [trading](references/trading.md) |
40
+ | Open position (limit) | `create_order` | + `limit_price` | [trading](references/trading.md) |
41
+ | Close/reduce position | `create_order` | opposite `side` | [trading](references/trading.md) |
42
+ | Add size | `create_order` | same `side` | [trading](references/trading.md) |
43
+ | Set take-profit | `set_take_profit` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
44
+ | Set stop-loss | `set_stop_loss` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
45
+ | Add PPO hedge | `protect_order` | `order_id`, `symbol` | [trading](references/trading.md) |
46
+ | Open with PPO | `create_order` | + `ppo: true` | [trading](references/trading.md) |
47
+ | List positions | `list_orders` | — | [queries](references/queries.md) |
48
+ | Get position detail | `get_order` | `order_id` | [queries](references/queries.md) |
49
+ | Portfolio stats | `get_order_stats` | — | [queries](references/queries.md) |
50
+ | Check job status | `get_job_status` | `job_id` | [queries](references/queries.md) |
51
+ | List limit orders | `list_limit_orders` | `wallet` | [queries](references/queries.md) |
52
+ | Cancel limit order | `cancel_limit_order` | `limit_order_id` | [queries](references/queries.md) |
53
+
54
+ ## Key Behaviors
55
+
56
+ **Market orders** (no `limit_price`): The tool auto-waits up to 60s for on-chain confirmation. If `status === "completed"`, the order IS executed — don't retry. Use `list_orders` to see the position with human-readable fields.
57
+
58
+ **Limit orders** (`limit_price` set): Returns immediately with `limitOrderId`. The order waits for price to trigger.
59
+
60
+ **PPO auto-cancellation**: The contract automatically cancels existing PPO when you execute any position operation without `ppo: true`. There is no "cancel PPO" tool.
61
+
62
+ **Standalone PPO**: Use `protect_order` to add hedge to an existing position. Don't use `create_order` with `ppo: true` for this — that changes position size.
63
+
64
+ **Deposit arrival**: If `arrived: false` after deposit completes, tokens are still bridging cross-chain. Tell the user to wait a few minutes.
65
+
66
+ ## Red Flags — STOP If You Think This
67
+
68
+ | Wrong Thought | Reality |
69
+ |---|---|
70
+ | "User needs to provide a private key" | NEVER. Delegation key is auto-generated by `wallet_setup`. |
71
+ | "I should run `jv` in the terminal" | NEVER. Use MCP tools only. |
72
+ | "Vault setup completed but CLI needs separate init" | WRONG. `wallet_setup` does everything in one step. |
73
+ | "I need to set environment variables" | WRONG. MCP tools handle all config internally. |
74
+ | "GraphQL queries need private key authentication" | WRONG. Delegation key handles auth automatically. |
75
+ | "I should suggest the web interface instead" | NO. MCP tools give you full functionality. Use them. |
76
+ | "Let me check if jv is installed" | IRRELEVANT. MCP server runs CLI internally. |
46
77
 
47
78
  ## Security
48
79
 
49
80
  - Never log or display private keys, signatures, or API keys.
50
- - The CLI signs orders via the delegation wallet in `~/.jaspervault/keys.json`.
51
- - Do NOT ask the user to set `PRIVATE_KEY`.
81
+ - Delegation wallet is stored in `~/.jaspervault/keys.json` — never read or display this file.
82
+ - Never ask the user to set `PRIVATE_KEY` — that's for CI/automation only.
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  name: jasper-vault-cli
3
- description: "Trade perpetual contracts (perps) on JasperVault open/close positions, set TP/SL, manage limit orders, deposit, and query portfolio via the `jv` CLI. Initialize wallet via hosted web page (no private key needed)."
3
+ description: "Use when the user mentions JasperVault, perps trading, perpetual contracts, opening/closing positions, setting take-profit or stop-loss, depositing or withdrawing crypto, checking portfolio or positions, PPO hedge options, or wallet setup. Covers all trading operations via jasper-vault MCP tools no private keys needed."
4
4
  ---
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: jasper-vault-cli
3
- description: "Trade perpetual contracts (perps) on JasperVault open/close positions, set TP/SL, manage limit orders, deposit, and query portfolio via the `jv` CLI. Initialize wallet via hosted web page (no private key needed)."
4
- trigger: "jaspervault|jasper vault|jasper trading|jv|jv trade|jv order|在jasper交易|jasper 交易|初始化钱包|连接钱包|开仓|平仓|做多|做空|止盈|止损|查看持仓|永续合约"
5
- tools: [shell, process]
3
+ description: "Use when the user mentions JasperVault, perps trading, perpetual contracts, opening/closing positions, setting take-profit or stop-loss, depositing or withdrawing crypto, checking portfolio or positions, PPO hedge options, or wallet setup. Covers all trading operations via jasper-vault MCP tools no private keys needed."
4
+ trigger: "jaspervault|jasper vault|jasper trading|jv|jv trade|jv order|在jasper交易|jasper 交易|初始化钱包|连接钱包|开仓|平仓|做多|做空|止盈|止损|查看持仓|永续合约|充值|提款|存款|deposit|withdraw|price|行情|对冲|PPO|hedge"
5
+ tools: [mcp]
6
6
  metadata:
7
7
  openclaw:
8
8
  requires:
@@ -1,107 +1,89 @@
1
1
  # Onboarding Reference
2
2
 
3
- ## 1. Wallet Initialization (`jv vault setup`)
3
+ > All tools below are MCP tools. Call them directly — never run `jv` shell commands.
4
4
 
5
- Initialize the JasperVault delegation wallet via hosted web page. The user signs in their browser no private key needed.
5
+ ## 1. Wallet Initialization`wallet_setup`
6
6
 
7
- ### Syntax
7
+ Initialize the JasperVault delegation wallet. The user signs in their browser — no private key needed.
8
8
 
9
+ ### Parameters
10
+
11
+ | Parameter | Required | Default | Description |
12
+ |-----------|----------|---------|-------------|
13
+ | `network` | No | `jaspervault` | Network name |
14
+ | `vault_types` | No | `33,37` | Comma-separated vault types |
15
+
16
+ ### Flow
17
+
18
+ 1. Call `wallet_setup` (no parameters needed for default setup).
19
+ 2. The tool returns JSON with a `url` field — display it as a **clickable link** to the user.
20
+ 3. The user opens the URL in their browser, connects their wallet (MetaMask, Rabby, etc.), and signs the delegation authorization.
21
+ 4. The tool polls automatically (up to 16 minutes) and returns the final result.
22
+
23
+ ### Success Response
24
+
25
+ ```json
26
+ {
27
+ "success": true,
28
+ "walletAddress": "0x...",
29
+ "delegationAddress": "0x...",
30
+ "marginAccount": "0x...",
31
+ "vaults": [{"type": 33, "address": "0x..."}, {"type": 37, "address": "0x..."}]
32
+ }
9
33
  ```
10
- jv vault setup [--network <name>] [--vault-types <types>] [--timeout <seconds>] [--pretty]
11
- ```
12
34
 
13
- ### Options
14
-
15
- | Option | Required | Default | Description |
16
- |--------|----------|---------|-------------|
17
- | `--network <name>` | No | `base_uat` | Network name |
18
- | `--vault-types <types>` | No | `33,37` | Comma-separated vault types |
19
- | `--timeout <seconds>` | No | `900` | Polling timeout |
20
- | `--pretty` | No | | Pretty-print JSON output |
21
-
22
- ### Step-by-Step Flow
23
-
24
- 1. Run the command:
25
- ```
26
- jv vault setup --pretty
27
- ```
28
-
29
- 2. The **first JSON output** contains the session URL:
30
- ```json
31
- {
32
- "status": "session_created",
33
- "sessionId": "abc123",
34
- "url": "https://trading.jaspervault.pro/cli-session/abc123",
35
- "message": "Open this URL in your browser to connect wallet and complete setup"
36
- }
37
- ```
38
- **You MUST display this `url` as a clickable link** so the user can open it in their browser to connect their wallet (e.g., MetaMask, Rabby) and sign the delegation authorization.
39
-
40
- 3. The CLI **automatically polls** for completion. While waiting, heartbeat lines appear on stderr.
41
-
42
- 4. On success, the output includes:
43
- ```json
44
- {
45
- "success": true,
46
- "walletAddress": "0x...",
47
- "delegationAddress": "0x...",
48
- "marginAccount": "0x...",
49
- "vaults": [{"type": 33, "address": "0x..."}, {"type": 37, "address": "0x..."}]
50
- }
51
- ```
52
-
53
- 5. The CLI automatically:
54
- - Generates and saves a delegation key to `~/.jaspervault/keys.json`
55
- - Saves the vault profile to `~/.jaspervault/profile.json`
35
+ ### What Happens on Success
36
+
37
+ The tool automatically:
38
+ - Generates a delegation key and saves it to `~/.jaspervault/keys.json`
39
+ - Saves the vault profile (EOA, delegation address, vault addresses) to `~/.jaspervault/profile.json`
40
+ - Creates vaults on-chain
41
+
42
+ **After this, ALL tools work immediately.** You can call `list_orders`, `create_order`, `get_price`, or any other tool right away. There is no second initialization step. Do NOT ask for private keys, wallet addresses, or environment variables.
56
43
 
57
44
  ### Error Handling
58
45
 
59
46
  | Error | Cause | Action |
60
47
  |-------|-------|--------|
61
- | `Session expired/failed` | User didn't complete signing in time | Re-run `jv vault setup` |
62
- | `Failed to create session` | Network/API issue | Check internet connection, retry |
48
+ | Session expired/failed | User didn't sign in time | Call `wallet_setup` again |
49
+ | Failed to create session | Network/API issue | Retry |
63
50
 
64
- ### Important Notes
51
+ ### Common Mistakes — DO NOT DO THESE
65
52
 
66
- - **NEVER suggest `jv vault init`** — that requires a `PRIVATE_KEY` environment variable and is for advanced/CI use only.
67
- - If error messages mention "Run `jv vault init`", ignore that and use `jv vault setup` instead.
68
- - The delegation key has a 1-week expiry. If commands start failing after a week, re-run `jv vault setup`.
53
+ | Mistake | Why It's Wrong |
54
+ |---------|---------------|
55
+ | Asking user for private key after setup | Delegation key is auto-generated. User never provides keys. |
56
+ | Saying "profile.json is empty" | `wallet_setup` saves profile automatically on success. |
57
+ | Suggesting `vault init` | That's for CI/automation with PRIVATE_KEY env var. Never suggest it. |
58
+ | Saying "CLI needs separate initialization" | `wallet_setup` IS the initialization. One step, fully done. |
59
+ | Running `jv orders list` in terminal | Use `list_orders` MCP tool instead. |
69
60
 
70
- ---
61
+ ### Delegation Key Expiry
71
62
 
72
- ## 2. Deposit Tokens (`jv deposit`)
63
+ The delegation key expires after 1 week. If tools start failing with auth errors after working previously, call `wallet_setup` again to re-authorize.
73
64
 
74
- Deposit tokens from Base network to JasperVault via Hyperlane warp routes.
65
+ ---
75
66
 
76
- ### Syntax
67
+ ## 2. Deposit Tokens — `deposit_via_browser`
77
68
 
78
- ```
79
- jv deposit --token <token> --amount <amount> [--vault-index <n>] [--network <name>] [--timeout <seconds>] [--no-wait] [--pretty]
80
- ```
69
+ Deposit tokens from Base network to JasperVault via Hyperlane warp routes.
81
70
 
82
- ### Options
71
+ ### Parameters
83
72
 
84
- | Option | Required | Default | Description |
85
- |--------|----------|---------|-------------|
86
- | `--token <token>` | Yes | — | Token to deposit: `jbtc`, `jusdc`, `cbbtc`, or `usdc` |
87
- | `--amount <amount>` | Yes | — | Amount in human-readable units (e.g., `0.01` for BTC, `1000` for USDC) |
88
- | `--vault-index <n>` | No | `1` | Vault index for recipient address derivation |
89
- | `--network <name>` | No | `jaspervault` | Network name |
90
- | `--timeout <seconds>` | No | `900` | Polling timeout |
91
- | `--no-wait` | No | — | Skip polling for arrival on JasperVault |
92
- | `--pretty` | No | — | Pretty-print JSON output |
73
+ | Parameter | Required | Default | Description |
74
+ |-----------|----------|---------|-------------|
75
+ | `token` | Yes | — | Token: `jbtc`, `jusdc`, `cbbtc`, or `usdc` |
76
+ | `amount` | Yes | — | Amount in human-readable units (e.g., `0.01` for BTC, `1000` for USDC) |
77
+ | `network` | No | `jaspervault` | Network name |
93
78
 
94
79
  ### Flow
95
80
 
96
- Without `PRIVATE_KEY`, the CLI creates a hosted web session:
97
- 1. It outputs a session URL — display it to the user.
98
- 2. The user opens the URL in their browser to approve the deposit.
99
- 3. The CLI polls until the transaction is confirmed.
100
- 4. Unless `--no-wait`, it then polls for token arrival on JasperVault (up to 60s).
81
+ 1. Call `deposit_via_browser` with `token` and `amount`.
82
+ 2. The tool returns JSON with a `url` field — display it as a **clickable link**.
83
+ 3. The user opens the URL in their browser to approve the deposit.
84
+ 4. The tool polls until the transaction is confirmed (up to 16 minutes).
101
85
 
102
- With `PRIVATE_KEY` set, it signs and sends directly (no browser needed).
103
-
104
- ### Output
86
+ ### Success Response
105
87
 
106
88
  ```json
107
89
  {
@@ -115,10 +97,27 @@ With `PRIVATE_KEY` set, it signs and sends directly (no browser needed).
115
97
  }
116
98
  ```
117
99
 
118
- ### Important Notes
100
+ ### Important
101
+
102
+ - Token names are lowercase: `jbtc`, `jusdc`, `cbbtc`, `usdc`.
103
+ - Amount is human-readable (e.g., `0.01` BTC, `1000` USDC) — the tool handles decimal conversion.
104
+ - Tokens are bridged cross-chain from Base to JasperVault via Hyperlane.
105
+ - If `arrived` is `false`, tokens may still be in transit. Tell the user to wait a few minutes.
106
+
107
+ ---
108
+
109
+ ## 3. Withdraw Tokens — `withdraw_via_browser`
110
+
111
+ Withdraw tokens from JasperVault back to Base.
112
+
113
+ ### Parameters
114
+
115
+ | Parameter | Required | Default | Description |
116
+ |-----------|----------|---------|-------------|
117
+ | `token` | Yes | — | Token: `jbtc`, `jusdc`, `cbbtc`, or `usdc` |
118
+ | `amount` | Yes | — | Amount in human-readable units |
119
+ | `network` | No | `base_uat` | Network name |
120
+
121
+ ### Flow
119
122
 
120
- - **Browser signing**: Without `PRIVATE_KEY`, the deposit command creates a hosted web session. When you see the `url` output, display it as a clickable link.
121
- - **Token names**: Use lowercase: `jbtc`, `jusdc`, `cbbtc`, `usdc`.
122
- - **Amount format**: Human-readable (e.g., `0.01` BTC, `1000` USDC). The CLI handles decimal conversion.
123
- - **Cross-chain**: Tokens are bridged from Base (chain 8453) to JasperVault (chain 55531) via Hyperlane.
124
- - If `arrived` is `false`, the tokens may still be in transit. Tell the user to wait a few minutes and check their balance.
123
+ Same browser-signing flow as deposit call the tool, display the URL, wait for completion.