jaspervault_cli 1.0.29 → 1.0.31
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/README.md +48 -80
- package/dist/src/commands/vault.js +29 -16
- package/dist/src/commands/vault.js.map +1 -1
- package/dist/src/mcp/tools.js +4 -1
- package/dist/src/mcp/tools.js.map +1 -1
- package/dist/src/templates/skill-body.d.ts +0 -1
- package/dist/src/templates/skill-body.js +0 -2
- package/dist/src/templates/skill-body.js.map +1 -1
- package/dist/src/templates/skill-content/SKILL.core.md +83 -25
- package/dist/src/templates/skill-content/frontmatter/claude.md +1 -1
- package/dist/src/templates/skill-content/frontmatter/openclaw.md +2 -2
- package/dist/src/templates/skill-content/references/onboarding.md +24 -6
- package/dist/src/templates/skill-content/references/queries.md +14 -1
- package/dist/src/templates/skill-content/references/trading.md +34 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,135 +1,103 @@
|
|
|
1
1
|
# JasperVault CLI
|
|
2
2
|
|
|
3
|
-
Trade perpetuals on JasperVault through AI
|
|
3
|
+
Trade perpetuals on JasperVault through your AI assistant. Install the CLI, connect your AI platform, and start trading with natural language — no terminal commands needed.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
9
|
-
### 1. Install
|
|
9
|
+
### 1. Install
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
npm install -g jaspervault_cli
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### 2. Connect to Your AI
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
jv --
|
|
18
|
+
jv install --ai claude # Claude Code
|
|
19
|
+
jv install --ai cursor # Cursor
|
|
20
|
+
jv install --ai openclaw # OpenClaw
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
This registers the JasperVault MCP server (or skill) so your AI assistant can trade on your behalf.
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
jv install --ai openclaw
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
This installs the trading skill/MCP configuration for your chosen platform. For OpenClaw it writes to `~/.openclaw/skills/jasper-vault-cli/SKILL.md`; for Cursor and Claude Code it configures the MCP server.
|
|
28
|
-
|
|
29
|
-
> To overwrite an existing installation, add `--force`:
|
|
30
|
-
> ```bash
|
|
31
|
-
> jv install --ai openclaw --force
|
|
32
|
-
> ```
|
|
25
|
+
> Add `--force` to overwrite an existing installation.
|
|
33
26
|
|
|
34
|
-
### 3.
|
|
27
|
+
### 3. Start Trading
|
|
35
28
|
|
|
36
|
-
|
|
29
|
+
Open your AI assistant and talk:
|
|
37
30
|
|
|
38
|
-
>
|
|
31
|
+
> "Open a long BTC position with 100 USDC"
|
|
39
32
|
|
|
40
|
-
|
|
33
|
+
That's it. The AI handles everything through MCP tools — wallet setup, order placement, position management.
|
|
41
34
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
jv vault setup --network jaspervault --pretty
|
|
46
|
-
```
|
|
35
|
+
---
|
|
47
36
|
|
|
48
|
-
|
|
37
|
+
## What You Can Do
|
|
49
38
|
|
|
50
|
-
Just
|
|
39
|
+
Just tell your AI assistant what you want:
|
|
51
40
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
| Say this | What happens |
|
|
42
|
+
|----------|-------------|
|
|
43
|
+
| "I want to start trading" | Sets up your wallet (one-time, browser signing) |
|
|
44
|
+
| "Open a long BTC position with 100 USDC" | Opens a market long on JBTC |
|
|
45
|
+
| "Go short ETH with 50 USDC at 3800" | Places a limit short on JETH |
|
|
46
|
+
| "Close my BTC position" | Queries your position, then closes it |
|
|
47
|
+
| "Set take-profit at 110000 for order 99" | Places a TP limit order |
|
|
48
|
+
| "Set stop-loss at 60000 for order 99" | Places a SL limit order |
|
|
49
|
+
| "Show my positions" | Lists all active positions |
|
|
50
|
+
| "What's the current BTC price?" | Fetches real-time price |
|
|
51
|
+
| "Deposit 500 USDC" | Opens browser to approve deposit |
|
|
52
|
+
| "Withdraw 100 USDC" | Opens browser to sign withdrawal |
|
|
53
|
+
| "Add PPO protection to order 42" | Adds hedge option to existing position |
|
|
55
54
|
|
|
56
55
|
---
|
|
57
56
|
|
|
58
|
-
##
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
jv install --ai openclaw # OpenClaw
|
|
62
|
-
jv install --ai cursor # Cursor (current project)
|
|
63
|
-
jv install --ai cursor --global # Cursor (user-level)
|
|
64
|
-
jv install --ai claude # Claude Code (current project)
|
|
65
|
-
jv install --ai claude --global # Claude Code (user-level)
|
|
66
|
-
jv install # All platforms (global)
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Options:
|
|
70
|
-
- `--ai <platform>` — Target a specific platform (`openclaw`, `cursor`, `claude`)
|
|
71
|
-
- `--global` — Install to user home instead of current project (cursor/claude only)
|
|
72
|
-
- `--force` — Overwrite existing installation without prompting
|
|
57
|
+
## Platform Setup
|
|
73
58
|
|
|
74
|
-
|
|
59
|
+
| Platform | Command | What it does |
|
|
60
|
+
|----------|---------|-------------|
|
|
61
|
+
| Claude Code | `jv install --ai claude` | Configures MCP server (project-level) |
|
|
62
|
+
| Claude Code (global) | `jv install --ai claude --global` | Configures MCP server (user-level) |
|
|
63
|
+
| Cursor | `jv install --ai cursor` | Configures MCP server (project-level) |
|
|
64
|
+
| Cursor (global) | `jv install --ai cursor --global` | Configures MCP server (user-level) |
|
|
65
|
+
| OpenClaw | `jv install --ai openclaw` | Installs trading skill |
|
|
66
|
+
| All platforms | `jv install` | Installs to all platforms (global) |
|
|
75
67
|
|
|
76
68
|
---
|
|
77
69
|
|
|
78
70
|
## Configuration
|
|
79
71
|
|
|
80
|
-
All configuration is
|
|
72
|
+
All configuration is via environment variables. **No configuration is needed for most users** — the CLI connects to the JasperVault test environment by default.
|
|
81
73
|
|
|
82
74
|
| Variable | Required | Description | Default |
|
|
83
75
|
|----------|----------|-------------|---------|
|
|
84
76
|
| `JV_API_URL` | No | Trading API base URL | `https://trading-api-test.jaspervault.pro` |
|
|
85
77
|
| `JV_API_KEY` | No | Bearer token for API authentication | — |
|
|
86
78
|
| `JV_TIMEOUT` | No | Request timeout in ms | `30000` |
|
|
87
|
-
| `JV_DELEGATION_KEY` | No | Delegation wallet private key override
|
|
88
|
-
| `JV_BASE_RPC_URL` | No | Base chain RPC URL override
|
|
79
|
+
| `JV_DELEGATION_KEY` | No | Delegation wallet private key override | from `~/.jaspervault/keys.json` |
|
|
80
|
+
| `JV_BASE_RPC_URL` | No | Base chain RPC URL override | built-in |
|
|
89
81
|
| `JV_JASPERVAULT_RPC_URL` | No | JasperVault chain RPC URL override | built-in |
|
|
90
82
|
| `JV_SUBGRAPH_URL` | No | Subgraph endpoint override | built-in per network |
|
|
91
|
-
| `PRIVATE_KEY` | No | EOA wallet private key
|
|
83
|
+
| `PRIVATE_KEY` | No | EOA wallet private key (CI/automation only) | — |
|
|
92
84
|
|
|
93
|
-
###
|
|
85
|
+
### How Credentials Work
|
|
94
86
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
export JV_API_URL=https://your-api-endpoint.example.com
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Then restart your terminal or run `source ~/.zshrc`.
|
|
102
|
-
|
|
103
|
-
### How Credentials Are Stored
|
|
104
|
-
|
|
105
|
-
After the first successful `jv vault init` or `jv vault setup`, the delegation wallet is saved to `~/.jaspervault/keys.json` and your vault profile to `~/.jaspervault/profile.json`. The CLI reads these automatically — no manual configuration needed for subsequent operations.
|
|
87
|
+
After the first wallet setup (triggered by your AI or manually via `jv vault setup`), the delegation wallet is saved to `~/.jaspervault/keys.json` and your vault profile to `~/.jaspervault/profile.json`. Everything is automatic after that.
|
|
106
88
|
|
|
107
89
|
---
|
|
108
90
|
|
|
109
|
-
##
|
|
110
|
-
|
|
111
|
-
To deposit tokens from Base to JasperVault, tell your AI assistant:
|
|
91
|
+
## CLI Reference
|
|
112
92
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
Or run it directly:
|
|
93
|
+
For advanced users who prefer the terminal:
|
|
116
94
|
|
|
117
95
|
```bash
|
|
118
|
-
jv
|
|
96
|
+
jv --help
|
|
119
97
|
```
|
|
120
98
|
|
|
121
|
-
|
|
122
|
-
-
|
|
123
|
-
- **No `PRIVATE_KEY`** → opens a hosted web page in your browser to approve the transaction
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Full Command Reference
|
|
128
|
-
|
|
129
|
-
For a complete list of available commands and trading examples, see the documentation:
|
|
130
|
-
|
|
131
|
-
- [User Guide](docs/USER_GUIDE.md) — Full CLI reference including all commands and options
|
|
132
|
-
- [OpenClaw Setup Guide](docs/OPENCLAW_GUIDE.md) — Detailed walkthrough for OpenClaw users
|
|
99
|
+
- [User Guide](docs/USER_GUIDE.md) — Full CLI command reference
|
|
100
|
+
- [OpenClaw Guide](docs/OPENCLAW_GUIDE.md) — Detailed OpenClaw setup walkthrough
|
|
133
101
|
|
|
134
102
|
---
|
|
135
103
|
|
|
@@ -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
|
-
|
|
152
|
-
const
|
|
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
|
|
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:
|
|
160
|
-
verifyingContract:
|
|
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
|
-
|
|
181
|
-
|
|
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:
|
|
189
|
-
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
|
-
|
|
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(
|
|
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,
|
|
245
|
+
saveDelegationKey(delegationKey, delegationAddress, 'jaspervault');
|
|
234
246
|
}
|
|
235
|
-
|
|
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:
|
|
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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"}
|
package/dist/src/mcp/tools.js
CHANGED
|
@@ -3,7 +3,10 @@ export const TOOLS = [
|
|
|
3
3
|
{
|
|
4
4
|
name: 'create_order',
|
|
5
5
|
description: 'Create a market or limit order. For market orders, omit limit_price. ' +
|
|
6
|
-
'
|
|
6
|
+
'CLOSING A POSITION: You MUST first call list_orders to find the current position side and margin. ' +
|
|
7
|
+
'Then create an order with the OPPOSITE side and the SAME margin for full close (or smaller margin for partial close). ' +
|
|
8
|
+
'Example: position is LONG 60 USDC on JBTC → close with { side: "short", symbol: "JBTC", margin: 60 }. ' +
|
|
9
|
+
'NEVER close without querying the position first. ' +
|
|
7
10
|
'Returns jobId (market) or limitOrderId (limit).',
|
|
8
11
|
inputSchema: {
|
|
9
12
|
type: 'object',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,KAAK,GAAc;IAC9B,gBAAgB;IAChB;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,uEAAuE;YACvE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.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
|
|
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,58 +1,116 @@
|
|
|
1
1
|
# JasperVault Trading Skill
|
|
2
2
|
|
|
3
|
-
Trade perpetual contracts on JasperVault
|
|
3
|
+
Trade perpetual contracts on JasperVault. All operations use `jasper-vault` MCP tools — no shell commands, no private keys.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## CRITICAL RULES
|
|
6
6
|
|
|
7
|
-
|
|
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
8
|
|
|
9
|
-
|
|
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
10
|
|
|
11
|
-
|
|
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
12
|
|
|
13
|
-
|
|
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
14
|
|
|
15
|
-
|
|
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
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
5. **Market order result**: `create_order` (without `limit_price`) auto-waits up to 60s for the on-chain result. If `status === "completed"`, the order is executed — don't retry or place another order. The `operation` field contains raw on-chain data in wei — don't interpret it. Use `list_orders` to verify the actual position with human-readable fields.
|
|
17
|
+
## Getting Started
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
When the user wants to trade, first check if their vault is ready:
|
|
22
20
|
|
|
23
|
-
|
|
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
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
- Tell the user their vault needs initialization — they'll sign in their browser, no private key needed.
|
|
27
|
-
- Call `wallet_setup` and display the returned URL as a clickable link.
|
|
28
|
-
- Wait for the tool to return success, then proceed.
|
|
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.
|
|
29
30
|
|
|
30
|
-
## Intent → MCP Tool
|
|
31
|
+
## Intent → MCP Tool
|
|
31
32
|
|
|
32
|
-
| User Intent | MCP Tool |
|
|
33
|
-
|
|
33
|
+
| User Intent | MCP Tool | Required Params | Reference |
|
|
34
|
+
|---|---|---|---|
|
|
34
35
|
| Initialize wallet | `wallet_setup` | — | [onboarding](references/onboarding.md) |
|
|
35
36
|
| Deposit tokens | `deposit_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
|
|
36
37
|
| Withdraw tokens | `withdraw_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
|
|
37
|
-
| Get
|
|
38
|
+
| Get price | `get_price` | `symbol` | [queries](references/queries.md) |
|
|
38
39
|
| Open position (market) | `create_order` | `side`, `symbol`, `margin` | [trading](references/trading.md) |
|
|
39
40
|
| Open position (limit) | `create_order` | + `limit_price` | [trading](references/trading.md) |
|
|
40
|
-
| Close position | `create_order` | opposite `side` | [trading](references/trading.md) |
|
|
41
|
+
| Close/reduce position | `create_order` | opposite `side` | [trading](references/trading.md) |
|
|
41
42
|
| Add size | `create_order` | same `side` | [trading](references/trading.md) |
|
|
42
43
|
| Set take-profit | `set_take_profit` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
|
|
43
44
|
| Set stop-loss | `set_stop_loss` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
|
|
44
|
-
| Add PPO
|
|
45
|
+
| Add PPO hedge | `protect_order` | `order_id`, `symbol` | [trading](references/trading.md) |
|
|
45
46
|
| Open with PPO | `create_order` | + `ppo: true` | [trading](references/trading.md) |
|
|
46
|
-
| Remove hedge | `create_order` | without `ppo` | [trading](references/trading.md) |
|
|
47
47
|
| List positions | `list_orders` | — | [queries](references/queries.md) |
|
|
48
48
|
| Get position detail | `get_order` | `order_id` | [queries](references/queries.md) |
|
|
49
49
|
| Portfolio stats | `get_order_stats` | — | [queries](references/queries.md) |
|
|
50
|
-
|
|
|
50
|
+
| Check job status | `get_job_status` | `job_id` | [queries](references/queries.md) |
|
|
51
51
|
| List limit orders | `list_limit_orders` | `wallet` | [queries](references/queries.md) |
|
|
52
52
|
| Cancel limit order | `cancel_limit_order` | `limit_order_id` | [queries](references/queries.md) |
|
|
53
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
|
+
## Closing a Position — MANDATORY STEPS
|
|
67
|
+
|
|
68
|
+
Closing a position is the most error-prone operation. Follow these steps exactly:
|
|
69
|
+
|
|
70
|
+
### Step 1: Query the current position
|
|
71
|
+
Call `list_orders` (or `get_order` if you have the order ID) to get:
|
|
72
|
+
- The position **side** (LONG or SHORT)
|
|
73
|
+
- The position **margin** amount
|
|
74
|
+
- The **symbol**
|
|
75
|
+
|
|
76
|
+
### Step 2: Create the closing order
|
|
77
|
+
Call `create_order` with:
|
|
78
|
+
- **side**: the OPPOSITE of the current position (LONG → `short`, SHORT → `long`)
|
|
79
|
+
- **margin**: the SAME margin for full close, or SMALLER margin for partial close
|
|
80
|
+
- **symbol**: the same symbol
|
|
81
|
+
|
|
82
|
+
### Step 3: Verify
|
|
83
|
+
Call `list_orders` to confirm the position is closed or reduced.
|
|
84
|
+
|
|
85
|
+
### Examples
|
|
86
|
+
|
|
87
|
+
**Full close of a LONG position:**
|
|
88
|
+
1. `list_orders` → finds: side=LONG, margin=60, symbol=JBTC
|
|
89
|
+
2. `create_order` → `{ side: "short", symbol: "JBTC", margin: 60 }`
|
|
90
|
+
3. `list_orders` → position no longer active
|
|
91
|
+
|
|
92
|
+
**Partial close (reduce by half):**
|
|
93
|
+
1. `list_orders` → finds: side=LONG, margin=60, symbol=JBTC
|
|
94
|
+
2. `create_order` → `{ side: "short", symbol: "JBTC", margin: 30 }`
|
|
95
|
+
3. `list_orders` → margin reduced to ~30
|
|
96
|
+
|
|
97
|
+
**NEVER guess the margin or side. ALWAYS query first.**
|
|
98
|
+
|
|
99
|
+
## Red Flags — STOP If You Think This
|
|
100
|
+
|
|
101
|
+
| Wrong Thought | Reality |
|
|
102
|
+
|---|---|
|
|
103
|
+
| "User needs to provide a private key" | NEVER. Delegation key is auto-generated by `wallet_setup`. |
|
|
104
|
+
| "I should run `jv` in the terminal" | NEVER. Use MCP tools only. |
|
|
105
|
+
| "Vault setup completed but CLI needs separate init" | WRONG. `wallet_setup` does everything in one step. |
|
|
106
|
+
| "I need to set environment variables" | WRONG. MCP tools handle all config internally. |
|
|
107
|
+
| "GraphQL queries need private key authentication" | WRONG. Delegation key handles auth automatically. |
|
|
108
|
+
| "I should suggest the web interface instead" | NO. MCP tools give you full functionality. Use them. |
|
|
109
|
+
| "Let me check if jv is installed" | IRRELEVANT. MCP server runs CLI internally. |
|
|
110
|
+
| "I'll close the position without checking current margin" | WRONG. Always call `list_orders` first to get the exact side and margin before closing. |
|
|
111
|
+
|
|
54
112
|
## Security
|
|
55
113
|
|
|
56
114
|
- Never log or display private keys, signatures, or API keys.
|
|
57
|
-
-
|
|
115
|
+
- Delegation wallet is stored in `~/.jaspervault/keys.json` — never read or display this file.
|
|
58
116
|
- 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: "
|
|
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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jasper-vault-cli
|
|
3
|
-
description: "
|
|
4
|
-
trigger: "jaspervault|jasper vault|jasper trading|jv|jv trade|jv order|在jasper交易|jasper
|
|
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
5
|
tools: [mcp]
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Onboarding Reference
|
|
2
2
|
|
|
3
|
+
> All tools below are MCP tools. Call them directly — never run `jv` shell commands.
|
|
4
|
+
|
|
3
5
|
## 1. Wallet Initialization — `wallet_setup`
|
|
4
6
|
|
|
5
7
|
Initialize the JasperVault delegation wallet. The user signs in their browser — no private key needed.
|
|
@@ -30,19 +32,35 @@ Initialize the JasperVault delegation wallet. The user signs in their browser
|
|
|
30
32
|
}
|
|
31
33
|
```
|
|
32
34
|
|
|
33
|
-
|
|
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.
|
|
34
43
|
|
|
35
44
|
### Error Handling
|
|
36
45
|
|
|
37
46
|
| Error | Cause | Action |
|
|
38
47
|
|-------|-------|--------|
|
|
39
|
-
| Session expired/failed | User didn't
|
|
40
|
-
| Failed to create session | Network/API issue |
|
|
48
|
+
| Session expired/failed | User didn't sign in time | Call `wallet_setup` again |
|
|
49
|
+
| Failed to create session | Network/API issue | Retry |
|
|
41
50
|
|
|
42
|
-
###
|
|
51
|
+
### Common Mistakes — DO NOT DO THESE
|
|
52
|
+
|
|
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. |
|
|
60
|
+
|
|
61
|
+
### Delegation Key Expiry
|
|
43
62
|
|
|
44
|
-
|
|
45
|
-
- The delegation key expires after 1 week. If tools start failing, call `wallet_setup` again.
|
|
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.
|
|
46
64
|
|
|
47
65
|
---
|
|
48
66
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Queries Reference
|
|
2
2
|
|
|
3
|
+
> All tools below are MCP tools. Call them directly — never run `jv` shell commands.
|
|
4
|
+
> These tools require no setup beyond `wallet_setup`. No private keys, no environment variables.
|
|
5
|
+
|
|
3
6
|
## 1. List Positions — `list_orders`
|
|
4
7
|
|
|
5
8
|
Query active or historical positions.
|
|
@@ -161,4 +164,14 @@ Check execution status of an async job (market order, option creation, etc.).
|
|
|
161
164
|
|
|
162
165
|
## Error Handling
|
|
163
166
|
|
|
164
|
-
When a tool
|
|
167
|
+
When a tool fails, check the error message:
|
|
168
|
+
|
|
169
|
+
| Error Pattern | Meaning | Action |
|
|
170
|
+
|--------------|---------|--------|
|
|
171
|
+
| "delegation key not found" | Vault not initialized | Call `wallet_setup` |
|
|
172
|
+
| "vault not initialized" | Vault not initialized | Call `wallet_setup` |
|
|
173
|
+
| "no profile" / "profile not found" | Vault not initialized | Call `wallet_setup` |
|
|
174
|
+
| "delegation expired" | Key expired (1 week limit) | Call `wallet_setup` again |
|
|
175
|
+
| Network/timeout errors | Transient issue | Retry the tool call |
|
|
176
|
+
|
|
177
|
+
**NEVER respond to these errors by asking for private keys or suggesting environment variables.** The answer is always `wallet_setup`.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Trading Reference
|
|
2
2
|
|
|
3
|
+
> All tools below are MCP tools. Call them directly — never run `jv` shell commands.
|
|
4
|
+
|
|
3
5
|
## 1. Create Order — `create_order`
|
|
4
6
|
|
|
5
7
|
Open, close, reduce, or add size to perpetual positions.
|
|
@@ -56,6 +58,38 @@ The tool returns the final execution result:
|
|
|
56
58
|
|
|
57
59
|
Tell the user: "Limit order placed. ID: {limitOrderId}."
|
|
58
60
|
|
|
61
|
+
### Closing a Position — MANDATORY STEPS
|
|
62
|
+
|
|
63
|
+
Closing a position means creating a reverse order. You **MUST** query the current position first.
|
|
64
|
+
|
|
65
|
+
**Why query first?** The margin amount must match the current position for a full close. Guessing wrong leads to partial closes or over-allocation.
|
|
66
|
+
|
|
67
|
+
**Required flow:**
|
|
68
|
+
|
|
69
|
+
1. **Query**: Call `list_orders` to find the position. Note the `side` (LONG/SHORT), `margin`, and `symbol`.
|
|
70
|
+
2. **Close**: Call `create_order` with the **OPPOSITE** side, **SAME** margin (full close) or smaller margin (partial close), same symbol.
|
|
71
|
+
3. **Verify**: Call `list_orders` to confirm the position is closed or reduced.
|
|
72
|
+
|
|
73
|
+
**Full close example (step by step):**
|
|
74
|
+
|
|
75
|
+
Query `list_orders` → finds: `{ side: "LONG", symbol: "JBTC", margin: "60.00" }`
|
|
76
|
+
|
|
77
|
+
Close order:
|
|
78
|
+
```json
|
|
79
|
+
{ "side": "short", "symbol": "JBTC", "margin": 60 }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Partial close example:**
|
|
83
|
+
|
|
84
|
+
Query `list_orders` → finds: `{ side: "SHORT", symbol: "JETH", margin: "200.00" }`
|
|
85
|
+
|
|
86
|
+
Reduce by 25%:
|
|
87
|
+
```json
|
|
88
|
+
{ "side": "long", "symbol": "JETH", "margin": 50 }
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**WARNING: NEVER close a position without first calling `list_orders` or `get_order`. Guessing the side or margin leads to incorrect operations.**
|
|
92
|
+
|
|
59
93
|
### Common Patterns
|
|
60
94
|
|
|
61
95
|
**Open a long position (market):**
|