API reference / Activity

List activity history

GET/v1/users/{userId}/activity/history

Pages backward through durable user-owned milestones, including approvals, run lifecycle and settlement evidence. Omit the cursor for the newest page and pass the returned cursor to continue.

Authentication

Both headers are required.

  • Header: X-Api-Key: YOUR_API_KEY
  • Header: Authorization: Bearer YOUR_USER_TOKEN

Path parameters

userIdstring · uuidrequired

The user in the path; must equal the token's own account.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

Query parameters

limitintegeroptional

How many milestones to answer, at most 50

Validation rules
Default
20
Minimum
1
Maximum
50
cursorstringoptional

A before cursor from the previous page; omit for the newest page.

Validation rules
Maximum length
256
originstringoptional

Only milestones of this origin: conversation for ordinary chats, automation for conversations created by automations, or operation for direct financial requests without a conversation. Omit to include every origin.

Validation rules
Allowed values
["conversation","automation","operation"]
scopestringoptional

Which milestones count: actions keeps approvals, financial results and automation runs, including direct financial operations; all or omitted also includes the ordinary chat lifecycle.

Validation rules
Allowed values
["all","actions"]

Request example

Illustrative request. Replace the host, credentials and resource IDs with your own. If a request file is shown, create it from the schema above. Review the requested action before sending it.

curl --request GET 'https://api.example.test/v1/users/YOUR_USER_ID/activity/history' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Authorization: Bearer YOUR_USER_TOKEN'

Responses

200 A page of historical milestones.

A page of historical milestones.

application/json · object

dataarrayrequired

This page's milestones, newest first.

Show attributes

This page's milestones, newest first.

Validation rules
Maximum items
50
Array items · anyOf

One historical journal milestone from an owned conversation or direct financial operation; it does not represent current execution authority.

anyOf · 2 variants
Variant 1 · object
seqintegerrequired

The event's global journal sequence, used to order this milestone page; not a cross-conversation commit-order guarantee.

Validation rules
Greater than
0
Maximum
9007199254740991
titlestring or nullrequired

The conversation's current title, or null for an untitled conversation or a direct operation.

createdAtstring · date-timerequired

When this milestone happened.

Validation rules
Format
"date-time"
Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
kindstringrequired

Which historical milestone this journal event records.

Validation rules
Allowed values
["run_started","run_completed","run_failed","run_aborted","run_paused","approval_requested","approval_approved","approval_denied","approval_expired","automation_triggered","swap_settled","swap_refunded","swap_not_executed","execution_result"]
snippetanyOfrequired

Bounded public input, approval summary, automation name, or public failure/abort reason.

Show attributes

Bounded public input, approval summary, automation name, or public failure/abort reason.

anyOf · 2 variants
Variant 1 · string
Validation rules
Maximum length
280
Variant 2 · null
approvalobjectoptional

Historical approved terms from this event only; never an actionable approval.

Show attributes

Historical approved terms from this event only; never an actionable approval.

contractoneOfrequired

The approved contract: its actions, expiry and bounds.

Show attributes

The approved contract: its actions, expiry and bounds.

oneOf · 1 variants
Variant 1 · type: near_intents_transfer
typestringrequired

Which contract template this is.

Validation rules
Exact value
"near_intents_transfer"
actionsarrayrequired

The actions this contract authorizes, executed in order.

Show attributes

The actions this contract authorizes, executed in order.

Validation rules
Minimum items
1
Maximum items
16
Array items · oneOf
oneOf · 3 variants
Variant 1 · kind: swap
kindstringrequired

Exchange one asset for another; custody never leaves the agent wallet.

Validation rules
Exact value
"swap"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
Variant 2 · kind: withdraw_to_owner
kindstringrequired

Return an asset to the account that owns the agent wallet.

Validation rules
Exact value
"withdraw_to_owner"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
Variant 3 · kind: send
kindstringrequired

Pay a pinned destination outside the agent wallet.

Validation rules
Exact value
"send"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
recipientobjectrequired

The pinned destination this action pays.

Show attributes

The pinned destination this action pays.

chainstringrequired

Which chain the destination address is on.

Validation rules
Minimum length
1
Maximum length
32
addressstringrequired

The destination address on that chain.

Validation rules
Pattern
"^[\\x21-\\x7e]{1,128}$"
validUntilstring · date-timerequired

When this contract's authority expires.

Validation rules
Format
"date-time"
Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
maxExecutionsintegerrequired

How many times this contract may be executed before it is exhausted.

Validation rules
Minimum
1
Maximum
10000
boundsobjectrequired

The value-loss and signature-lifetime limits every execution must respect.

Show attributes

The value-loss and signature-lifetime limits every execution must respect.

maxValueLossBpsstringrequired

The most value an execution may give up to price movement and fees together, in basis points.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
maxSignatureLifetimeSecondsintegerrequired

Explicit maximum lifetime of each released transfer signature, in seconds. 1Click confidential swaps require up to 259500 seconds (72 hours 5 minutes). This does not extend the short execution window or approval validity.

Validation rules
Minimum
1
Maximum
259500
executionRestrictionstringoptional

Set when this approval disallowed automatic signing.

Validation rules
Exact value
"signing_disabled"
settlementobjectoptional

Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.

Show attributes

Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.

receiptoneOfrequired

The retained terminal evidence for this financial leg: settlement, refund or non-execution.

Show attributes

The retained terminal evidence for this financial leg: settlement, refund or non-execution.

oneOf · 3 variants
Variant 1 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg settled: its output asset moved as planned.

Validation rules
Exact value
"settled"
outputobjectrequired

What the leg produced.

Show attributes

What the leg produced.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg did not settle and its input asset was returned.

Validation rules
Exact value
"refunded"
refundobjectrequired

What was returned.

Show attributes

What was returned.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 3 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg did not settle. Most reasons mean it never reached the provider; rejected means it did and was refused there — see reason.

Validation rules
Exact value
"not_executed"
reasonstringoptional

Why nothing executed: signing_disabled when automatic signing was off, signing_failed when signing itself failed, rejected when the provider refused the submission outright (it did reach the provider), expired when the leg's own signing/deposit window elapsed before a terminal fact arrived, or failed otherwise. Optional so receipts written before the reason was carried still parse.

Validation rules
Allowed values
["signing_disabled","signing_failed","rejected","expired","failed"]
inputobjectoptional

The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.

Show attributes

The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
requestedOutputobjectoptional

Exact-output target and input ceiling are requested terms, never paid/received amounts.

Show attributes

Exact-output target and input ceiling are requested terms, never paid/received amounts.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
maximumInputRawstringoptional

The most this leg would spend, in the input asset's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
executionobjectoptional

Only reviewed execution tools; never a raw tool result or a claim that the funds settled.

Show attributes

Only reviewed execution tools; never a raw tool result or a claim that the funds settled.

toolstringrequired

Which execution tool produced this result: intents_execute for a swap, automation_create for setting up an automation.

Validation rules
Allowed values
["intents_execute","automation_create"]
statusstringrequired

How the tool resolved: completed for a finished non-trade tool; failed or denied when it did not run (message explains why); unverified when the result could not be confirmed; no_trade when nothing needed to trade; pending while settlement is unresolved or partial when only part executed; settled once every leg settled; refunded or not_executed when it did not complete.

Validation rules
Allowed values
["completed","failed","denied","unverified","pending","partial","no_trade","settled","refunded","not_executed"]
reasonstringoptional

Why the tool did not execute; present only when status is not_executed.

Validation rules
Exact value
"signing_disabled"
messagestringoptional

A failed or denied result's own fixed message, so a row says what the card says.

Validation rules
Maximum length
280
dispatchedintegeroptional

How many legs the recorded pending or partial result reports; not proof that each was dispatched.

Validation rules
Minimum
0
Maximum
16
conversationIdstring · uuidrequired

The conversation this historical milestone belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
originoneOfrequired

The conversation's retained origin, including for financial work requested within it.

Show attributes

The conversation's retained origin, including for financial work requested within it.

oneOf · 2 variants
Variant 1 · type: conversation
typestringrequired

An ordinary user-started conversation.

Validation rules
Exact value
"conversation"
Variant 2 · type: automation
typestringrequired

A conversation an automation created.

Validation rules
Exact value
"automation"
automationIdstring · uuidrequired

The automation that created this conversation.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
namestringrequired

The automation's name at the time this conversation started.

Validation rules
Minimum length
1
Maximum length
120
Variant 2 · object
seqintegerrequired

The event's global journal sequence, used to order this milestone page; not a cross-conversation commit-order guarantee.

Validation rules
Greater than
0
Maximum
9007199254740991
titlestring or nullrequired

The conversation's current title, or null for an untitled conversation or a direct operation.

createdAtstring · date-timerequired

When this milestone happened.

Validation rules
Format
"date-time"
Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
kindstringrequired

Which historical milestone this journal event records.

Validation rules
Allowed values
["run_started","run_completed","run_failed","run_aborted","run_paused","approval_requested","approval_approved","approval_denied","approval_expired","automation_triggered","swap_settled","swap_refunded","swap_not_executed","execution_result"]
snippetanyOfrequired

Bounded public input, approval summary, automation name, or public failure/abort reason.

Show attributes

Bounded public input, approval summary, automation name, or public failure/abort reason.

anyOf · 2 variants
Variant 1 · string
Validation rules
Maximum length
280
Variant 2 · null
approvalobjectoptional

Historical approved terms from this event only; never an actionable approval.

Show attributes

Historical approved terms from this event only; never an actionable approval.

contractoneOfrequired

The approved contract: its actions, expiry and bounds.

Show attributes

The approved contract: its actions, expiry and bounds.

oneOf · 1 variants
Variant 1 · type: near_intents_transfer
typestringrequired

Which contract template this is.

Validation rules
Exact value
"near_intents_transfer"
actionsarrayrequired

The actions this contract authorizes, executed in order.

Show attributes

The actions this contract authorizes, executed in order.

Validation rules
Minimum items
1
Maximum items
16
Array items · oneOf
oneOf · 3 variants
Variant 1 · kind: swap
kindstringrequired

Exchange one asset for another; custody never leaves the agent wallet.

Validation rules
Exact value
"swap"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
Variant 2 · kind: withdraw_to_owner
kindstringrequired

Return an asset to the account that owns the agent wallet.

Validation rules
Exact value
"withdraw_to_owner"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
Variant 3 · kind: send
kindstringrequired

Pay a pinned destination outside the agent wallet.

Validation rules
Exact value
"send"
inputanyOfrequired

The asset this action spends: pinned to one token, or any token the agent wallet holds.

Show attributes

The asset this action spends: pinned to one token, or any token the agent wallet holds.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
quantityoneOfrequired

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

Show attributes

How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it.

oneOf · 5 variants
Variant 1 · kind: exact_input_tokens

Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw "5000000". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash.

kindstringrequired

Spend an exact amount of the input token.

Validation rules
Exact value
"exact_input_tokens"
amountRawstringrequired

The exact input amount, in the input token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · kind: exact_input_value_usd

Spend a USD-denominated value of the input token: "$5 worth of USDC" means value "5". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity.

kindstringrequired

Spend a USD-denominated value of the input token.

Validation rules
Exact value
"exact_input_value_usd"
valuestringrequired

The USD value to spend, as a decimal string.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$"
Variant 3 · kind: exact_output_tokens

Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash.

kindstringrequired

Receive an exact amount of the output token.

Validation rules
Exact value
"exact_output_tokens"
amountRawstringrequired

The exact output amount, in the output token's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 4 · kind: all_of_input
kindstringrequired

Spend everything the agent wallet holds of the input asset.

Validation rules
Exact value
"all_of_input"
Variant 5 · kind: fraction_of_input
kindstringrequired

Spend a fraction of the input asset.

Validation rules
Exact value
"fraction_of_input"
bpsstringrequired

The fraction to spend, in basis points of the input asset.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
outputanyOfrequired

The asset this action produces: pinned to one token, or left open.

Show attributes

The asset this action produces: pinned to one token, or left open.

anyOf · 2 variants
Variant 1 · object
pinnedobjectrequired

The exact token this asset is pinned to.

Show attributes

The exact token this asset is pinned to.

tokenIdstringrequired

The token's NEP-141 identifier.

Validation rules
Pattern
"^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$"
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
Variant 2 · object
anybooleanrequired

Any token the agent wallet holds; the executor picks one at execution.

Validation rules
Exact value
true
recipientobjectrequired

The pinned destination this action pays.

Show attributes

The pinned destination this action pays.

chainstringrequired

Which chain the destination address is on.

Validation rules
Minimum length
1
Maximum length
32
addressstringrequired

The destination address on that chain.

Validation rules
Pattern
"^[\\x21-\\x7e]{1,128}$"
validUntilstring · date-timerequired

When this contract's authority expires.

Validation rules
Format
"date-time"
Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
maxExecutionsintegerrequired

How many times this contract may be executed before it is exhausted.

Validation rules
Minimum
1
Maximum
10000
boundsobjectrequired

The value-loss and signature-lifetime limits every execution must respect.

Show attributes

The value-loss and signature-lifetime limits every execution must respect.

maxValueLossBpsstringrequired

The most value an execution may give up to price movement and fees together, in basis points.

Validation rules
Pattern
"^(0|[1-9]\\d{0,4})$"
maxSignatureLifetimeSecondsintegerrequired

Explicit maximum lifetime of each released transfer signature, in seconds. 1Click confidential swaps require up to 259500 seconds (72 hours 5 minutes). This does not extend the short execution window or approval validity.

Validation rules
Minimum
1
Maximum
259500
executionRestrictionstringoptional

Set when this approval disallowed automatic signing.

Validation rules
Exact value
"signing_disabled"
settlementobjectoptional

Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.

Show attributes

Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.

receiptoneOfrequired

The retained terminal evidence for this financial leg: settlement, refund or non-execution.

Show attributes

The retained terminal evidence for this financial leg: settlement, refund or non-execution.

oneOf · 3 variants
Variant 1 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg settled: its output asset moved as planned.

Validation rules
Exact value
"settled"
outputobjectrequired

What the leg produced.

Show attributes

What the leg produced.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 2 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg did not settle and its input asset was returned.

Validation rules
Exact value
"refunded"
refundobjectrequired

What was returned.

Show attributes

What was returned.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
Variant 3 · object
approvalIdstring · uuidrequired

The approval's id.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
legIdstring · uuidrequired

Which leg of the plan this receipt settles.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
indexintegerrequired

This leg's position within the plan, counting from zero.

Validation rules
Minimum
0
Maximum
15
operationIdstring · uuidoptional

The durable financial request this evidence belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
occurrenceIdstringoptional

The archived event's original identity, retained verbatim; current receipts use operationId.

Validation rules
Minimum length
1
Maximum length
160
statestringrequired

The leg did not settle. Most reasons mean it never reached the provider; rejected means it did and was refused there — see reason.

Validation rules
Exact value
"not_executed"
reasonstringoptional

Why nothing executed: signing_disabled when automatic signing was off, signing_failed when signing itself failed, rejected when the provider refused the submission outright (it did reach the provider), expired when the leg's own signing/deposit window elapsed before a terminal fact arrived, or failed otherwise. Optional so receipts written before the reason was carried still parse.

Validation rules
Allowed values
["signing_disabled","signing_failed","rejected","expired","failed"]
inputobjectoptional

The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.

Show attributes

The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
requestedOutputobjectoptional

Exact-output target and input ceiling are requested terms, never paid/received amounts.

Show attributes

Exact-output target and input ceiling are requested terms, never paid/received amounts.

tokenIdstringrequired

The asset's NEP-141 token id.

Validation rules
Minimum length
1
Maximum length
256
decimalsintegerrequired

How many decimal places the token's smallest unit represents.

Validation rules
Minimum
0
Maximum
38
amountRawstringoptional

The amount, in the token's smallest unit, when it is known.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
maximumInputRawstringoptional

The most this leg would spend, in the input asset's smallest unit.

Validation rules
Pattern
"^(0|[1-9]\\d{0,38})$"
executionobjectoptional

Only reviewed execution tools; never a raw tool result or a claim that the funds settled.

Show attributes

Only reviewed execution tools; never a raw tool result or a claim that the funds settled.

toolstringrequired

Which execution tool produced this result: intents_execute for a swap, automation_create for setting up an automation.

Validation rules
Allowed values
["intents_execute","automation_create"]
statusstringrequired

How the tool resolved: completed for a finished non-trade tool; failed or denied when it did not run (message explains why); unverified when the result could not be confirmed; no_trade when nothing needed to trade; pending while settlement is unresolved or partial when only part executed; settled once every leg settled; refunded or not_executed when it did not complete.

Validation rules
Allowed values
["completed","failed","denied","unverified","pending","partial","no_trade","settled","refunded","not_executed"]
reasonstringoptional

Why the tool did not execute; present only when status is not_executed.

Validation rules
Exact value
"signing_disabled"
messagestringoptional

A failed or denied result's own fixed message, so a row says what the card says.

Validation rules
Maximum length
280
dispatchedintegeroptional

How many legs the recorded pending or partial result reports; not proof that each was dispatched.

Validation rules
Minimum
0
Maximum
16
conversationIdnullrequired

Null because this milestone belongs to a direct operation without a conversation.

originobjectrequired

The direct financial operation that owns this milestone.

Show attributes

The direct financial operation that owns this milestone.

typestringrequired

A direct financial request with no conversation or agent run.

Validation rules
Exact value
"operation"
operationIdstring · uuidrequired

The durable financial operation this activity belongs to.

Validation rules
Format
"uuid"
Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
nextCursorstring or nullrequired

Exclusive descending cursor for the next page; refetch loaded pages sequentially to avoid displaced-item gaps.

400 The request could not be read as this operation expects.

The request could not be read as this operation expects.

  • invalid_input — the body or query failed validation; issues names each field
  • invalid_cursor — the cursor is not one this list minted

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

401 A credential is missing, invalid or expired.

A credential is missing, invalid or expired.

  • partner_key_required — no X-Api-Key header was sent
  • partner_key_invalid — the X-Api-Key is unknown or revoked
  • credential_expired — the user token has expired; obtain a fresh one

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

403 The credentials are valid but may not do this.

The credentials are valid but may not do this.

  • subject_mismatch — the {userId} in the path is not the token's user
  • account_disabled — an operator disabled the account
  • origin_rejected — a browser Origin other than the configured web origin

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

404 The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.

The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

412 The identity is verified but has no account yet.

The identity is verified but has no account yet.

  • account_not_provisioned — the identity is verified but has no account yet; call users.ensure first

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

429 A limiter refused the request; honour `Retry-After`.

A limiter refused the request; honour Retry-After.

  • rate_limited — the per-key or per-user limit is spent; honour Retry-After

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

500 A fault on our side; quote `requestId` when reporting it.

A fault on our side; quote requestId when reporting it.

  • internal — a fault on our side; quote requestId when reporting it

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

503 The replica is draining or a dependency did not answer; `retryable` says whether to try again.

The replica is draining or a dependency did not answer; retryable says whether to try again.

  • internal — a fault on our side; quote requestId when reporting it

application/problem+json · object

RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.

typestringrequired

The kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it

titlestringrequired

The kind's human title, for logs; never parse it

statusintegerrequired

The HTTP status, repeated in the body

Validation rules
Minimum
400
Maximum
599
reasonstringoptional

The machine-readable why. One of:

  • run_active (409) — a run already holds this conversation
  • budget_exhausted (409) — the user's spend headroom is gone, or an operator froze it
  • approval_not_pending (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation
  • execution_capacity (409) — no execution capacity is free right now; retryable says whether to try again
  • execution_unavailable (409) — the execution engine could not take the work
  • stop_pending (409) — a stop is already in progress and its cleanup is not yet confirmed
  • automation_changed (409) — the revision sent is stale; reload the automation
  • automation_held (409) — an operator holds the automation; it fires again when released
  • automation_invalid (409) — the automation's definition cannot run as written
  • automation_completed (409) — the automation has finished for good and cannot fire again
  • automation_limit (409) — the user already has as many automations as the deployment allows
  • profile_unknown_tool (409) — the run profile names a tool this deployment does not have
  • deployment_paused (409) — an operator paused a deployment control; nothing was admitted or fired
  • run_not_active (409) — the run named in the path is not the conversation's live run
  • withdrawal_changed (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress
  • credential_expired (401) — the user token has expired; obtain a fresh one
  • account_disabled (403) — an operator disabled the account
  • account_not_provisioned (412) — the identity is verified but has no account yet; call users.ensure first
  • provider_unavailable (503) — an external provider the call depends on did not answer
  • engine_unavailable (503) — the execution engine did not answer
  • invalid_input (400) — the body or query failed validation; issues names each field
  • internal (500) — a fault on our side; quote requestId when reporting it
  • partner_key_required (401) — no X-Api-Key header was sent
  • partner_key_invalid (401) — the X-Api-Key is unknown or revoked
  • subject_mismatch (403) — the {userId} in the path is not the token's user
  • origin_rejected (403) — a browser Origin other than the configured web origin
  • permission_required (403) — the operator credential lacks the scope this call needs
  • rate_limited (429) — the per-key or per-user limit is spent; honour Retry-After
  • stream_capacity (429) — no stream socket is free on this replica or for this user; honour Retry-After
  • invalid_cursor (400) — the cursor is not one this list minted
Validation rules
Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequired

The id Fin used for this request; quote it when reporting a problem

retryablebooleanrequired

Whether repeating the same request later can succeed without changing it

detailstringoptional

Only on invalid_input: which part of the request failed validation

issuesarrayoptional

Only on invalid_input: one entry per failing field

Show attributes

Only on invalid_input: one entry per failing field

Array items · object
pathstringrequired

The JSON pointer of the failing field; empty for the root object

messagestringrequired

Why the field failed

Complete OpenAPI definition

The exact operation and all referenced components, including recursive schemas.

{
  "operation": {
    "operationId": "activity.history",
    "summary": "List activity history",
    "tags": [
      "activity"
    ],
    "description": "Pages backward through durable user-owned milestones, including approvals, run lifecycle and settlement evidence. Omit the cursor for the newest page and pass the returned cursor to continue.",
    "parameters": [
      {
        "schema": {
          "default": 20,
          "type": "integer",
          "minimum": 1,
          "maximum": 50
        },
        "in": "query",
        "name": "limit",
        "required": false,
        "description": "How many milestones to answer, at most 50"
      },
      {
        "schema": {
          "type": "string",
          "maxLength": 256
        },
        "in": "query",
        "name": "cursor",
        "required": false,
        "description": "A `before` cursor from the previous page; omit for the newest page."
      },
      {
        "schema": {
          "type": "string",
          "enum": [
            "conversation",
            "automation",
            "operation"
          ]
        },
        "in": "query",
        "name": "origin",
        "required": false,
        "description": "Only milestones of this origin: `conversation` for ordinary chats, `automation` for conversations created by automations, or `operation` for direct financial requests without a conversation. Omit to include every origin."
      },
      {
        "schema": {
          "type": "string",
          "enum": [
            "all",
            "actions"
          ]
        },
        "in": "query",
        "name": "scope",
        "required": false,
        "description": "Which milestones count: `actions` keeps approvals, financial results and automation runs, including direct financial operations; `all` or omitted also includes the ordinary chat lifecycle."
      },
      {
        "schema": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "in": "path",
        "name": "userId",
        "required": true,
        "description": "The user in the path; must equal the token's own account."
      }
    ],
    "security": [
      {
        "apiKey": [],
        "userToken": []
      }
    ],
    "responses": {
      "200": {
        "description": "A page of historical milestones.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConversationActivityItem"
                  },
                  "description": "This page's milestones, newest first."
                },
                "nextCursor": {
                  "description": "Exclusive descending cursor for the next page; refetch loaded pages sequentially to avoid displaced-item gaps.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "data",
                "nextCursor"
              ]
            }
          }
        }
      },
      "400": {
        "$ref": "#/components/responses/InvalidInput"
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "403": {
        "$ref": "#/components/responses/Forbidden"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "412": {
        "$ref": "#/components/responses/AccountNotProvisioned"
      },
      "429": {
        "$ref": "#/components/responses/TooManyRequests"
      },
      "500": {
        "$ref": "#/components/responses/Internal"
      },
      "503": {
        "$ref": "#/components/responses/Unavailable"
      }
    }
  },
  "components": {
    "schemas": {
      "ConversationActivityItem": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "seq": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "description": "The event's global journal sequence, used to order this milestone page; not a cross-conversation commit-order guarantee."
              },
              "title": {
                "description": "The conversation's current title, or null for an untitled conversation or a direct operation.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
                "description": "When this milestone happened."
              },
              "kind": {
                "type": "string",
                "enum": [
                  "run_started",
                  "run_completed",
                  "run_failed",
                  "run_aborted",
                  "run_paused",
                  "approval_requested",
                  "approval_approved",
                  "approval_denied",
                  "approval_expired",
                  "automation_triggered",
                  "swap_settled",
                  "swap_refunded",
                  "swap_not_executed",
                  "execution_result"
                ],
                "description": "Which historical milestone this journal event records."
              },
              "snippet": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 280
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Bounded public input, approval summary, automation name, or public failure/abort reason."
              },
              "approval": {
                "description": "Historical approved terms from this event only; never an actionable approval.",
                "type": "object",
                "properties": {
                  "contract": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "near_intents_transfer",
                            "description": "Which contract template this is."
                          },
                          "actions": {
                            "minItems": 1,
                            "maxItems": 16,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "swap",
                                      "description": "Exchange one asset for another; custody never leaves the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "withdraw_to_owner",
                                      "description": "Return an asset to the account that owns the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "send",
                                      "description": "Pay a pinned destination outside the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    },
                                    "recipient": {
                                      "type": "object",
                                      "properties": {
                                        "chain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 32,
                                          "description": "Which chain the destination address is on."
                                        },
                                        "address": {
                                          "type": "string",
                                          "pattern": "^[\\x21-\\x7e]{1,128}$",
                                          "description": "The destination address on that chain."
                                        }
                                      },
                                      "required": [
                                        "chain",
                                        "address"
                                      ],
                                      "description": "The pinned destination this action pays."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output",
                                    "recipient"
                                  ]
                                }
                              ]
                            },
                            "description": "The actions this contract authorizes, executed in order."
                          },
                          "validUntil": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
                            "description": "When this contract's authority expires."
                          },
                          "maxExecutions": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10000,
                            "description": "How many times this contract may be executed before it is exhausted."
                          },
                          "bounds": {
                            "type": "object",
                            "properties": {
                              "maxValueLossBps": {
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,4})$",
                                "description": "The most value an execution may give up to price movement and fees together, in basis points."
                              },
                              "maxSignatureLifetimeSeconds": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 259500,
                                "description": "Explicit maximum lifetime of each released transfer signature, in seconds. 1Click confidential swaps require up to 259500 seconds (72 hours 5 minutes). This does not extend the short execution window or approval validity."
                              }
                            },
                            "required": [
                              "maxValueLossBps",
                              "maxSignatureLifetimeSeconds"
                            ],
                            "description": "The value-loss and signature-lifetime limits every execution must respect."
                          }
                        },
                        "required": [
                          "type",
                          "actions",
                          "validUntil",
                          "maxExecutions",
                          "bounds"
                        ]
                      }
                    ],
                    "description": "The approved contract: its actions, expiry and bounds."
                  },
                  "executionRestriction": {
                    "description": "Set when this approval disallowed automatic signing.",
                    "type": "string",
                    "const": "signing_disabled"
                  }
                },
                "required": [
                  "contract"
                ]
              },
              "settlement": {
                "description": "Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.",
                "type": "object",
                "properties": {
                  "receipt": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "settled",
                            "description": "The leg settled: its output asset moved as planned."
                          },
                          "output": {
                            "type": "object",
                            "properties": {
                              "tokenId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "description": "The asset's NEP-141 token id."
                              },
                              "decimals": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 38,
                                "description": "How many decimal places the token's smallest unit represents."
                              },
                              "amountRaw": {
                                "description": "The amount, in the token's smallest unit, when it is known.",
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,38})$"
                              }
                            },
                            "required": [
                              "tokenId",
                              "decimals"
                            ],
                            "description": "What the leg produced."
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state",
                          "output"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "refunded",
                            "description": "The leg did not settle and its input asset was returned."
                          },
                          "refund": {
                            "type": "object",
                            "properties": {
                              "tokenId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "description": "The asset's NEP-141 token id."
                              },
                              "decimals": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 38,
                                "description": "How many decimal places the token's smallest unit represents."
                              },
                              "amountRaw": {
                                "description": "The amount, in the token's smallest unit, when it is known.",
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,38})$"
                              }
                            },
                            "required": [
                              "tokenId",
                              "decimals"
                            ],
                            "description": "What was returned."
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state",
                          "refund"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "not_executed",
                            "description": "The leg did not settle. Most reasons mean it never reached the provider; `rejected` means it did and was refused there — see `reason`."
                          },
                          "reason": {
                            "description": "Why nothing executed: `signing_disabled` when automatic signing was off, `signing_failed` when signing itself failed, `rejected` when the provider refused the submission outright (it did reach the provider), `expired` when the leg's own signing/deposit window elapsed before a terminal fact arrived, or `failed` otherwise. Optional so receipts written before the reason was carried still parse.",
                            "type": "string",
                            "enum": [
                              "signing_disabled",
                              "signing_failed",
                              "rejected",
                              "expired",
                              "failed"
                            ]
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state"
                        ]
                      }
                    ],
                    "description": "The retained terminal evidence for this financial leg: settlement, refund or non-execution."
                  },
                  "input": {
                    "description": "The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.",
                    "type": "object",
                    "properties": {
                      "tokenId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "description": "The asset's NEP-141 token id."
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 38,
                        "description": "How many decimal places the token's smallest unit represents."
                      },
                      "amountRaw": {
                        "description": "The amount, in the token's smallest unit, when it is known.",
                        "type": "string",
                        "pattern": "^(0|[1-9]\\d{0,38})$"
                      }
                    },
                    "required": [
                      "tokenId",
                      "decimals"
                    ]
                  },
                  "requestedOutput": {
                    "description": "Exact-output target and input ceiling are requested terms, never paid/received amounts.",
                    "type": "object",
                    "properties": {
                      "tokenId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "description": "The asset's NEP-141 token id."
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 38,
                        "description": "How many decimal places the token's smallest unit represents."
                      },
                      "amountRaw": {
                        "description": "The amount, in the token's smallest unit, when it is known.",
                        "type": "string",
                        "pattern": "^(0|[1-9]\\d{0,38})$"
                      }
                    },
                    "required": [
                      "tokenId",
                      "decimals"
                    ]
                  },
                  "maximumInputRaw": {
                    "description": "The most this leg would spend, in the input asset's smallest unit.",
                    "type": "string",
                    "pattern": "^(0|[1-9]\\d{0,38})$"
                  }
                },
                "required": [
                  "receipt"
                ]
              },
              "execution": {
                "description": "Only reviewed execution tools; never a raw tool result or a claim that the funds settled.",
                "type": "object",
                "properties": {
                  "tool": {
                    "type": "string",
                    "enum": [
                      "intents_execute",
                      "automation_create"
                    ],
                    "description": "Which execution tool produced this result: `intents_execute` for a swap, `automation_create` for setting up an automation."
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "completed",
                      "failed",
                      "denied",
                      "unverified",
                      "pending",
                      "partial",
                      "no_trade",
                      "settled",
                      "refunded",
                      "not_executed"
                    ],
                    "description": "How the tool resolved: `completed` for a finished non-trade tool; `failed` or `denied` when it did not run (`message` explains why); `unverified` when the result could not be confirmed; `no_trade` when nothing needed to trade; `pending` while settlement is unresolved or `partial` when only part executed; `settled` once every leg settled; `refunded` or `not_executed` when it did not complete."
                  },
                  "reason": {
                    "description": "Why the tool did not execute; present only when `status` is `not_executed`.",
                    "type": "string",
                    "const": "signing_disabled"
                  },
                  "message": {
                    "description": "A failed or denied result's own fixed message, so a row says what the card says.",
                    "type": "string",
                    "maxLength": 280
                  },
                  "dispatched": {
                    "description": "How many legs the recorded pending or partial result reports; not proof that each was dispatched.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 16
                  }
                },
                "required": [
                  "tool",
                  "status"
                ]
              },
              "conversationId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "description": "The conversation this historical milestone belongs to."
              },
              "origin": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "conversation",
                        "description": "An ordinary user-started conversation."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "automation",
                        "description": "A conversation an automation created."
                      },
                      "automationId": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                        "description": "The automation that created this conversation."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120,
                        "description": "The automation's name at the time this conversation started."
                      }
                    },
                    "required": [
                      "type",
                      "automationId",
                      "name"
                    ]
                  }
                ],
                "description": "The conversation's retained origin, including for financial work requested within it."
              }
            },
            "required": [
              "seq",
              "title",
              "createdAt",
              "kind",
              "snippet",
              "conversationId",
              "origin"
            ]
          },
          {
            "type": "object",
            "properties": {
              "seq": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "description": "The event's global journal sequence, used to order this milestone page; not a cross-conversation commit-order guarantee."
              },
              "title": {
                "description": "The conversation's current title, or null for an untitled conversation or a direct operation.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
                "description": "When this milestone happened."
              },
              "kind": {
                "type": "string",
                "enum": [
                  "run_started",
                  "run_completed",
                  "run_failed",
                  "run_aborted",
                  "run_paused",
                  "approval_requested",
                  "approval_approved",
                  "approval_denied",
                  "approval_expired",
                  "automation_triggered",
                  "swap_settled",
                  "swap_refunded",
                  "swap_not_executed",
                  "execution_result"
                ],
                "description": "Which historical milestone this journal event records."
              },
              "snippet": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 280
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Bounded public input, approval summary, automation name, or public failure/abort reason."
              },
              "approval": {
                "description": "Historical approved terms from this event only; never an actionable approval.",
                "type": "object",
                "properties": {
                  "contract": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "near_intents_transfer",
                            "description": "Which contract template this is."
                          },
                          "actions": {
                            "minItems": 1,
                            "maxItems": 16,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "swap",
                                      "description": "Exchange one asset for another; custody never leaves the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "withdraw_to_owner",
                                      "description": "Return an asset to the account that owns the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "send",
                                      "description": "Pay a pinned destination outside the agent wallet."
                                    },
                                    "input": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action spends: pinned to one token, or any token the agent wallet holds."
                                    },
                                    "quantity": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_tokens",
                                              "description": "Spend an exact amount of the input token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact input amount, in the input token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Spend an exact quantity of the input token, not its USD value. Exactly 5 USDC with verified input decimals 6 means amountRaw \"5000000\". Scale the requested decimal digits using the verified input decimals; reject excess fractional digits. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_input_value_usd",
                                              "description": "Spend a USD-denominated value of the input token."
                                            },
                                            "value": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})(?:\\.\\d{1,18})?$",
                                              "description": "The USD value to spend, as a decimal string."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "value"
                                          ],
                                          "description": "Spend a USD-denominated value of the input token: \"$5 worth of USDC\" means value \"5\". The host calculates token units from live prices. This does not mean exactly 5 USDC; never substitute it for a token-denominated quantity."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "exact_output_tokens",
                                              "description": "Receive an exact amount of the output token."
                                            },
                                            "amountRaw": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,38})$",
                                              "description": "The exact output amount, in the output token's smallest unit."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "amountRaw"
                                          ],
                                          "description": "Receive an exact quantity of the output token. Scale the requested decimal digits using the verified output decimals to obtain amountRaw; reject excess fractional digits. The host calculates the required input. No floating-point arithmetic or bash."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "all_of_input",
                                              "description": "Spend everything the agent wallet holds of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "fraction_of_input",
                                              "description": "Spend a fraction of the input asset."
                                            },
                                            "bps": {
                                              "type": "string",
                                              "pattern": "^(0|[1-9]\\d{0,4})$",
                                              "description": "The fraction to spend, in basis points of the input asset."
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "bps"
                                          ]
                                        }
                                      ],
                                      "description": "How much moves: an exact token amount, an exact USD value, an exact output amount, all of the input, or a fraction of it."
                                    },
                                    "output": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "pinned": {
                                              "type": "object",
                                              "properties": {
                                                "tokenId": {
                                                  "type": "string",
                                                  "pattern": "^nep141:[a-z0-9]+(?:[._-][a-z0-9]+)*$",
                                                  "description": "The token's NEP-141 identifier."
                                                },
                                                "decimals": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 38,
                                                  "description": "How many decimal places the token's smallest unit represents."
                                                }
                                              },
                                              "required": [
                                                "tokenId",
                                                "decimals"
                                              ],
                                              "description": "The exact token this asset is pinned to."
                                            }
                                          },
                                          "required": [
                                            "pinned"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "any": {
                                              "type": "boolean",
                                              "const": true,
                                              "description": "Any token the agent wallet holds; the executor picks one at execution."
                                            }
                                          },
                                          "required": [
                                            "any"
                                          ]
                                        }
                                      ],
                                      "description": "The asset this action produces: pinned to one token, or left open."
                                    },
                                    "recipient": {
                                      "type": "object",
                                      "properties": {
                                        "chain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 32,
                                          "description": "Which chain the destination address is on."
                                        },
                                        "address": {
                                          "type": "string",
                                          "pattern": "^[\\x21-\\x7e]{1,128}$",
                                          "description": "The destination address on that chain."
                                        }
                                      },
                                      "required": [
                                        "chain",
                                        "address"
                                      ],
                                      "description": "The pinned destination this action pays."
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "input",
                                    "quantity",
                                    "output",
                                    "recipient"
                                  ]
                                }
                              ]
                            },
                            "description": "The actions this contract authorizes, executed in order."
                          },
                          "validUntil": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
                            "description": "When this contract's authority expires."
                          },
                          "maxExecutions": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10000,
                            "description": "How many times this contract may be executed before it is exhausted."
                          },
                          "bounds": {
                            "type": "object",
                            "properties": {
                              "maxValueLossBps": {
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,4})$",
                                "description": "The most value an execution may give up to price movement and fees together, in basis points."
                              },
                              "maxSignatureLifetimeSeconds": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 259500,
                                "description": "Explicit maximum lifetime of each released transfer signature, in seconds. 1Click confidential swaps require up to 259500 seconds (72 hours 5 minutes). This does not extend the short execution window or approval validity."
                              }
                            },
                            "required": [
                              "maxValueLossBps",
                              "maxSignatureLifetimeSeconds"
                            ],
                            "description": "The value-loss and signature-lifetime limits every execution must respect."
                          }
                        },
                        "required": [
                          "type",
                          "actions",
                          "validUntil",
                          "maxExecutions",
                          "bounds"
                        ]
                      }
                    ],
                    "description": "The approved contract: its actions, expiry and bounds."
                  },
                  "executionRestriction": {
                    "description": "Set when this approval disallowed automatic signing.",
                    "type": "string",
                    "const": "signing_disabled"
                  }
                },
                "required": [
                  "contract"
                ]
              },
              "settlement": {
                "description": "Verified receipt and separate requested terms from its own earlier frozen plan, if recorded.",
                "type": "object",
                "properties": {
                  "receipt": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "settled",
                            "description": "The leg settled: its output asset moved as planned."
                          },
                          "output": {
                            "type": "object",
                            "properties": {
                              "tokenId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "description": "The asset's NEP-141 token id."
                              },
                              "decimals": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 38,
                                "description": "How many decimal places the token's smallest unit represents."
                              },
                              "amountRaw": {
                                "description": "The amount, in the token's smallest unit, when it is known.",
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,38})$"
                              }
                            },
                            "required": [
                              "tokenId",
                              "decimals"
                            ],
                            "description": "What the leg produced."
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state",
                          "output"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "refunded",
                            "description": "The leg did not settle and its input asset was returned."
                          },
                          "refund": {
                            "type": "object",
                            "properties": {
                              "tokenId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "description": "The asset's NEP-141 token id."
                              },
                              "decimals": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 38,
                                "description": "How many decimal places the token's smallest unit represents."
                              },
                              "amountRaw": {
                                "description": "The amount, in the token's smallest unit, when it is known.",
                                "type": "string",
                                "pattern": "^(0|[1-9]\\d{0,38})$"
                              }
                            },
                            "required": [
                              "tokenId",
                              "decimals"
                            ],
                            "description": "What was returned."
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state",
                          "refund"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "approvalId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "The approval's id."
                          },
                          "legId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                            "description": "Which leg of the plan this receipt settles."
                          },
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15,
                            "description": "This leg's position within the plan, counting from zero."
                          },
                          "operationId": {
                            "description": "The durable financial request this evidence belongs to.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "occurrenceId": {
                            "description": "The archived event's original identity, retained verbatim; current receipts use `operationId`.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "state": {
                            "type": "string",
                            "const": "not_executed",
                            "description": "The leg did not settle. Most reasons mean it never reached the provider; `rejected` means it did and was refused there — see `reason`."
                          },
                          "reason": {
                            "description": "Why nothing executed: `signing_disabled` when automatic signing was off, `signing_failed` when signing itself failed, `rejected` when the provider refused the submission outright (it did reach the provider), `expired` when the leg's own signing/deposit window elapsed before a terminal fact arrived, or `failed` otherwise. Optional so receipts written before the reason was carried still parse.",
                            "type": "string",
                            "enum": [
                              "signing_disabled",
                              "signing_failed",
                              "rejected",
                              "expired",
                              "failed"
                            ]
                          }
                        },
                        "required": [
                          "approvalId",
                          "legId",
                          "index",
                          "state"
                        ]
                      }
                    ],
                    "description": "The retained terminal evidence for this financial leg: settlement, refund or non-execution."
                  },
                  "input": {
                    "description": "The frozen plan's input asset and requested amount, when retained; not a measurement of actual spend.",
                    "type": "object",
                    "properties": {
                      "tokenId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "description": "The asset's NEP-141 token id."
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 38,
                        "description": "How many decimal places the token's smallest unit represents."
                      },
                      "amountRaw": {
                        "description": "The amount, in the token's smallest unit, when it is known.",
                        "type": "string",
                        "pattern": "^(0|[1-9]\\d{0,38})$"
                      }
                    },
                    "required": [
                      "tokenId",
                      "decimals"
                    ]
                  },
                  "requestedOutput": {
                    "description": "Exact-output target and input ceiling are requested terms, never paid/received amounts.",
                    "type": "object",
                    "properties": {
                      "tokenId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "description": "The asset's NEP-141 token id."
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 38,
                        "description": "How many decimal places the token's smallest unit represents."
                      },
                      "amountRaw": {
                        "description": "The amount, in the token's smallest unit, when it is known.",
                        "type": "string",
                        "pattern": "^(0|[1-9]\\d{0,38})$"
                      }
                    },
                    "required": [
                      "tokenId",
                      "decimals"
                    ]
                  },
                  "maximumInputRaw": {
                    "description": "The most this leg would spend, in the input asset's smallest unit.",
                    "type": "string",
                    "pattern": "^(0|[1-9]\\d{0,38})$"
                  }
                },
                "required": [
                  "receipt"
                ]
              },
              "execution": {
                "description": "Only reviewed execution tools; never a raw tool result or a claim that the funds settled.",
                "type": "object",
                "properties": {
                  "tool": {
                    "type": "string",
                    "enum": [
                      "intents_execute",
                      "automation_create"
                    ],
                    "description": "Which execution tool produced this result: `intents_execute` for a swap, `automation_create` for setting up an automation."
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "completed",
                      "failed",
                      "denied",
                      "unverified",
                      "pending",
                      "partial",
                      "no_trade",
                      "settled",
                      "refunded",
                      "not_executed"
                    ],
                    "description": "How the tool resolved: `completed` for a finished non-trade tool; `failed` or `denied` when it did not run (`message` explains why); `unverified` when the result could not be confirmed; `no_trade` when nothing needed to trade; `pending` while settlement is unresolved or `partial` when only part executed; `settled` once every leg settled; `refunded` or `not_executed` when it did not complete."
                  },
                  "reason": {
                    "description": "Why the tool did not execute; present only when `status` is `not_executed`.",
                    "type": "string",
                    "const": "signing_disabled"
                  },
                  "message": {
                    "description": "A failed or denied result's own fixed message, so a row says what the card says.",
                    "type": "string",
                    "maxLength": 280
                  },
                  "dispatched": {
                    "description": "How many legs the recorded pending or partial result reports; not proof that each was dispatched.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 16
                  }
                },
                "required": [
                  "tool",
                  "status"
                ]
              },
              "conversationId": {
                "type": "null",
                "description": "Null because this milestone belongs to a direct operation without a conversation."
              },
              "origin": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "operation",
                    "description": "A direct financial request with no conversation or agent run."
                  },
                  "operationId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                    "description": "The durable financial operation this activity belongs to."
                  }
                },
                "required": [
                  "type",
                  "operationId"
                ],
                "description": "The direct financial operation that owns this milestone."
              }
            },
            "required": [
              "seq",
              "title",
              "createdAt",
              "kind",
              "snippet",
              "conversationId",
              "origin"
            ]
          }
        ],
        "description": "One historical journal milestone from an owned conversation or direct financial operation; it does not represent current execution authority."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The kind of problem as a URN, `urn:fin:error:<kind>`; stable, compare against it"
          },
          "title": {
            "type": "string",
            "description": "The kind's human title, for logs; never parse it"
          },
          "status": {
            "type": "integer",
            "minimum": 400,
            "maximum": 599,
            "description": "The HTTP status, repeated in the body"
          },
          "reason": {
            "description": "The machine-readable why. One of:\n\n- `run_active` (409) — a run already holds this conversation\n- `budget_exhausted` (409) — the user's spend headroom is gone, or an operator froze it\n- `approval_not_pending` (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation\n- `execution_capacity` (409) — no execution capacity is free right now; `retryable` says whether to try again\n- `execution_unavailable` (409) — the execution engine could not take the work\n- `stop_pending` (409) — a stop is already in progress and its cleanup is not yet confirmed\n- `automation_changed` (409) — the `revision` sent is stale; reload the automation\n- `automation_held` (409) — an operator holds the automation; it fires again when released\n- `automation_invalid` (409) — the automation's definition cannot run as written\n- `automation_completed` (409) — the automation has finished for good and cannot fire again\n- `automation_limit` (409) — the user already has as many automations as the deployment allows\n- `profile_unknown_tool` (409) — the run profile names a tool this deployment does not have\n- `deployment_paused` (409) — an operator paused a deployment control; nothing was admitted or fired\n- `run_not_active` (409) — the run named in the path is not the conversation's live run\n- `withdrawal_changed` (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress\n- `credential_expired` (401) — the user token has expired; obtain a fresh one\n- `account_disabled` (403) — an operator disabled the account\n- `account_not_provisioned` (412) — the identity is verified but has no account yet; call `users.ensure` first\n- `provider_unavailable` (503) — an external provider the call depends on did not answer\n- `engine_unavailable` (503) — the execution engine did not answer\n- `invalid_input` (400) — the body or query failed validation; `issues` names each field\n- `internal` (500) — a fault on our side; quote `requestId` when reporting it\n- `partner_key_required` (401) — no `X-Api-Key` header was sent\n- `partner_key_invalid` (401) — the `X-Api-Key` is unknown or revoked\n- `subject_mismatch` (403) — the `{userId}` in the path is not the token's user\n- `origin_rejected` (403) — a browser `Origin` other than the configured web origin\n- `permission_required` (403) — the operator credential lacks the scope this call needs\n- `rate_limited` (429) — the per-key or per-user limit is spent; honour `Retry-After`\n- `stream_capacity` (429) — no stream socket is free on this replica or for this user; honour `Retry-After`\n- `invalid_cursor` (400) — the `cursor` is not one this list minted",
            "type": "string",
            "enum": [
              "run_active",
              "budget_exhausted",
              "approval_not_pending",
              "execution_capacity",
              "execution_unavailable",
              "stop_pending",
              "automation_changed",
              "automation_held",
              "automation_invalid",
              "automation_completed",
              "automation_limit",
              "profile_unknown_tool",
              "deployment_paused",
              "run_not_active",
              "withdrawal_changed",
              "credential_expired",
              "account_disabled",
              "account_not_provisioned",
              "provider_unavailable",
              "engine_unavailable",
              "invalid_input",
              "internal",
              "partner_key_required",
              "partner_key_invalid",
              "subject_mismatch",
              "origin_rejected",
              "permission_required",
              "rate_limited",
              "stream_capacity",
              "invalid_cursor"
            ]
          },
          "requestId": {
            "type": "string",
            "description": "The id Fin used for this request; quote it when reporting a problem"
          },
          "retryable": {
            "type": "boolean",
            "description": "Whether repeating the same request later can succeed without changing it"
          },
          "detail": {
            "description": "Only on `invalid_input`: which part of the request failed validation",
            "type": "string"
          },
          "issues": {
            "description": "Only on `invalid_input`: one entry per failing field",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "description": "The JSON pointer of the failing field; empty for the root object"
                },
                "message": {
                  "type": "string",
                  "description": "Why the field failed"
                }
              },
              "required": [
                "path",
                "message"
              ]
            }
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "requestId",
          "retryable"
        ],
        "description": "RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack."
      }
    },
    "responses": {
      "InvalidInput": {
        "description": "The request could not be read as this operation expects.\n\n- `invalid_input` — the body or query failed validation; `issues` names each field\n- `invalid_cursor` — the `cursor` is not one this list minted",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "A credential is missing, invalid or expired.\n\n- `partner_key_required` — no `X-Api-Key` header was sent\n- `partner_key_invalid` — the `X-Api-Key` is unknown or revoked\n- `credential_expired` — the user token has expired; obtain a fresh one",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Forbidden": {
        "description": "The credentials are valid but may not do this.\n\n- `subject_mismatch` — the `{userId}` in the path is not the token's user\n- `account_disabled` — an operator disabled the account\n- `origin_rejected` — a browser `Origin` other than the configured web origin",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "NotFound": {
        "description": "The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "AccountNotProvisioned": {
        "description": "The identity is verified but has no account yet.\n\n- `account_not_provisioned` — the identity is verified but has no account yet; call `users.ensure` first",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "A limiter refused the request; honour `Retry-After`.\n\n- `rate_limited` — the per-key or per-user limit is spent; honour `Retry-After`",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Internal": {
        "description": "A fault on our side; quote `requestId` when reporting it.\n\n- `internal` — a fault on our side; quote `requestId` when reporting it",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Unavailable": {
        "description": "The replica is draining or a dependency did not answer; `retryable` says whether to try again.\n\n- `internal` — a fault on our side; quote `requestId` when reporting it",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key"
      },
      "userToken": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}
Fin documentation Built from the API contract · v1

Search all documentation