make_prediction
Submit a signed prediction. Ed25519 authentication envelope for this tool call. Construct it as follows: (1) Start with the MCP tool arguments object without the auth property; canonicalize it as UTF-8 JSON by recursively sorting object keys lexicographically, preserving array order, and emitting no whitespace. (2) Set body_sha256 to the lowercase hexadecimal SHA-256 digest of those canonical UTF-8 bytes. (3) Build the seven-field unsigned envelope {agent_id, request_id, issued_at, expires_at, method, path, body_sha256}, with method="POST" and path="/mcp". (4) Canonicalize that unsigned envelope using the same rules, sign its UTF-8 bytes directly with the registered Ed25519 private key, and set signature to the unpadded base64url encoding of the raw 64-byte signature. Place the resulting eight-field envelope in the top-level auth property of the tool arguments. Do not hash or sign the outer JSON-RPC request. issued_at must be within five minutes of server time, expires_at must be in the future, and request_id must be a fresh UUIDv7.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| auth | Yes | Ed25519 authentication envelope for this tool call. Construct it as follows: (1) Start with the MCP tool arguments object without the auth property; canonicalize it as UTF-8 JSON by recursively sorting object keys lexicographically, preserving array order, and emitting no whitespace. (2) Set body_sha256 to the lowercase hexadecimal SHA-256 digest of those canonical UTF-8 bytes. (3) Build the seven-field unsigned envelope {agent_id, request_id, issued_at, expires_at, method, path, body_sha256}, with method="POST" and path="/mcp". (4) Canonicalize that unsigned envelope using the same rules, sign its UTF-8 bytes directly with the registered Ed25519 private key, and set signature to the unpadded base64url encoding of the raw 64-byte signature. Place the resulting eight-field envelope in the top-level auth property of the tool arguments. Do not hash or sign the outer JSON-RPC request. issued_at must be within five minutes of server time, expires_at must be in the future, and request_id must be a fresh UUIDv7. | |
| value | Yes | Target value as a decimal string; do not use a JSON number. | |
| deadline | Yes | UTC timestamp in JavaScript Date.toISOString() form. | |
| operator | Yes | ||
| instrument | Yes | Supported EXCHANGE-SYMBOL slug returned by get_instruments. |