draft_pakt
Compile one candidate Pakt and receive everything needed for human review.
| Field | Meaning |
|---|---|
| Side effects | Returns review data only. Account and Pakt authority remain unchanged. |
| Next step | Present pakt.review; after user review, pass the exact pakt.canonical_ssz to prepare_pakt_activation. |
Arguments
| Argument | Type | Required |
|---|---|---|
draft_json | string | no |
preset_id | string | no |
Exact bounds, accepted values, and nested fields are in Full JSON Schema below.
Example
Compiles unchanged example limits, not a personalized recommendation. First confirm this ID appears in list_pakt_templates. To customize it, edit the returned source.draft_json and send that JSON string as draft_json instead of preset_id.
With an authenticated MCP client:
await client.callTool({
name: "draft_pakt",
arguments: { preset_id: "perps-conservative" },
});Returns
Important fields in the decoded result; this is not a complete response schema.
| Field | Meaning |
|---|---|
status | DRAFT_NO_SIDE_EFFECTS. No storage, activation, or signing occurs. |
pakt.review | Headline, important note, and readable rule groups to show the user. |
pakt.root | Identifier of this exact compiled draft. |
pakt.canonical_ssz | Pass unchanged to activation preparation after user review. |
source.draft_json | Editable source as a JSON string; compile revisions to get a new root. |
pakt.dual_readback / pakt.technical_details | Exhaustive audit views; not the default user-facing explanation. |
For error handling and retry rules, see Statuses and Errors.
Compile exactly one source — a shipped preset id or strict JSON draft — through the deterministic authoring compiler and return canonical SSZ, root, a compact plain-language review with display-ready grouped summaries, separately nested technical details, and the exhaustive dual readback. Present only pakt.review to ordinary users; use pakt.technical_details and dual_readback only for an explicitly requested advanced audit. Presets contain editable example limits, not a judgment about the user's finances. Before personalizing one, ask the intended allocation and risk appetite unless already answered; then propose and explain exact dollar, leverage, and buffer terms and compile the edited source.draft_json. DRAFT CALL WITH NO SIDE EFFECTS: this call neither stores nor activates it (without claiming an identical root is globally absent). That exact canonical SSZ is the only input to prepare_pakt_activation. The human reviews and approves the account/environment/root binding in the dashboard with the bound Pakt signer; the agent never receives key material.
From tools/list, MCP protocol revision 2026-07-28.
{
"additionalProperties": false,
"properties": {
"draft_json": {
"description": "Strict Pakt draft JSON. Send exactly one of draft_json or preset_id; unknown fields and unshipped cells fail closed.",
"maxLength": 131072,
"minLength": 1,
"type": "string"
},
"preset_id": {
"description": "Stable id returned by list_pakt_templates. Send exactly one of preset_id or draft_json.",
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"type": "object"
}