@buildaureon/mcp 0.1.8 → 0.1.10
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/CHANGELOG.md +81 -0
- package/README.md +487 -401
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/docs/agent-guide.md +652 -652
- package/docs/architecture.md +384 -377
- package/docs/auth.md +361 -351
- package/docs/security.md +335 -335
- package/docs/setup.md +406 -347
- package/docs/tools.md +767 -765
- package/examples/claude-desktop.json +11 -11
- package/examples/cursor.hosted.mcp.json +7 -0
- package/examples/cursor.hosted.user.mcp.json +10 -0
- package/examples/cursor.mcp.json +11 -11
- package/package.json +3 -2
package/docs/agent-guide.md
CHANGED
|
@@ -1,652 +1,652 @@
|
|
|
1
|
-
# AUREON MCP Agent Guide
|
|
2
|
-
|
|
3
|
-
Playbooks for AI agents using `@buildaureon/mcp` against the **live** AUREON API.
|
|
4
|
-
|
|
5
|
-
This guide teaches agents how to think, which tools to call, and how to talk honestly about settlement. Pair it with the [tool reference](./tools.md). For typed contracts and error codes, see the **@buildaureon/sdk documentation**.
|
|
6
|
-
|
|
7
|
-
**Surface:** 54 tools ·
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## How agents should think
|
|
12
|
-
|
|
13
|
-
Use a simple loop on every non-trivial request:
|
|
14
|
-
|
|
15
|
-
**Read → Decide → Act.**
|
|
16
|
-
|
|
17
|
-
### 1. Read
|
|
18
|
-
|
|
19
|
-
Gather facts before proposing mutations.
|
|
20
|
-
|
|
21
|
-
Typical read set:
|
|
22
|
-
|
|
23
|
-
- `aureon_ping` — is the live API up?
|
|
24
|
-
- `aureon_me` — which wallet am I acting as?
|
|
25
|
-
- `aureon_sync_portfolio` + `aureon_get_portfolio` — what does the Capital Book say?
|
|
26
|
-
- `aureon_get_vault_status` — can Automatic restores actually fund?
|
|
27
|
-
- `aureon_list_objectives` + `aureon_get_health` — what policy exists and is it breached?
|
|
28
|
-
|
|
29
|
-
### 2. Decide
|
|
30
|
-
|
|
31
|
-
Translate operator intent into a **single** next action (or a short sequenced plan).
|
|
32
|
-
|
|
33
|
-
Decide:
|
|
34
|
-
|
|
35
|
-
- Is the vault empty (restore must 409; return unsigned prepare; do not fund)?
|
|
36
|
-
- Do we create a new Automatic objective?
|
|
37
|
-
- Do we restore an existing breach?
|
|
38
|
-
- Is this only a rehearsal (market event)?
|
|
39
|
-
|
|
40
|
-
Prefer **Automatic** (`automationMode: "auto"`) for agents. Manual mode is for humans who must Approve in the utility.
|
|
41
|
-
|
|
42
|
-
### 3. Act
|
|
43
|
-
|
|
44
|
-
Call the write / prepare / restore tool. Then **read again** to confirm.
|
|
45
|
-
|
|
46
|
-
Never claim success from prepare alone. Never claim on-chain settlement unless the receipt says `settlement: "vault"`.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Trust boundary (memorize this)
|
|
51
|
-
|
|
52
|
-
| Credential | Role |
|
|
53
|
-
| --- | --- |
|
|
54
|
-
| Issued `AUREON_API_KEY` | Product access + wallet identity for control-plane tools |
|
|
55
|
-
| Optional Bearer | Wallet session via nonce → sign → `aureon_verify_wallet` (wins if both present) |
|
|
56
|
-
| Private key | **Outside MCP only** — host signs unsigned vault steps |
|
|
57
|
-
|
|
58
|
-
The MCP server is not a custodian and not a broadcaster. `prepare_*` returns unsigned steps.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Locked fields and defaults
|
|
63
|
-
|
|
64
|
-
| Field | Rule |
|
|
65
|
-
| --- | --- |
|
|
66
|
-
| `automationMode` | Defaults to **`auto`** on create. Locked after create. |
|
|
67
|
-
| `targetSymbol` | Locked after create. Recreate to change the token. |
|
|
68
|
-
| Update patch | Name, weight, tolerance, priority (and related numeric fields) — **not** symbol/mode. |
|
|
69
|
-
|
|
70
|
-
Agents: create Automatic objectives unless the human explicitly asks for Manual.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Settlement types
|
|
75
|
-
|
|
76
|
-
Restore and execution receipts may include:
|
|
77
|
-
|
|
78
|
-
| Value | Meaning | How to describe it |
|
|
79
|
-
| --- | --- | --- |
|
|
80
|
-
| `vault` | On-chain / vault-backed settlement | “Settled on-chain via vault.” |
|
|
81
|
-
| `staged` | Ledger-local / staged settlement | “Staged (not on-chain).” |
|
|
82
|
-
|
|
83
|
-
**Honesty rule:** If the field is missing or unclear, say so. Do not upgrade `staged` to “on-chain” in chat.
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## How to read a Phase 2 receipt
|
|
88
|
-
|
|
89
|
-
After `aureon_restore_objective` or `aureon_run_execution`, inspect the returned receipt:
|
|
90
|
-
|
|
91
|
-
| Field | What to tell the operator |
|
|
92
|
-
| --- | --- |
|
|
93
|
-
| `settlement: "vault"` | Restored via vault keeper path; may have on-chain tx |
|
|
94
|
-
| `verifiedOnChain: true` | Listener observed vault `Rebalanced` event — cite `settlementRecord` |
|
|
95
|
-
| `verifiedOnChain: false` + `settlement: "vault"` | Vault path but **not yet** independently observed — do not claim chain proof |
|
|
96
|
-
| `settlement: "staged"` | Capital-book update only — **not** on-chain settlement |
|
|
97
|
-
| `explorerUrl` | Link to block explorer when vault tx exists |
|
|
98
|
-
| `registryRef` | Objective registered on
|
|
99
|
-
| `status` | `confirmed` / `failed` / etc. — do not infer success from prepare alone |
|
|
100
|
-
|
|
101
|
-
Cross-check with `aureon_list_timeline`: find events where `payload.executionId` matches `receipt.id` and confirm `payload.settlement` matches the receipt.
|
|
102
|
-
|
|
103
|
-
**Do not say:** “Every restore is on-chain.” Staged receipts are honest book updates when vault is unavailable or unfunded. Do not say “chain-verified” unless `verifiedOnChain` is true or `aureon_get_execution_settlement` returns a record. After every restore, call **`aureon_validate_receipt`** — if validation fails, report the issues and do not override them.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Recommended workflows
|
|
108
|
-
|
|
109
|
-
### A. Morning check
|
|
110
|
-
|
|
111
|
-
Goal: identity, book, vault readiness, health — no surprise mutations.
|
|
112
|
-
|
|
113
|
-
```text
|
|
114
|
-
aureon_ping
|
|
115
|
-
aureon_me
|
|
116
|
-
aureon_sync_portfolio
|
|
117
|
-
aureon_get_portfolio
|
|
118
|
-
aureon_get_vault_status
|
|
119
|
-
aureon_get_overview
|
|
120
|
-
aureon_list_objectives
|
|
121
|
-
aureon_refresh_watchdog
|
|
122
|
-
aureon_get_health
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Agent summary checklist**
|
|
126
|
-
|
|
127
|
-
- Wallet address
|
|
128
|
-
- Whether vault looks fundable / ready
|
|
129
|
-
- Objective count and any breaches
|
|
130
|
-
- One recommended next action (fund, restore, or none)
|
|
131
|
-
|
|
132
|
-
### B. Create an Automatic objective
|
|
133
|
-
|
|
134
|
-
Example intent: maintain ~15% WETH with 3% tolerance.
|
|
135
|
-
|
|
136
|
-
**Read first**
|
|
137
|
-
|
|
138
|
-
```text
|
|
139
|
-
aureon_me
|
|
140
|
-
aureon_sync_portfolio
|
|
141
|
-
aureon_get_vault_status
|
|
142
|
-
aureon_list_objectives
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Act**
|
|
146
|
-
|
|
147
|
-
```text
|
|
148
|
-
aureon_create_objective
|
|
149
|
-
name: "Maintain 15% WETH"
|
|
150
|
-
kind: balanced_portfolio
|
|
151
|
-
targetWeight: 0.15
|
|
152
|
-
tolerance: 0.03
|
|
153
|
-
targetSymbol: WETH
|
|
154
|
-
automationMode: auto
|
|
155
|
-
priority: medium
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
**Confirm**
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
aureon_get_objective
|
|
162
|
-
aureon_get_health
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Remind the operator that `targetSymbol` and `automationMode` are locked.
|
|
166
|
-
|
|
167
|
-
### B2. Register the objective on chain
|
|
168
|
-
|
|
169
|
-
Host wallet broadcasts. MCP never holds a private key.
|
|
170
|
-
|
|
171
|
-
```text
|
|
172
|
-
aureon_registry_status
|
|
173
|
-
aureon_prepare_objective_registry
|
|
174
|
-
objectiveId: <id>
|
|
175
|
-
# host signs and broadcasts the returned calldata
|
|
176
|
-
aureon_confirm_objective_registry
|
|
177
|
-
objectiveId: <id>
|
|
178
|
-
transactionHash: 0x…
|
|
179
|
-
aureon_get_objective_registry
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Do not say the objective is on chain until confirm returns a record.
|
|
183
|
-
|
|
184
|
-
Practical close script (host signs outside MCP): `pnpm --filter @buildaureon/mcp test:phase2` against a Phase 2 API.
|
|
185
|
-
|
|
186
|
-
### C. Restore drift
|
|
187
|
-
|
|
188
|
-
```text
|
|
189
|
-
aureon_refresh_watchdog
|
|
190
|
-
aureon_get_health
|
|
191
|
-
aureon_get_restore_plan # when breached — explain steps
|
|
192
|
-
aureon_restore_objective
|
|
193
|
-
aureon_list_timeline
|
|
194
|
-
aureon_list_executions
|
|
195
|
-
aureon_get_health # post-check
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
**Agent summary checklist**
|
|
199
|
-
|
|
200
|
-
- Pre-health vs post-health
|
|
201
|
-
- Plan kind (e.g. vault swap / wrap)
|
|
202
|
-
- Receipt `settlement` (`vault` vs `staged`)
|
|
203
|
-
- Timeline events confirming the restore
|
|
204
|
-
|
|
205
|
-
If vault status says funding is insufficient, stop and switch to the deposit workflow.
|
|
206
|
-
|
|
207
|
-
### D. Vault deposit (prepare + host signs)
|
|
208
|
-
|
|
209
|
-
```text
|
|
210
|
-
aureon_get_vault_status
|
|
211
|
-
aureon_prepare_vault_deposit
|
|
212
|
-
symbol: ETH
|
|
213
|
-
amount: "0.1"
|
|
214
|
-
→ host signs & broadcasts unsigned steps (private key outside MCP)
|
|
215
|
-
→ wait for confirmation
|
|
216
|
-
aureon_sync_portfolio
|
|
217
|
-
aureon_get_vault_status
|
|
218
|
-
aureon_get_vault
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**Agent language**
|
|
222
|
-
|
|
223
|
-
- After prepare: “Here are unsigned steps. Sign and broadcast in your wallet. I cannot move funds with the API key alone.”
|
|
224
|
-
- After sync: report vault readiness. Do not invent tx hashes the host did not provide.
|
|
225
|
-
|
|
226
|
-
### E. Market rehearsal (integration only)
|
|
227
|
-
|
|
228
|
-
```text
|
|
229
|
-
aureon_list_market_presets
|
|
230
|
-
aureon_apply_market_event
|
|
231
|
-
symbol: TSLA
|
|
232
|
-
priceChangeRatio: -0.1
|
|
233
|
-
aureon_refresh_watchdog
|
|
234
|
-
aureon_get_health
|
|
235
|
-
# optional: restore_plan → restore_objective if rehearsing the full loop
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
Do **not** treat rehearsal shocks as live oracle prices for production capital decisions.
|
|
239
|
-
|
|
240
|
-
### F. Pause / resume / soft update
|
|
241
|
-
|
|
242
|
-
```text
|
|
243
|
-
aureon_pause_objective
|
|
244
|
-
aureon_resume_objective
|
|
245
|
-
aureon_update_objective # name, weight, tolerance, priority only
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
To change token or auto/manual mode: create a new objective; pause or leave the old one.
|
|
249
|
-
|
|
250
|
-
### G. API key hygiene
|
|
251
|
-
|
|
252
|
-
```text
|
|
253
|
-
aureon_list_api_keys
|
|
254
|
-
aureon_create_api_key # secret once — store in host env
|
|
255
|
-
aureon_toggle_api_key # pause without revoke
|
|
256
|
-
aureon_revoke_api_key
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Never paste full secrets into public transcripts if the host displays tool output broadly.
|
|
260
|
-
|
|
261
|
-
### H. Green vs plan paradox demo
|
|
262
|
-
|
|
263
|
-
```text
|
|
264
|
-
aureon_set_portfolio # or aureon_sync_portfolio
|
|
265
|
-
aureon_create_objective # stable_allocation, targetWeight 0.2, tolerance 0.02
|
|
266
|
-
aureon_get_allocation_vs_target # baseline: rows aligned
|
|
267
|
-
aureon_apply_market_event
|
|
268
|
-
symbol: NVDA
|
|
269
|
-
priceChangeRatio: 0.45
|
|
270
|
-
autoRestore: false
|
|
271
|
-
aureon_get_allocation_vs_target # paradox: book up, stable off-plan
|
|
272
|
-
aureon_get_health
|
|
273
|
-
aureon_list_timeline
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
**Agent language**
|
|
277
|
-
|
|
278
|
-
- Before shock: “Objective vs actual are aligned — stable sleeve at target.”
|
|
279
|
-
- After shock with `autoRestore: false`: “Book is up {X}%, but your stable objective is at {current}% vs {target}% target — {state}. Portfolio performance and plan adherence are not the same signal.”
|
|
280
|
-
- Do **not** claim on-chain proof for rehearsal marks; they are controlled and staged.
|
|
281
|
-
|
|
282
|
-
### I. AI → objective → portfolio
|
|
283
|
-
|
|
284
|
-
```text
|
|
285
|
-
aureon_sync_portfolio
|
|
286
|
-
aureon_apply_financial_intent
|
|
287
|
-
brief: "Keep about 20% in stable assets"
|
|
288
|
-
kind: stable_allocation
|
|
289
|
-
targetWeight: 0.2
|
|
290
|
-
tolerance: 0.02
|
|
291
|
-
aureon_get_objective_portfolio_flow # confirm intent → objective → portfolio link
|
|
292
|
-
aureon_get_allocation_vs_target # ties to objective vs actual
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**Agent language**
|
|
296
|
-
|
|
297
|
-
- “You told me what you want your money to do. I registered that as an objective.”
|
|
298
|
-
- “Here is how your portfolio scores against that policy — not just total PnL.”
|
|
299
|
-
- The agent must still supply structured fields (`kind`, `targetWeight`, `tolerance`); `brief` captures user wording for audit and teaching.
|
|
300
|
-
- After intent is applied, use `aureon_get_allocation_vs_target` for ongoing objective vs actual checks.
|
|
301
|
-
|
|
302
|
-
### J. Drift → detection → restore
|
|
303
|
-
|
|
304
|
-
```text
|
|
305
|
-
aureon_set_portfolio # or aureon_sync_portfolio
|
|
306
|
-
aureon_create_objective # stable_allocation, targetWeight 0.2, tolerance 0.02
|
|
307
|
-
aureon_apply_market_event
|
|
308
|
-
symbol: NVDA
|
|
309
|
-
priceChangeRatio: 0.45
|
|
310
|
-
autoRestore: false # break the rule on purpose
|
|
311
|
-
aureon_get_health
|
|
312
|
-
aureon_get_restore_plan
|
|
313
|
-
aureon_restore_objective
|
|
314
|
-
aureon_get_drift_restore_flow # confirm three-beat flow
|
|
315
|
-
aureon_list_timeline
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
Or one-shot: `aureon_run_drift_restore_demo`.
|
|
319
|
-
|
|
320
|
-
**Agent language**
|
|
321
|
-
|
|
322
|
-
- Beat 1: “Rule set — stable sleeve at ~20% target.”
|
|
323
|
-
- Beat 2: “NVDA rally moved the book. Stable allocation drifted off policy — {state}.”
|
|
324
|
-
- Beat 3: “Restore plan executed. Receipt settlement is `{vault|staged}`. Health back within tolerance.”
|
|
325
|
-
- Link back to (`aureon_get_allocation_vs_target` with `autoRestore: false`) and (intent before the rule exists).
|
|
326
|
-
- Do **not** claim discretionary trading; this is controlled rehearsal against registered policy.
|
|
327
|
-
|
|
328
|
-
### K. Receipt → verification
|
|
329
|
-
|
|
330
|
-
```text
|
|
331
|
-
aureon_run_drift_restore_demo # or aureon_restore_objective after drift
|
|
332
|
-
aureon_list_executions
|
|
333
|
-
aureon_validate_receipt # local — must pass before claiming proof
|
|
334
|
-
aureon_get_execution_settlement # vault — independent chain record when present
|
|
335
|
-
aureon_get_receipt_verification_flow
|
|
336
|
-
aureon_list_timeline
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
Or one-shot: `aureon_run_receipt_verification_demo`.
|
|
340
|
-
|
|
341
|
-
**Agent language**
|
|
342
|
-
|
|
343
|
-
- Beat 1: “Restore returned a receipt — status `{status}`, result says `{result}`. That is a **claim**, not proof.”
|
|
344
|
-
- Beat 2: “`aureon_validate_receipt` — schema + honesty check. If invalid, report issues; do not say success.”
|
|
345
|
-
- Beat 3: “For vault receipts, `aureon_get_execution_settlement` — `verifiedOnChain: true` means independent settlement record. Staged receipts can validate but are **never** chain-verified.”
|
|
346
|
-
- Link back to (receipt exists after restore). Never say “chain-verified” unless `verifiedOnChain` or settlement record confirms it.
|
|
347
|
-
|
|
348
|
-
### L. Portfolio watch while away
|
|
349
|
-
|
|
350
|
-
```text
|
|
351
|
-
aureon_ping
|
|
352
|
-
aureon_me
|
|
353
|
-
aureon_apply_financial_intent
|
|
354
|
-
brief: Watch my portfolio while I'm away — keep about 20% in stable assets.
|
|
355
|
-
kind: stable_allocation
|
|
356
|
-
targetWeight: 0.2
|
|
357
|
-
tolerance: 0.02
|
|
358
|
-
aureon_refresh_watchdog
|
|
359
|
-
aureon_get_health
|
|
360
|
-
aureon_apply_market_event
|
|
361
|
-
symbol: NVDA
|
|
362
|
-
priceChangeRatio: 0.45
|
|
363
|
-
autoRestore: true
|
|
364
|
-
aureon_list_timeline
|
|
365
|
-
aureon_get_portfolio_watch_flow
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
Or one-shot: `aureon_run_portfolio_watch_demo`.
|
|
369
|
-
|
|
370
|
-
**Agent language**
|
|
371
|
-
|
|
372
|
-
- Beat 1: “You asked me to watch your portfolio while away. I registered that as an **Automatic** objective — not a blank check, a rule.”
|
|
373
|
-
- Beat 2: “While you were away, the market moved. Automatic mode evaluated health and restored when off-plan.”
|
|
374
|
-
- Beat 3: “Here is your return briefing — health, timeline, and what happened. Use tools if you need receipt verification.”
|
|
375
|
-
- Host context: say **Cursor** or **Claude** when demoing agent-in-host; never claim 24/7 unsupervised trading.
|
|
376
|
-
- Link back to (intent → objective) and (drift/restore with `autoRestore: false` vs **true** here).
|
|
377
|
-
|
|
378
|
-
### M. Full AUREON loop
|
|
379
|
-
|
|
380
|
-
```text
|
|
381
|
-
aureon_apply_financial_intent
|
|
382
|
-
brief: Keep about 20% in stable assets — grow the book without abandoning the plan.
|
|
383
|
-
kind: stable_allocation
|
|
384
|
-
targetWeight: 0.2
|
|
385
|
-
tolerance: 0.02
|
|
386
|
-
aureon_get_allocation_vs_target
|
|
387
|
-
aureon_apply_market_event
|
|
388
|
-
symbol: NVDA
|
|
389
|
-
priceChangeRatio: 0.45
|
|
390
|
-
autoRestore: false
|
|
391
|
-
aureon_get_allocation_vs_target # paradox — green book, off-plan
|
|
392
|
-
aureon_restore_objective
|
|
393
|
-
aureon_validate_receipt
|
|
394
|
-
aureon_get_full_aureon_loop_flow
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
Or one-shot: `aureon_run_full_aureon_loop_demo`.
|
|
398
|
-
|
|
399
|
-
**Agent language**
|
|
400
|
-
|
|
401
|
-
- Positioning: “We're not building another portfolio tracker.”
|
|
402
|
-
- Beat 1: Intent registered as policy — not a price chart goal.
|
|
403
|
-
- Beat 2: Book can look fine while the plan fails — show paradox after shock.
|
|
404
|
-
- Beat 3: Restore closes the loop; receipt must be validated before claiming success.
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## Prompt examples
|
|
408
|
-
|
|
409
|
-
### System prompt fragment (paste-ready)
|
|
410
|
-
|
|
411
|
-
```text
|
|
412
|
-
You have AUREON MCP tools against the live API.
|
|
413
|
-
Prefer aureon_ping / aureon_me / aureon_sync_portfolio before mutations.
|
|
414
|
-
Use automationMode auto unless the user explicitly asks for manual.
|
|
415
|
-
Never claim on-chain settlement unless the restore receipt says settlement=vault.
|
|
416
|
-
Never ask the user for a private key; for deposits call prepare tools and tell them
|
|
417
|
-
to sign the returned steps in their wallet.
|
|
418
|
-
targetSymbol and automationMode are immutable after create — recreate instead of update.
|
|
419
|
-
Follow read → decide → act. Confirm with a second read after writes.
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
### Operator prompts that work well
|
|
423
|
-
|
|
424
|
-
> Ping AUREON and show which wallet my issued key is bound to.
|
|
425
|
-
|
|
426
|
-
> Sync my portfolio, check vault status, and summarize whether Automatic restores can run.
|
|
427
|
-
|
|
428
|
-
> Create an Automatic objective to keep about 20% WETH with 2% tolerance. Confirm locks.
|
|
429
|
-
|
|
430
|
-
> Health looks off — show the restore plan for objective `<id>`, then restore if the plan is sensible. Report settlement type.
|
|
431
|
-
|
|
432
|
-
> Prepare a 0.05 ETH vault deposit. Do not try to broadcast. Tell me exactly what I must sign.
|
|
433
|
-
|
|
434
|
-
> Rehearse a −10% TSLA mark event, refresh watchdog, and report which objectives breached.
|
|
435
|
-
|
|
436
|
-
### Operator prompts to clarify before acting
|
|
437
|
-
|
|
438
|
-
> “Fix my portfolio.” → Ask which objective, whether to restore vs recreate, and whether the vault is funded.
|
|
439
|
-
|
|
440
|
-
> “Make it manual.” → Confirm they want Manual Approve (human UI). Prefer staying Automatic for agent loops.
|
|
441
|
-
|
|
442
|
-
> “Deposit 1 ETH.” → Clarify prepare-only vs they will sign; never imply MCP will broadcast.
|
|
443
|
-
|
|
444
|
-
---
|
|
445
|
-
|
|
446
|
-
## Anti-patterns
|
|
447
|
-
|
|
448
|
-
Avoid these failure modes.
|
|
449
|
-
|
|
450
|
-
| Anti-pattern | Why it hurts | Do this instead |
|
|
451
|
-
| --- | --- | --- |
|
|
452
|
-
| Write before read | Acts on stale identity / vault / health | Always ping / me / sync / vault status first |
|
|
453
|
-
| Creating Manual by default | Agents cannot Approve in the utility | Default `automationMode: auto` |
|
|
454
|
-
| Patching `targetSymbol` or mode | API rejects; wastes turns | Recreate the objective |
|
|
455
|
-
| Treating prepare as funded | Balances unchanged until broadcast | Tell host to sign; then sync |
|
|
456
|
-
| Spamming restore | Flapping health, noisy timeline | Re-read health; restore once; confirm |
|
|
457
|
-
| Calling market events “live prices” | Misleads capital decisions | Label as rehearsal |
|
|
458
|
-
| Claiming `staged` as on-chain | Breaks trust | Quote `settlement` literally |
|
|
459
|
-
| Inventing missing audit proof | Fake explorer / registry / settlement | Use `aureon_get_audit_trail` and report labeled gaps |
|
|
460
|
-
| Asking for private keys | Violates the trust model | Prepare tools + host wallet only |
|
|
461
|
-
| Clearing portfolio casually | Destructive book wipe | Confirm; prefer sync |
|
|
462
|
-
| Rotating keys into chat | Secret leakage | Create key; instruct secure env storage |
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
## Automatic-only guidance for agents
|
|
467
|
-
|
|
468
|
-
Agents operate best as **keepers with Automatic objectives**:
|
|
469
|
-
|
|
470
|
-
1. On first use the vault is empty: `aureon_restore_objective` must **409**. Call `aureon_prepare_vault_deposit` and return unsigned steps. **Do not fund.** The user signs when they use the product (same as testnet).
|
|
471
|
-
2. Create objectives with `automationMode: "auto"`.
|
|
472
|
-
3. Watch health via `aureon_refresh_watchdog` / `aureon_get_health`.
|
|
473
|
-
4. On breach after the user has funded: plan → `aureon_restore_objective` → confirm timeline / executions.
|
|
474
|
-
|
|
475
|
-
Manual mode remains available for humans who want Approve gates. If the operator insists on Manual, say clearly that agent-driven restores may be limited and the utility Approve surface is the control plane for those swaps.
|
|
476
|
-
|
|
477
|
-
---
|
|
478
|
-
|
|
479
|
-
## Error handling tips
|
|
480
|
-
|
|
481
|
-
| Symptom | Likely cause | Agent action |
|
|
482
|
-
| --- | --- | --- |
|
|
483
|
-
| 401 / invalid key | Bad or revoked issued key | Stop. Ask operator to rotate in Developers and update host env. |
|
|
484
|
-
| Wallet session required / env key cannot identify wallet | Non-issued gating key | Switch to an **issued** Developers key. |
|
|
485
|
-
| Vault empty / cannot restore | First use — user has not deposited | Prepare deposit (unsigned); wait for the user/host to broadcast; re-sync. Agents do not fund. |
|
|
486
|
-
| Update rejects symbol / mode | Immutable create fields | Explain lock; offer recreate + pause old. |
|
|
487
|
-
| Restore flaps / healthy immediately | Marks shifted or race | Re-read health + vault; avoid spam restores. |
|
|
488
|
-
| Prepare succeeds, balances unchanged | Broadcast never happened | Remind: unsigned steps need host signature. |
|
|
489
|
-
|
|
|
490
|
-
| Ambiguous settlement | Receipt missing or staged | Report exactly what the receipt says. |
|
|
491
|
-
|
|
492
|
-
### Retry discipline
|
|
493
|
-
|
|
494
|
-
- Retry **reads** after transient network errors.
|
|
495
|
-
- Do not blindly retry **restores** or **clears**.
|
|
496
|
-
- After a failed write, re-read state before a second attempt.
|
|
497
|
-
- After prepare, do not call prepare in a loop hoping balances change — wait for the host.
|
|
498
|
-
|
|
499
|
-
---
|
|
500
|
-
|
|
501
|
-
## FAQ
|
|
502
|
-
|
|
503
|
-
### Do I need a Bearer token every day?
|
|
504
|
-
|
|
505
|
-
No. An issued API key is enough for control-plane agent work. Bearer is optional.
|
|
506
|
-
|
|
507
|
-
### Can the MCP server sign deposits?
|
|
508
|
-
|
|
509
|
-
No. Prepare tools return unsigned steps. Private keys stay outside MCP.
|
|
510
|
-
|
|
511
|
-
### Why is my restore `staged`?
|
|
512
|
-
|
|
513
|
-
Staged means ledger-local settlement for that receipt. Fund the vault and use Automatic restore paths when you need `settlement: "vault"`. Always label honestly.
|
|
514
|
-
|
|
515
|
-
### Can I change `targetSymbol` later?
|
|
516
|
-
|
|
517
|
-
No. Recreate the objective. Optionally pause the old one.
|
|
518
|
-
|
|
519
|
-
### What is the default automation mode?
|
|
520
|
-
|
|
521
|
-
`auto`. Agents should keep it that way unless the human requests Manual.
|
|
522
|
-
|
|
523
|
-
### Is market event a production price feed?
|
|
524
|
-
|
|
525
|
-
No. It is for integration rehearsal and demos.
|
|
526
|
-
|
|
527
|
-
### How many tools are there?
|
|
528
|
-
|
|
529
|
-
**47.** See the [tool reference](./tools.md).
|
|
530
|
-
|
|
531
|
-
### Where are the typed schemas?
|
|
532
|
-
|
|
533
|
-
In the **@buildaureon/sdk documentation** (client API, data contracts, error model).
|
|
534
|
-
|
|
535
|
-
### What URL should agents use?
|
|
536
|
-
|
|
537
|
-
Omit `AUREON_API_URL` for
|
|
538
|
-
|
|
539
|
-
### What if the operator asks me to “just send the transaction”?
|
|
540
|
-
|
|
541
|
-
Refuse to take a private key. Call `aureon_prepare_vault_deposit` or `aureon_prepare_vault_withdraw`, return the unsigned steps, and instruct the host wallet to sign and broadcast.
|
|
542
|
-
|
|
543
|
-
---
|
|
544
|
-
|
|
545
|
-
## Suggested turn templates
|
|
546
|
-
|
|
547
|
-
### Template: status report
|
|
548
|
-
|
|
549
|
-
1. Ping + me
|
|
550
|
-
2. Sync portfolio + vault status
|
|
551
|
-
3. Overview + health
|
|
552
|
-
4. Three-bullet summary + one recommended action
|
|
553
|
-
|
|
554
|
-
### Template: create policy
|
|
555
|
-
|
|
556
|
-
1. Confirm wallet + vault readiness
|
|
557
|
-
2. Create Automatic objective with explicit weight/tolerance/symbol
|
|
558
|
-
3. Fetch objective + health
|
|
559
|
-
4. State locks (`targetSymbol`, `automationMode`)
|
|
560
|
-
|
|
561
|
-
### Template: heal breach
|
|
562
|
-
|
|
563
|
-
1. Refresh watchdog + health
|
|
564
|
-
2. Get restore plan; narrate steps briefly
|
|
565
|
-
3. Restore
|
|
566
|
-
4. List executions/timeline; quote `settlement`
|
|
567
|
-
5. Re-check health
|
|
568
|
-
|
|
569
|
-
### Template: fund vault
|
|
570
|
-
|
|
571
|
-
1. Vault status
|
|
572
|
-
2. Prepare deposit
|
|
573
|
-
3. Hand unsigned steps to operator
|
|
574
|
-
4. After they confirm broadcast: sync + vault status
|
|
575
|
-
|
|
576
|
-
---
|
|
577
|
-
|
|
578
|
-
## Coordination with humans
|
|
579
|
-
|
|
580
|
-
Agents should be explicit about what only a human can do:
|
|
581
|
-
|
|
582
|
-
- Sign and broadcast vault steps
|
|
583
|
-
- Approve Manual restores in the utility
|
|
584
|
-
- Create / rotate issued API keys in a secure secret store
|
|
585
|
-
- Decide risk appetite (weights, tolerances, which symbols)
|
|
586
|
-
|
|
587
|
-
Agents should be decisive about what they can do alone with an issued key:
|
|
588
|
-
|
|
589
|
-
- Sync and inspect book / vault / health
|
|
590
|
-
- Create Automatic objectives
|
|
591
|
-
- Fetch plans and run restores
|
|
592
|
-
- Rehearse market events
|
|
593
|
-
- Pause / resume / soft-update objectives
|
|
594
|
-
|
|
595
|
-
---
|
|
596
|
-
|
|
597
|
-
## Related reading
|
|
598
|
-
|
|
599
|
-
- [Tools](./tools.md) — purpose, args, when to use, caveats per tool
|
|
600
|
-
- [Auth](./auth.md) — issued key, optional Bearer, private-key boundary
|
|
601
|
-
- [Setup](./setup.md) — wiring Cursor / Claude Desktop to the live API
|
|
602
|
-
- [Security](./security.md) — stdio trust model and key hygiene
|
|
603
|
-
- **@buildaureon/sdk documentation** — deeper contracts for builders
|
|
604
|
-
|
|
605
|
-
---
|
|
606
|
-
|
|
607
|
-
## Quick reference card
|
|
608
|
-
|
|
609
|
-
```text
|
|
610
|
-
READ: ping → me → sync_portfolio → vault_status → health
|
|
611
|
-
DECIDE: empty vault 409 + unsigned prepare (do not fund)? create auto? restore? rehearse only?
|
|
612
|
-
ACT: prepare_* (host signs) | create_objective(auto) | restore_objective
|
|
613
|
-
CHECK: timeline / executions / health — quote settlement=vault|staged
|
|
614
|
-
```
|
|
615
|
-
|
|
616
|
-
Keep the loop short. Prefer Automatic. Never invent settlement. Never touch private keys inside MCP.
|
|
617
|
-
|
|
618
|
-
---
|
|
619
|
-
|
|
620
|
-
## Appendix: decision matrix
|
|
621
|
-
|
|
622
|
-
| Situation | First tools | Then | Stop if |
|
|
623
|
-
| --- | --- | --- | --- |
|
|
624
|
-
| New session | `aureon_ping`, `aureon_me` | Sync + vault status | Key invalid |
|
|
625
|
-
| Want new policy | List objectives + vault status | `aureon_create_objective` (auto) | Vault empty and restores required |
|
|
626
|
-
| Health red | Watchdog + health + plan | `aureon_restore_objective` | Plan unclear / unfunded |
|
|
627
|
-
| Need capital in vault | `aureon_prepare_vault_deposit` | Host signs outside MCP | Operator cannot sign |
|
|
628
|
-
| Demo shock | List presets + apply event | Health / optional restore | Treating marks as production |
|
|
629
|
-
| Soft policy tweak | `aureon_get_objective` | `aureon_update_objective` | Trying to change symbol/mode |
|
|
630
|
-
| Change token or mode | Pause or leave old | Create new Automatic objective | Patching locked fields |
|
|
631
|
-
| Key rotation | `aureon_list_api_keys` | Create → store secret → revoke old | Echoing secret in public chat |
|
|
632
|
-
|
|
633
|
-
### Narrative examples (short)
|
|
634
|
-
|
|
635
|
-
**Morning.** “API is up. Wallet `0x…`. Vault ready. Two Automatic objectives healthy. No action.”
|
|
636
|
-
|
|
637
|
-
**Create.** “Created Automatic balanced objective for 15% WETH (±3%). `targetSymbol` and `automationMode` are locked. Health is within band.”
|
|
638
|
-
|
|
639
|
-
**Restore.** “Objective breached after watchdog refresh. Plan was a vault-backed rebalance. Restore receipt `settlement: vault`. Post-health green.”
|
|
640
|
-
|
|
641
|
-
**Deposit.** “Prepared unsigned deposit for 0.1 ETH. Sign and broadcast in your wallet. After confirmation I will sync and re-check vault status.”
|
|
642
|
-
|
|
643
|
-
**Rehearsal.** “Applied −10% TSLA rehearsal event. Two objectives breached in marks. This is not a live oracle price.”
|
|
644
|
-
|
|
645
|
-
### Closing reminders for agents
|
|
646
|
-
|
|
647
|
-
1. Live API only — issued key (optional Bearer).
|
|
648
|
-
2. Thirty-three tools — see the tool reference for args and caveats.
|
|
649
|
-
3. Automatic by default — Manual is a human Approve surface.
|
|
650
|
-
4. Prepare ≠ funded — host signs outside MCP.
|
|
651
|
-
5. Quote `settlement` — `vault` or `staged`, never invent.
|
|
652
|
-
6. Read → decide → act → read again.
|
|
1
|
+
# AUREON MCP Agent Guide
|
|
2
|
+
|
|
3
|
+
Playbooks for AI agents using `@buildaureon/mcp` against the **live** AUREON API.
|
|
4
|
+
|
|
5
|
+
This guide teaches agents how to think, which tools to call, and how to talk honestly about settlement. Pair it with the [tool reference](./tools.md). For typed contracts and error codes, see the **@buildaureon/sdk documentation**.
|
|
6
|
+
|
|
7
|
+
**Surface:** 54 tools · hosted `https://mcp.aureonlabs.network/mcp` (URL-only for open tools; optional `X-Aureon-Api-Key` for your wallet) or local stdio with `AUREON_API_KEY` · optional Bearer · private key only outside MCP for broadcast.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## How agents should think
|
|
12
|
+
|
|
13
|
+
Use a simple loop on every non-trivial request:
|
|
14
|
+
|
|
15
|
+
**Read → Decide → Act.**
|
|
16
|
+
|
|
17
|
+
### 1. Read
|
|
18
|
+
|
|
19
|
+
Gather facts before proposing mutations.
|
|
20
|
+
|
|
21
|
+
Typical read set:
|
|
22
|
+
|
|
23
|
+
- `aureon_ping` — is the live API up?
|
|
24
|
+
- `aureon_me` — which wallet am I acting as?
|
|
25
|
+
- `aureon_sync_portfolio` + `aureon_get_portfolio` — what does the Capital Book say?
|
|
26
|
+
- `aureon_get_vault_status` — can Automatic restores actually fund?
|
|
27
|
+
- `aureon_list_objectives` + `aureon_get_health` — what policy exists and is it breached?
|
|
28
|
+
|
|
29
|
+
### 2. Decide
|
|
30
|
+
|
|
31
|
+
Translate operator intent into a **single** next action (or a short sequenced plan).
|
|
32
|
+
|
|
33
|
+
Decide:
|
|
34
|
+
|
|
35
|
+
- Is the vault empty (restore must 409; return unsigned prepare; do not fund)?
|
|
36
|
+
- Do we create a new Automatic objective?
|
|
37
|
+
- Do we restore an existing breach?
|
|
38
|
+
- Is this only a rehearsal (market event)?
|
|
39
|
+
|
|
40
|
+
Prefer **Automatic** (`automationMode: "auto"`) for agents. Manual mode is for humans who must Approve in the utility.
|
|
41
|
+
|
|
42
|
+
### 3. Act
|
|
43
|
+
|
|
44
|
+
Call the write / prepare / restore tool. Then **read again** to confirm.
|
|
45
|
+
|
|
46
|
+
Never claim success from prepare alone. Never claim on-chain settlement unless the receipt says `settlement: "vault"`.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Trust boundary (memorize this)
|
|
51
|
+
|
|
52
|
+
| Credential | Role |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| Issued `AUREON_API_KEY` | Product access + wallet identity for control-plane tools |
|
|
55
|
+
| Optional Bearer | Wallet session via nonce → sign → `aureon_verify_wallet` (wins if both present) |
|
|
56
|
+
| Private key | **Outside MCP only** — host signs unsigned vault steps |
|
|
57
|
+
|
|
58
|
+
The MCP server is not a custodian and not a broadcaster. `prepare_*` returns unsigned steps.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Locked fields and defaults
|
|
63
|
+
|
|
64
|
+
| Field | Rule |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `automationMode` | Defaults to **`auto`** on create. Locked after create. |
|
|
67
|
+
| `targetSymbol` | Locked after create. Recreate to change the token. |
|
|
68
|
+
| Update patch | Name, weight, tolerance, priority (and related numeric fields) — **not** symbol/mode. |
|
|
69
|
+
|
|
70
|
+
Agents: create Automatic objectives unless the human explicitly asks for Manual.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Settlement types
|
|
75
|
+
|
|
76
|
+
Restore and execution receipts may include:
|
|
77
|
+
|
|
78
|
+
| Value | Meaning | How to describe it |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| `vault` | On-chain / vault-backed settlement | “Settled on-chain via vault.” |
|
|
81
|
+
| `staged` | Ledger-local / staged settlement | “Staged (not on-chain).” |
|
|
82
|
+
|
|
83
|
+
**Honesty rule:** If the field is missing or unclear, say so. Do not upgrade `staged` to “on-chain” in chat.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## How to read a Phase 2 receipt
|
|
88
|
+
|
|
89
|
+
After `aureon_restore_objective` or `aureon_run_execution`, inspect the returned receipt:
|
|
90
|
+
|
|
91
|
+
| Field | What to tell the operator |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `settlement: "vault"` | Restored via vault keeper path; may have on-chain tx |
|
|
94
|
+
| `verifiedOnChain: true` | Listener observed vault `Rebalanced` event — cite `settlementRecord` |
|
|
95
|
+
| `verifiedOnChain: false` + `settlement: "vault"` | Vault path but **not yet** independently observed — do not claim chain proof |
|
|
96
|
+
| `settlement: "staged"` | Capital-book update only — **not** on-chain settlement |
|
|
97
|
+
| `explorerUrl` | Link to block explorer when vault tx exists |
|
|
98
|
+
| `registryRef` | Objective registered on the chain you called — cite `objectiveKey` + contract |
|
|
99
|
+
| `status` | `confirmed` / `failed` / etc. — do not infer success from prepare alone |
|
|
100
|
+
|
|
101
|
+
Cross-check with `aureon_list_timeline`: find events where `payload.executionId` matches `receipt.id` and confirm `payload.settlement` matches the receipt.
|
|
102
|
+
|
|
103
|
+
**Do not say:** “Every restore is on-chain.” Staged receipts are honest book updates when vault is unavailable or unfunded. Do not say “chain-verified” unless `verifiedOnChain` is true or `aureon_get_execution_settlement` returns a record. After every restore, call **`aureon_validate_receipt`** — if validation fails, report the issues and do not override them.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Recommended workflows
|
|
108
|
+
|
|
109
|
+
### A. Morning check
|
|
110
|
+
|
|
111
|
+
Goal: identity, book, vault readiness, health — no surprise mutations.
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
aureon_ping
|
|
115
|
+
aureon_me
|
|
116
|
+
aureon_sync_portfolio
|
|
117
|
+
aureon_get_portfolio
|
|
118
|
+
aureon_get_vault_status
|
|
119
|
+
aureon_get_overview
|
|
120
|
+
aureon_list_objectives
|
|
121
|
+
aureon_refresh_watchdog
|
|
122
|
+
aureon_get_health
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Agent summary checklist**
|
|
126
|
+
|
|
127
|
+
- Wallet address
|
|
128
|
+
- Whether vault looks fundable / ready
|
|
129
|
+
- Objective count and any breaches
|
|
130
|
+
- One recommended next action (fund, restore, or none)
|
|
131
|
+
|
|
132
|
+
### B. Create an Automatic objective
|
|
133
|
+
|
|
134
|
+
Example intent: maintain ~15% WETH with 3% tolerance.
|
|
135
|
+
|
|
136
|
+
**Read first**
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
aureon_me
|
|
140
|
+
aureon_sync_portfolio
|
|
141
|
+
aureon_get_vault_status
|
|
142
|
+
aureon_list_objectives
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Act**
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
aureon_create_objective
|
|
149
|
+
name: "Maintain 15% WETH"
|
|
150
|
+
kind: balanced_portfolio
|
|
151
|
+
targetWeight: 0.15
|
|
152
|
+
tolerance: 0.03
|
|
153
|
+
targetSymbol: WETH
|
|
154
|
+
automationMode: auto
|
|
155
|
+
priority: medium
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Confirm**
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
aureon_get_objective
|
|
162
|
+
aureon_get_health
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Remind the operator that `targetSymbol` and `automationMode` are locked.
|
|
166
|
+
|
|
167
|
+
### B2. Register the objective on chain
|
|
168
|
+
|
|
169
|
+
Host wallet broadcasts. MCP never holds a private key.
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
aureon_registry_status
|
|
173
|
+
aureon_prepare_objective_registry
|
|
174
|
+
objectiveId: <id>
|
|
175
|
+
# host signs and broadcasts the returned calldata
|
|
176
|
+
aureon_confirm_objective_registry
|
|
177
|
+
objectiveId: <id>
|
|
178
|
+
transactionHash: 0x…
|
|
179
|
+
aureon_get_objective_registry
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Do not say the objective is on chain until confirm returns a record.
|
|
183
|
+
|
|
184
|
+
Practical close script (host signs outside MCP): `pnpm --filter @buildaureon/mcp test:phase2` against a Phase 2 API.
|
|
185
|
+
|
|
186
|
+
### C. Restore drift
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
aureon_refresh_watchdog
|
|
190
|
+
aureon_get_health
|
|
191
|
+
aureon_get_restore_plan # when breached — explain steps
|
|
192
|
+
aureon_restore_objective
|
|
193
|
+
aureon_list_timeline
|
|
194
|
+
aureon_list_executions
|
|
195
|
+
aureon_get_health # post-check
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Agent summary checklist**
|
|
199
|
+
|
|
200
|
+
- Pre-health vs post-health
|
|
201
|
+
- Plan kind (e.g. vault swap / wrap)
|
|
202
|
+
- Receipt `settlement` (`vault` vs `staged`)
|
|
203
|
+
- Timeline events confirming the restore
|
|
204
|
+
|
|
205
|
+
If vault status says funding is insufficient, stop and switch to the deposit workflow.
|
|
206
|
+
|
|
207
|
+
### D. Vault deposit (prepare + host signs)
|
|
208
|
+
|
|
209
|
+
```text
|
|
210
|
+
aureon_get_vault_status
|
|
211
|
+
aureon_prepare_vault_deposit
|
|
212
|
+
symbol: ETH
|
|
213
|
+
amount: "0.1"
|
|
214
|
+
→ host signs & broadcasts unsigned steps (private key outside MCP)
|
|
215
|
+
→ wait for confirmation
|
|
216
|
+
aureon_sync_portfolio
|
|
217
|
+
aureon_get_vault_status
|
|
218
|
+
aureon_get_vault
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Agent language**
|
|
222
|
+
|
|
223
|
+
- After prepare: “Here are unsigned steps. Sign and broadcast in your wallet. I cannot move funds with the API key alone.”
|
|
224
|
+
- After sync: report vault readiness. Do not invent tx hashes the host did not provide.
|
|
225
|
+
|
|
226
|
+
### E. Market rehearsal (integration only)
|
|
227
|
+
|
|
228
|
+
```text
|
|
229
|
+
aureon_list_market_presets
|
|
230
|
+
aureon_apply_market_event
|
|
231
|
+
symbol: TSLA
|
|
232
|
+
priceChangeRatio: -0.1
|
|
233
|
+
aureon_refresh_watchdog
|
|
234
|
+
aureon_get_health
|
|
235
|
+
# optional: restore_plan → restore_objective if rehearsing the full loop
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Do **not** treat rehearsal shocks as live oracle prices for production capital decisions.
|
|
239
|
+
|
|
240
|
+
### F. Pause / resume / soft update
|
|
241
|
+
|
|
242
|
+
```text
|
|
243
|
+
aureon_pause_objective
|
|
244
|
+
aureon_resume_objective
|
|
245
|
+
aureon_update_objective # name, weight, tolerance, priority only
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
To change token or auto/manual mode: create a new objective; pause or leave the old one.
|
|
249
|
+
|
|
250
|
+
### G. API key hygiene
|
|
251
|
+
|
|
252
|
+
```text
|
|
253
|
+
aureon_list_api_keys
|
|
254
|
+
aureon_create_api_key # secret once — store in host env
|
|
255
|
+
aureon_toggle_api_key # pause without revoke
|
|
256
|
+
aureon_revoke_api_key
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Never paste full secrets into public transcripts if the host displays tool output broadly.
|
|
260
|
+
|
|
261
|
+
### H. Green vs plan paradox demo
|
|
262
|
+
|
|
263
|
+
```text
|
|
264
|
+
aureon_set_portfolio # or aureon_sync_portfolio
|
|
265
|
+
aureon_create_objective # stable_allocation, targetWeight 0.2, tolerance 0.02
|
|
266
|
+
aureon_get_allocation_vs_target # baseline: rows aligned
|
|
267
|
+
aureon_apply_market_event
|
|
268
|
+
symbol: NVDA
|
|
269
|
+
priceChangeRatio: 0.45
|
|
270
|
+
autoRestore: false
|
|
271
|
+
aureon_get_allocation_vs_target # paradox: book up, stable off-plan
|
|
272
|
+
aureon_get_health
|
|
273
|
+
aureon_list_timeline
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Agent language**
|
|
277
|
+
|
|
278
|
+
- Before shock: “Objective vs actual are aligned — stable sleeve at target.”
|
|
279
|
+
- After shock with `autoRestore: false`: “Book is up {X}%, but your stable objective is at {current}% vs {target}% target — {state}. Portfolio performance and plan adherence are not the same signal.”
|
|
280
|
+
- Do **not** claim on-chain proof for rehearsal marks; they are controlled and staged.
|
|
281
|
+
|
|
282
|
+
### I. AI → objective → portfolio
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
aureon_sync_portfolio
|
|
286
|
+
aureon_apply_financial_intent
|
|
287
|
+
brief: "Keep about 20% in stable assets"
|
|
288
|
+
kind: stable_allocation
|
|
289
|
+
targetWeight: 0.2
|
|
290
|
+
tolerance: 0.02
|
|
291
|
+
aureon_get_objective_portfolio_flow # confirm intent → objective → portfolio link
|
|
292
|
+
aureon_get_allocation_vs_target # ties to objective vs actual
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Agent language**
|
|
296
|
+
|
|
297
|
+
- “You told me what you want your money to do. I registered that as an objective.”
|
|
298
|
+
- “Here is how your portfolio scores against that policy — not just total PnL.”
|
|
299
|
+
- The agent must still supply structured fields (`kind`, `targetWeight`, `tolerance`); `brief` captures user wording for audit and teaching.
|
|
300
|
+
- After intent is applied, use `aureon_get_allocation_vs_target` for ongoing objective vs actual checks.
|
|
301
|
+
|
|
302
|
+
### J. Drift → detection → restore
|
|
303
|
+
|
|
304
|
+
```text
|
|
305
|
+
aureon_set_portfolio # or aureon_sync_portfolio
|
|
306
|
+
aureon_create_objective # stable_allocation, targetWeight 0.2, tolerance 0.02
|
|
307
|
+
aureon_apply_market_event
|
|
308
|
+
symbol: NVDA
|
|
309
|
+
priceChangeRatio: 0.45
|
|
310
|
+
autoRestore: false # break the rule on purpose
|
|
311
|
+
aureon_get_health
|
|
312
|
+
aureon_get_restore_plan
|
|
313
|
+
aureon_restore_objective
|
|
314
|
+
aureon_get_drift_restore_flow # confirm three-beat flow
|
|
315
|
+
aureon_list_timeline
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Or one-shot: `aureon_run_drift_restore_demo`.
|
|
319
|
+
|
|
320
|
+
**Agent language**
|
|
321
|
+
|
|
322
|
+
- Beat 1: “Rule set — stable sleeve at ~20% target.”
|
|
323
|
+
- Beat 2: “NVDA rally moved the book. Stable allocation drifted off policy — {state}.”
|
|
324
|
+
- Beat 3: “Restore plan executed. Receipt settlement is `{vault|staged}`. Health back within tolerance.”
|
|
325
|
+
- Link back to (`aureon_get_allocation_vs_target` with `autoRestore: false`) and (intent before the rule exists).
|
|
326
|
+
- Do **not** claim discretionary trading; this is controlled rehearsal against registered policy.
|
|
327
|
+
|
|
328
|
+
### K. Receipt → verification
|
|
329
|
+
|
|
330
|
+
```text
|
|
331
|
+
aureon_run_drift_restore_demo # or aureon_restore_objective after drift
|
|
332
|
+
aureon_list_executions
|
|
333
|
+
aureon_validate_receipt # local — must pass before claiming proof
|
|
334
|
+
aureon_get_execution_settlement # vault — independent chain record when present
|
|
335
|
+
aureon_get_receipt_verification_flow
|
|
336
|
+
aureon_list_timeline
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Or one-shot: `aureon_run_receipt_verification_demo`.
|
|
340
|
+
|
|
341
|
+
**Agent language**
|
|
342
|
+
|
|
343
|
+
- Beat 1: “Restore returned a receipt — status `{status}`, result says `{result}`. That is a **claim**, not proof.”
|
|
344
|
+
- Beat 2: “`aureon_validate_receipt` — schema + honesty check. If invalid, report issues; do not say success.”
|
|
345
|
+
- Beat 3: “For vault receipts, `aureon_get_execution_settlement` — `verifiedOnChain: true` means independent settlement record. Staged receipts can validate but are **never** chain-verified.”
|
|
346
|
+
- Link back to (receipt exists after restore). Never say “chain-verified” unless `verifiedOnChain` or settlement record confirms it.
|
|
347
|
+
|
|
348
|
+
### L. Portfolio watch while away
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
aureon_ping
|
|
352
|
+
aureon_me
|
|
353
|
+
aureon_apply_financial_intent
|
|
354
|
+
brief: Watch my portfolio while I'm away — keep about 20% in stable assets.
|
|
355
|
+
kind: stable_allocation
|
|
356
|
+
targetWeight: 0.2
|
|
357
|
+
tolerance: 0.02
|
|
358
|
+
aureon_refresh_watchdog
|
|
359
|
+
aureon_get_health
|
|
360
|
+
aureon_apply_market_event
|
|
361
|
+
symbol: NVDA
|
|
362
|
+
priceChangeRatio: 0.45
|
|
363
|
+
autoRestore: true
|
|
364
|
+
aureon_list_timeline
|
|
365
|
+
aureon_get_portfolio_watch_flow
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Or one-shot: `aureon_run_portfolio_watch_demo`.
|
|
369
|
+
|
|
370
|
+
**Agent language**
|
|
371
|
+
|
|
372
|
+
- Beat 1: “You asked me to watch your portfolio while away. I registered that as an **Automatic** objective — not a blank check, a rule.”
|
|
373
|
+
- Beat 2: “While you were away, the market moved. Automatic mode evaluated health and restored when off-plan.”
|
|
374
|
+
- Beat 3: “Here is your return briefing — health, timeline, and what happened. Use tools if you need receipt verification.”
|
|
375
|
+
- Host context: say **Cursor** or **Claude** when demoing agent-in-host; never claim 24/7 unsupervised trading.
|
|
376
|
+
- Link back to (intent → objective) and (drift/restore with `autoRestore: false` vs **true** here).
|
|
377
|
+
|
|
378
|
+
### M. Full AUREON loop
|
|
379
|
+
|
|
380
|
+
```text
|
|
381
|
+
aureon_apply_financial_intent
|
|
382
|
+
brief: Keep about 20% in stable assets — grow the book without abandoning the plan.
|
|
383
|
+
kind: stable_allocation
|
|
384
|
+
targetWeight: 0.2
|
|
385
|
+
tolerance: 0.02
|
|
386
|
+
aureon_get_allocation_vs_target
|
|
387
|
+
aureon_apply_market_event
|
|
388
|
+
symbol: NVDA
|
|
389
|
+
priceChangeRatio: 0.45
|
|
390
|
+
autoRestore: false
|
|
391
|
+
aureon_get_allocation_vs_target # paradox — green book, off-plan
|
|
392
|
+
aureon_restore_objective
|
|
393
|
+
aureon_validate_receipt
|
|
394
|
+
aureon_get_full_aureon_loop_flow
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Or one-shot: `aureon_run_full_aureon_loop_demo`.
|
|
398
|
+
|
|
399
|
+
**Agent language**
|
|
400
|
+
|
|
401
|
+
- Positioning: “We're not building another portfolio tracker.”
|
|
402
|
+
- Beat 1: Intent registered as policy — not a price chart goal.
|
|
403
|
+
- Beat 2: Book can look fine while the plan fails — show paradox after shock.
|
|
404
|
+
- Beat 3: Restore closes the loop; receipt must be validated before claiming success.
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Prompt examples
|
|
408
|
+
|
|
409
|
+
### System prompt fragment (paste-ready)
|
|
410
|
+
|
|
411
|
+
```text
|
|
412
|
+
You have AUREON MCP tools against the live API.
|
|
413
|
+
Prefer aureon_ping / aureon_me / aureon_sync_portfolio before mutations.
|
|
414
|
+
Use automationMode auto unless the user explicitly asks for manual.
|
|
415
|
+
Never claim on-chain settlement unless the restore receipt says settlement=vault.
|
|
416
|
+
Never ask the user for a private key; for deposits call prepare tools and tell them
|
|
417
|
+
to sign the returned steps in their wallet.
|
|
418
|
+
targetSymbol and automationMode are immutable after create — recreate instead of update.
|
|
419
|
+
Follow read → decide → act. Confirm with a second read after writes.
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Operator prompts that work well
|
|
423
|
+
|
|
424
|
+
> Ping AUREON and show which wallet my issued key is bound to.
|
|
425
|
+
|
|
426
|
+
> Sync my portfolio, check vault status, and summarize whether Automatic restores can run.
|
|
427
|
+
|
|
428
|
+
> Create an Automatic objective to keep about 20% WETH with 2% tolerance. Confirm locks.
|
|
429
|
+
|
|
430
|
+
> Health looks off — show the restore plan for objective `<id>`, then restore if the plan is sensible. Report settlement type.
|
|
431
|
+
|
|
432
|
+
> Prepare a 0.05 ETH vault deposit. Do not try to broadcast. Tell me exactly what I must sign.
|
|
433
|
+
|
|
434
|
+
> Rehearse a −10% TSLA mark event, refresh watchdog, and report which objectives breached.
|
|
435
|
+
|
|
436
|
+
### Operator prompts to clarify before acting
|
|
437
|
+
|
|
438
|
+
> “Fix my portfolio.” → Ask which objective, whether to restore vs recreate, and whether the vault is funded.
|
|
439
|
+
|
|
440
|
+
> “Make it manual.” → Confirm they want Manual Approve (human UI). Prefer staying Automatic for agent loops.
|
|
441
|
+
|
|
442
|
+
> “Deposit 1 ETH.” → Clarify prepare-only vs they will sign; never imply MCP will broadcast.
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Anti-patterns
|
|
447
|
+
|
|
448
|
+
Avoid these failure modes.
|
|
449
|
+
|
|
450
|
+
| Anti-pattern | Why it hurts | Do this instead |
|
|
451
|
+
| --- | --- | --- |
|
|
452
|
+
| Write before read | Acts on stale identity / vault / health | Always ping / me / sync / vault status first |
|
|
453
|
+
| Creating Manual by default | Agents cannot Approve in the utility | Default `automationMode: auto` |
|
|
454
|
+
| Patching `targetSymbol` or mode | API rejects; wastes turns | Recreate the objective |
|
|
455
|
+
| Treating prepare as funded | Balances unchanged until broadcast | Tell host to sign; then sync |
|
|
456
|
+
| Spamming restore | Flapping health, noisy timeline | Re-read health; restore once; confirm |
|
|
457
|
+
| Calling market events “live prices” | Misleads capital decisions | Label as rehearsal |
|
|
458
|
+
| Claiming `staged` as on-chain | Breaks trust | Quote `settlement` literally |
|
|
459
|
+
| Inventing missing audit proof | Fake explorer / registry / settlement | Use `aureon_get_audit_trail` and report labeled gaps |
|
|
460
|
+
| Asking for private keys | Violates the trust model | Prepare tools + host wallet only |
|
|
461
|
+
| Clearing portfolio casually | Destructive book wipe | Confirm; prefer sync |
|
|
462
|
+
| Rotating keys into chat | Secret leakage | Create key; instruct secure env storage |
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Automatic-only guidance for agents
|
|
467
|
+
|
|
468
|
+
Agents operate best as **keepers with Automatic objectives**:
|
|
469
|
+
|
|
470
|
+
1. On first use the vault is empty: `aureon_restore_objective` must **409**. Call `aureon_prepare_vault_deposit` and return unsigned steps. **Do not fund.** The user signs when they use the product (same as testnet).
|
|
471
|
+
2. Create objectives with `automationMode: "auto"`.
|
|
472
|
+
3. Watch health via `aureon_refresh_watchdog` / `aureon_get_health`.
|
|
473
|
+
4. On breach after the user has funded: plan → `aureon_restore_objective` → confirm timeline / executions.
|
|
474
|
+
|
|
475
|
+
Manual mode remains available for humans who want Approve gates. If the operator insists on Manual, say clearly that agent-driven restores may be limited and the utility Approve surface is the control plane for those swaps.
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## Error handling tips
|
|
480
|
+
|
|
481
|
+
| Symptom | Likely cause | Agent action |
|
|
482
|
+
| --- | --- | --- |
|
|
483
|
+
| 401 / invalid key | Bad or revoked issued key | Stop. Ask operator to rotate in Developers and update host env. |
|
|
484
|
+
| Wallet session required / env key cannot identify wallet | Non-issued gating key | Switch to an **issued** Developers key. |
|
|
485
|
+
| Vault empty / cannot restore | First use — user has not deposited | Prepare deposit (unsigned); wait for the user/host to broadcast; re-sync. Agents do not fund. |
|
|
486
|
+
| Update rejects symbol / mode | Immutable create fields | Explain lock; offer recreate + pause old. |
|
|
487
|
+
| Restore flaps / healthy immediately | Marks shifted or race | Re-read health + vault; avoid spam restores. |
|
|
488
|
+
| Prepare succeeds, balances unchanged | Broadcast never happened | Remind: unsigned steps need host signature. |
|
|
489
|
+
| `aureon_verify_wallet` asks for `inviteCode` | Optional Bearer path only | Skip verify. Use hosted MCP or stdio with an issued `AUREON_API_KEY`. |
|
|
490
|
+
| Ambiguous settlement | Receipt missing or staged | Report exactly what the receipt says. |
|
|
491
|
+
|
|
492
|
+
### Retry discipline
|
|
493
|
+
|
|
494
|
+
- Retry **reads** after transient network errors.
|
|
495
|
+
- Do not blindly retry **restores** or **clears**.
|
|
496
|
+
- After a failed write, re-read state before a second attempt.
|
|
497
|
+
- After prepare, do not call prepare in a loop hoping balances change — wait for the host.
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## FAQ
|
|
502
|
+
|
|
503
|
+
### Do I need a Bearer token every day?
|
|
504
|
+
|
|
505
|
+
No. An issued API key is enough for control-plane agent work. Bearer is optional.
|
|
506
|
+
|
|
507
|
+
### Can the MCP server sign deposits?
|
|
508
|
+
|
|
509
|
+
No. Prepare tools return unsigned steps. Private keys stay outside MCP.
|
|
510
|
+
|
|
511
|
+
### Why is my restore `staged`?
|
|
512
|
+
|
|
513
|
+
Staged means ledger-local settlement for that receipt. Fund the vault and use Automatic restore paths when you need `settlement: "vault"`. Always label honestly.
|
|
514
|
+
|
|
515
|
+
### Can I change `targetSymbol` later?
|
|
516
|
+
|
|
517
|
+
No. Recreate the objective. Optionally pause the old one.
|
|
518
|
+
|
|
519
|
+
### What is the default automation mode?
|
|
520
|
+
|
|
521
|
+
`auto`. Agents should keep it that way unless the human requests Manual.
|
|
522
|
+
|
|
523
|
+
### Is market event a production price feed?
|
|
524
|
+
|
|
525
|
+
No. It is for integration rehearsal and demos.
|
|
526
|
+
|
|
527
|
+
### How many tools are there?
|
|
528
|
+
|
|
529
|
+
**47.** See the [tool reference](./tools.md).
|
|
530
|
+
|
|
531
|
+
### Where are the typed schemas?
|
|
532
|
+
|
|
533
|
+
In the **@buildaureon/sdk documentation** (client API, data contracts, error model).
|
|
534
|
+
|
|
535
|
+
### What URL should agents use?
|
|
536
|
+
|
|
537
|
+
Omit `AUREON_API_URL` for the official API `https://api.aureonlabs.network` on mainnet. Set `AUREON_NETWORK=testnet` to stay on testnet on the same host.
|
|
538
|
+
|
|
539
|
+
### What if the operator asks me to “just send the transaction”?
|
|
540
|
+
|
|
541
|
+
Refuse to take a private key. Call `aureon_prepare_vault_deposit` or `aureon_prepare_vault_withdraw`, return the unsigned steps, and instruct the host wallet to sign and broadcast.
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
## Suggested turn templates
|
|
546
|
+
|
|
547
|
+
### Template: status report
|
|
548
|
+
|
|
549
|
+
1. Ping + me
|
|
550
|
+
2. Sync portfolio + vault status
|
|
551
|
+
3. Overview + health
|
|
552
|
+
4. Three-bullet summary + one recommended action
|
|
553
|
+
|
|
554
|
+
### Template: create policy
|
|
555
|
+
|
|
556
|
+
1. Confirm wallet + vault readiness
|
|
557
|
+
2. Create Automatic objective with explicit weight/tolerance/symbol
|
|
558
|
+
3. Fetch objective + health
|
|
559
|
+
4. State locks (`targetSymbol`, `automationMode`)
|
|
560
|
+
|
|
561
|
+
### Template: heal breach
|
|
562
|
+
|
|
563
|
+
1. Refresh watchdog + health
|
|
564
|
+
2. Get restore plan; narrate steps briefly
|
|
565
|
+
3. Restore
|
|
566
|
+
4. List executions/timeline; quote `settlement`
|
|
567
|
+
5. Re-check health
|
|
568
|
+
|
|
569
|
+
### Template: fund vault
|
|
570
|
+
|
|
571
|
+
1. Vault status
|
|
572
|
+
2. Prepare deposit
|
|
573
|
+
3. Hand unsigned steps to operator
|
|
574
|
+
4. After they confirm broadcast: sync + vault status
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
## Coordination with humans
|
|
579
|
+
|
|
580
|
+
Agents should be explicit about what only a human can do:
|
|
581
|
+
|
|
582
|
+
- Sign and broadcast vault steps
|
|
583
|
+
- Approve Manual restores in the utility
|
|
584
|
+
- Create / rotate issued API keys in a secure secret store
|
|
585
|
+
- Decide risk appetite (weights, tolerances, which symbols)
|
|
586
|
+
|
|
587
|
+
Agents should be decisive about what they can do alone with an issued key:
|
|
588
|
+
|
|
589
|
+
- Sync and inspect book / vault / health
|
|
590
|
+
- Create Automatic objectives
|
|
591
|
+
- Fetch plans and run restores
|
|
592
|
+
- Rehearse market events
|
|
593
|
+
- Pause / resume / soft-update objectives
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## Related reading
|
|
598
|
+
|
|
599
|
+
- [Tools](./tools.md) — purpose, args, when to use, caveats per tool
|
|
600
|
+
- [Auth](./auth.md) — issued key, optional Bearer, private-key boundary
|
|
601
|
+
- [Setup](./setup.md) — wiring Cursor / Claude Desktop to the live API
|
|
602
|
+
- [Security](./security.md) — hosted vs stdio trust model and key hygiene
|
|
603
|
+
- **@buildaureon/sdk documentation** — deeper contracts for builders
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
## Quick reference card
|
|
608
|
+
|
|
609
|
+
```text
|
|
610
|
+
READ: ping → me → sync_portfolio → vault_status → health
|
|
611
|
+
DECIDE: empty vault 409 + unsigned prepare (do not fund)? create auto? restore? rehearse only?
|
|
612
|
+
ACT: prepare_* (host signs) | create_objective(auto) | restore_objective
|
|
613
|
+
CHECK: timeline / executions / health — quote settlement=vault|staged
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
Keep the loop short. Prefer Automatic. Never invent settlement. Never touch private keys inside MCP.
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
## Appendix: decision matrix
|
|
621
|
+
|
|
622
|
+
| Situation | First tools | Then | Stop if |
|
|
623
|
+
| --- | --- | --- | --- |
|
|
624
|
+
| New session | `aureon_ping`, `aureon_me` | Sync + vault status | Key invalid |
|
|
625
|
+
| Want new policy | List objectives + vault status | `aureon_create_objective` (auto) | Vault empty and restores required |
|
|
626
|
+
| Health red | Watchdog + health + plan | `aureon_restore_objective` | Plan unclear / unfunded |
|
|
627
|
+
| Need capital in vault | `aureon_prepare_vault_deposit` | Host signs outside MCP | Operator cannot sign |
|
|
628
|
+
| Demo shock | List presets + apply event | Health / optional restore | Treating marks as production |
|
|
629
|
+
| Soft policy tweak | `aureon_get_objective` | `aureon_update_objective` | Trying to change symbol/mode |
|
|
630
|
+
| Change token or mode | Pause or leave old | Create new Automatic objective | Patching locked fields |
|
|
631
|
+
| Key rotation | `aureon_list_api_keys` | Create → store secret → revoke old | Echoing secret in public chat |
|
|
632
|
+
|
|
633
|
+
### Narrative examples (short)
|
|
634
|
+
|
|
635
|
+
**Morning.** “API is up. Wallet `0x…`. Vault ready. Two Automatic objectives healthy. No action.”
|
|
636
|
+
|
|
637
|
+
**Create.** “Created Automatic balanced objective for 15% WETH (±3%). `targetSymbol` and `automationMode` are locked. Health is within band.”
|
|
638
|
+
|
|
639
|
+
**Restore.** “Objective breached after watchdog refresh. Plan was a vault-backed rebalance. Restore receipt `settlement: vault`. Post-health green.”
|
|
640
|
+
|
|
641
|
+
**Deposit.** “Prepared unsigned deposit for 0.1 ETH. Sign and broadcast in your wallet. After confirmation I will sync and re-check vault status.”
|
|
642
|
+
|
|
643
|
+
**Rehearsal.** “Applied −10% TSLA rehearsal event. Two objectives breached in marks. This is not a live oracle price.”
|
|
644
|
+
|
|
645
|
+
### Closing reminders for agents
|
|
646
|
+
|
|
647
|
+
1. Live API only — issued key (optional Bearer).
|
|
648
|
+
2. Thirty-three tools — see the tool reference for args and caveats.
|
|
649
|
+
3. Automatic by default — Manual is a human Approve surface.
|
|
650
|
+
4. Prepare ≠ funded — host signs outside MCP.
|
|
651
|
+
5. Quote `settlement` — `vault` or `staged`, never invent.
|
|
652
|
+
6. Read → decide → act → read again.
|