{"openapi":"3.0.0","info":{"title":"Veda Console API","version":"1.0.0","description":"The Veda Console API is the programmatic surface for interacting with\nVeda vaults outside of the [Veda Console](https://console.veda.tech).\nIt exposes the endpoints that power Veda's first-party products —\nposition data, transaction builder / rebalancing, permissions updates,\nand more — to partners building custom strategist tooling, automation,\nand dashboards.\n\nUse the [Veda Console](https://console.veda.tech) to generate an API key.\n\n## Authentication\n\nAll endpoints require an API key passed as a Bearer token:\n\n    Authorization: Bearer veda_user_live_...\n\nYour key is scoped to a single user — calls outside that user's\npermissions return 403.\n\n## Errors\n\nEvery error response is JSON of the form:\n\n    {\"error\": \"<human-readable message>\"}\n\nCommon statuses:\n  * `401` — missing or malformed Authorization header\n  * `403` — key revoked/expired, or insufficient permission for this\n    action/resource\n  * `404` — resource not found\n  * `429` — rate limit exceeded\n  * `5xx` — transient Veda-side error; safe to retry\n\n## Versioning\n\nThe current API is `v1`. Breaking changes ship under a new prefix\n(`v2`, etc.) with a deprecation window for `v1`. Additive changes\n(new endpoints, new optional fields) ship in place.\n"},"servers":[{"url":"https://api.veda.tech/v1"}],"paths":{"/tx-builder/health":{"get":{"tags":["Health"],"summary":"Health Check","operationId":"health_check_tx_builder_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/tx-builder/api/actions/{chain}/{vault_address}/{strategist_address}":{"get":{"tags":["Transaction Builder"],"summary":"Get Available Actions","operationId":"get_available_actions_tx_builder_api_actions__chain___vault_address___strategist_address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"strategist_address","in":"path","required":true,"schema":{"type":"string","title":"Strategist Address"}},{"name":"include_metadata","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Metadata"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/tx-builder/api/actions/{chain}/{vault_address}/{strategist_address}/constraints/{route}":{"get":{"tags":["Transaction Builder"],"summary":"Get Route Constraints","operationId":"get_route_constraints_tx_builder_api_actions__chain___vault_address___strategist_address__constraints__route__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"strategist_address","in":"path","required":true,"schema":{"type":"string","title":"Strategist Address"}},{"name":"route","in":"path","required":true,"schema":{"type":"string","title":"Route"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/tx-builder/api/execute/{chain}/{vault_address}/{tail}":{"post":{"tags":["Transaction Builder"],"summary":"Execute Action","operationId":"execute_action_tx_builder_api_execute__chain___vault_address___tail__post","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"tail","in":"path","required":true,"schema":{"type":"string","title":"Tail"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/tx-builder/api/execute-multiple/{chain}/{vault_address}/{strategist_address}":{"post":{"tags":["Transaction Builder"],"summary":"Execute Multiple Actions","operationId":"execute_multiple_actions_tx_builder_api_execute_multiple__chain___vault_address___strategist_address__post","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"strategist_address","in":"path","required":true,"schema":{"type":"string","title":"Strategist Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteMultipleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults":{"get":{"tags":["Vaults"],"summary":"List Vaults","operationId":"list_vaults_public_v1_vaults_get","parameters":[{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"lifecycle_state","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Lifecycle State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-registry_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/trees/{root_hash}":{"get":{"tags":["Trees"],"summary":"Get Tree","operationId":"get_tree_public_v1_trees__root_hash__get","parameters":[{"name":"root_hash","in":"path","required":true,"schema":{"type":"string","title":"Root Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Tree Public V1 Trees  Root Hash  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-registry_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/trees/{root_hash}/pending":{"get":{"tags":["Trees"],"summary":"Get Pending Tree","description":"Fetch a PENDING (staged, not-yet-on-chain) tree by its root hash.\n\nA root is \"pending\" for a principal when it exists on one of their\naccessible vaults' protocol records but is not that vault's active\non-chain root. Once the root is rotated on-chain it is no longer\npending — this endpoint 404s for it and the base /trees/{root_hash}\nendpoint serves it instead.\n\nNot cached (unlike the base endpoint): pending status is mutable — a\nroot graduates on-chain (or is abandoned), which flips this endpoint's\nresult — so the default no-store applies. The tree blob itself is\ncontent-addressed and immutable, but its accessibility here is not.","operationId":"get_pending_tree_public_v1_trees__root_hash__pending_get","parameters":[{"name":"root_hash","in":"path","required":true,"schema":{"type":"string","title":"Root Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pending Tree Public V1 Trees  Root Hash  Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-registry_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults/{chain}/{vault_address}/roots":{"get":{"tags":["Vaults"],"summary":"List Vault Roots","operationId":"list_vault_roots_public_v1_vaults__chain___vault_address__roots_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Vault Roots Public V1 Vaults  Chain   Vault Address  Roots Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-registry_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults/{chain}/{vault_address}/dailyData":{"get":{"tags":["Vaults"],"summary":"Get Daily Data","operationId":"get_daily_data_public_v1_vaults__chain___vault_address__dailyData_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 UTC start of range (inclusive). Defaults to earliest.","title":"From"},"description":"ISO-8601 UTC start of range (inclusive). Defaults to earliest."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 UTC end of range (inclusive). Defaults to latest.","title":"To"},"description":"ISO-8601 UTC end of range (inclusive). Defaults to latest."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from a prior page; resend with the same from/to and page_size.","title":"Cursor"},"description":"Opaque pagination cursor from a prior page; resend with the same from/to and page_size."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Daily Data Public V1 Vaults  Chain   Vault Address  Dailydata Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-api_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults/{chain}/{vault_address}/performance":{"get":{"tags":["Vaults"],"summary":"Get Performance","operationId":"get_performance_public_v1_vaults__chain___vault_address__performance_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/vault-api_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults/{chain}/{vault_address}/metrics/snapshot/latest":{"get":{"tags":["Vaults"],"summary":"Get Latest Snapshot","description":"Return the latest published NAV snapshot in the curated public shape.","operationId":"get_latest_snapshot_public_v1_vaults__chain___vault_address__metrics_snapshot_latest_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Latest Snapshot Public V1 Vaults  Chain   Vault Address  Metrics Snapshot Latest Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/nav-api_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/vaults/{chain}/{vault_address}/metrics/snapshot":{"get":{"tags":["Vaults"],"summary":"List Snapshot History","description":"Return a published-only page of curated NAV snapshots.","operationId":"list_snapshot_history_public_v1_vaults__chain___vault_address__metrics_snapshot_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque pagination cursor from a prior snapshot history page.","title":"Cursor"},"description":"Opaque pagination cursor from a prior snapshot history page."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Snapshot History Public V1 Vaults  Chain   Vault Address  Metrics Snapshot Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/nav-api_HTTPValidationError"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/health":{"get":{"tags":["Swap"],"summary":"Report public Swap API availability.","operationId":"get_swap_health_public_v1_swap_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/{chain}/{vault_address}/capabilities":{"get":{"tags":["Swap"],"summary":"List configured executable swap capabilities for a vault.","operationId":"get_swap_capabilities_public_v1_swap__chain___vault_address__capabilities_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","description":"Canonical chain registry name","examples":["ethereum"],"title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"],"title":"Vault Address"}},{"name":"include_rate_limit","in":"query","required":false,"schema":{"type":"boolean","description":"Include the periodically cached input-token rate-limit snapshot.","default":false,"title":"Include Rate Limit"},"description":"Include the periodically cached input-token rate-limit snapshot."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapCapabilitiesResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/{chain}/{vault_address}/capabilities/{strategist_address}":{"get":{"tags":["Swap"],"summary":"List executable swap capabilities authorized for a strategist.","operationId":"get_strategist_swap_capabilities_public_v1_swap__chain___vault_address__capabilities__strategist_address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","description":"Canonical chain registry name","examples":["ethereum"],"title":"Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"],"title":"Vault Address"}},{"name":"strategist_address","in":"path","required":true,"schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"],"title":"Strategist Address"}},{"name":"include_rate_limit","in":"query","required":false,"schema":{"type":"boolean","description":"Include the periodically cached input-token rate-limit snapshot.","default":false,"title":"Include Rate Limit"},"description":"Include the periodically cached input-token rate-limit snapshot."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrategistSwapCapabilitiesResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"404":{"description":"No active strategist deployment.","headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"502":{"description":"Strategist authorization response is invalid.","headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"503":{"description":"Capability or strategist authorization data is unavailable.","headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"504":{"description":"Strategist authorization lookup timed out.","headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/quote":{"post":{"tags":["Swap"],"summary":"Create a short-lived market swap quote.","operationId":"post_swap_quote_public_v1_swap_quote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/market":{"post":{"tags":["Swap"],"summary":"Build a market swap transaction.","operationId":"post_swap_market_public_v1_swap_market_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildInstantSwapTransactionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSwapResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/limit":{"post":{"tags":["Swap"],"summary":"Build a limit-order submission transaction.","operationId":"post_swap_limit_public_v1_swap_limit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitLimitOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitLimitOrderResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/limit/{order_id}/cancel":{"post":{"tags":["Swap"],"summary":"Build a limit-order cancellation transaction.","operationId":"post_swap_limit_cancel_public_v1_swap_limit__order_id__cancel_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","minLength":68,"maxLength":68,"pattern":"^ord_[0-9a-f]{64}$","description":"Order identifier derived losslessly from the on-chain protocol hash","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"],"title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelLimitOrderRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelLimitOrderResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/limit/{order_id}/replace":{"post":{"tags":["Swap"],"summary":"Build a limit-order replacement transaction.","operationId":"post_swap_limit_replace_public_v1_swap_limit__order_id__replace_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","minLength":68,"maxLength":68,"pattern":"^ord_[0-9a-f]{64}$","description":"Order identifier derived losslessly from the on-chain protocol hash","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"],"title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceLimitOrderRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceLimitOrderResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/{chain}/orders":{"get":{"tags":["Swap"],"summary":"List limit orders for the vaults you can access.","operationId":"list_swap_orders_public_v1_swap__chain__orders_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","description":"Canonical chain registry name","examples":["ethereum"],"title":"Chain"}},{"name":"boring_swapper","in":"query","required":true,"schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"],"title":"Boring Swapper"},"description":"BoringSwapper whose orders are being requested."},{"name":"vault_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},{"type":"null"}],"description":"Optional BoringVault filter. Omit to list every vault you can access.","title":"Vault Address"},"description":"Optional BoringVault filter. Omit to list every vault you can access."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":256},{"type":"null"}],"description":"Optional lifecycle-status filter, e.g. `open_in_orderbook`.","title":"Status"},"description":"Optional lifecycle-status filter, e.g. `open_in_orderbook`."},{"name":"tx_hash","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":66,"maxLength":66,"description":"0x-prefixed transaction hash","examples":["0x2222222222222222222222222222222222222222222222222222222222222222"]},{"type":"null"}],"description":"Optional submitOrder transaction-hash filter.","title":"Tx Hash"},"description":"Optional submitOrder transaction-hash filter."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapOrderListResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}},"/swap/{chain}/orders/{order_id}":{"get":{"tags":["Swap"],"summary":"Get one limit order by its protocol-hash-derived order id.","operationId":"get_swap_order_public_v1_swap__chain__orders__order_id__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9_-]{0,63}$","description":"Canonical chain registry name","examples":["ethereum"],"title":"Chain"}},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","minLength":68,"maxLength":68,"pattern":"^ord_[0-9a-f]{64}$","description":"Order identifier derived losslessly from the on-chain protocol hash","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"],"title":"Order Id"}},{"name":"boring_swapper","in":"query","required":true,"schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"],"title":"Boring Swapper"},"description":"BoringSwapper that owns the order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapOrderResponse"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/swapper_HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Opaque Veda-generated identifier for log correlation and support. This is not a quote, transaction, or order identifier.","schema":{"type":"string","example":"9e7a035d-b7a2-4df1-9208-c8b57dce73dd"}}}},"401":{"description":"Unauthorized — missing or malformed Authorization header.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"}}}}}},"403":{"description":"Forbidden — API key invalid, revoked, expired, or insufficient permissions for this action or resource.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden"}}}}}},"429":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Too Many Requests"},"retry_after":{"type":"integer","example":60}}}}}}}}}},"components":{"schemas":{"ExecuteActionRequest":{"properties":{"params":{"additionalProperties":true,"type":"object","title":"Params"},"verbose":{"type":"boolean","title":"Verbose","default":false},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"type":"object","title":"ExecuteActionRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ExecuteMultipleRequest":{"properties":{"actions":{"items":{"$ref":"#/components/schemas/BatchAction"},"type":"array","title":"Actions"},"verbose":{"type":"boolean","title":"Verbose","default":false},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"type":"object","required":["actions"],"title":"ExecuteMultipleRequest"},"BatchAction":{"properties":{"route":{"type":"string","title":"Route"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["route"],"title":"BatchAction"},"VaultListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VaultListItem"},"type":"array","title":"Data"},"page":{"$ref":"#/components/schemas/PageMeta"}},"additionalProperties":false,"type":"object","required":["data","page"],"title":"VaultListResponse"},"PageMeta":{"properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["page_size"],"title":"PageMeta","description":"Pagination metadata emitted alongside every collection response."},"VaultListItem":{"properties":{"vault_address":{"type":"string","title":"Vault Address"},"name":{"type":"string","title":"Name"},"chains":{"items":{"type":"string"},"type":"array","title":"Chains"},"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"},"deployed_at":{"type":"string","title":"Deployed At"},"statuses":{"additionalProperties":{"type":"string"},"type":"object","title":"Statuses"},"solana_vault_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solana Vault Address"}},"additionalProperties":false,"type":"object","required":["vault_address","name","chains","deployed_at","statuses"],"title":"VaultListItem","description":"Public EVM vault metadata with optional SVM relationship enrichment."},"vault-registry_HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/vault-registry_ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"vault-registry_ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"vault-api_HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/vault-api_ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"vault-api_ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"PerformanceResponse":{"properties":{"data":{"$ref":"#/components/schemas/PerformanceSnapshot"}},"type":"object","required":["data"],"title":"PerformanceResponse","description":"Canonical public single-resource envelope."},"PerformanceSnapshot":{"properties":{"vault_address":{"type":"string","title":"Vault Address"},"chain":{"type":"string","title":"Chain"},"as_of":{"type":"string","title":"As Of"},"window_days":{"type":"integer","const":7,"title":"Window Days"},"apy":{"type":"number","title":"Apy"},"fees":{"type":"number","title":"Fees"},"performance_fees":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Performance Fees"},"global_apy_breakdown":{"additionalProperties":true,"type":"object","title":"Global Apy Breakdown"},"maturity_apy_breakdown":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Maturity Apy Breakdown"},"real_apy_breakdown":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Real Apy Breakdown"}},"type":"object","required":["vault_address","chain","as_of","window_days","apy","fees","global_apy_breakdown","maturity_apy_breakdown","real_apy_breakdown"],"title":"PerformanceSnapshot","description":"Latest performance snapshot in the public v1 shape."},"nav-api_HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/nav-api_ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"nav-api_ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"SwapCapabilitiesResponse":{"properties":{"data":{"$ref":"#/components/schemas/DecimalSwapCapabilitiesData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"SwapCapabilitiesResponse"},"DecimalSwapCapabilitiesData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"swappers":{"items":{"$ref":"#/components/schemas/DecimalBoringSwapperCapabilities"},"type":"array","title":"Swappers"}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address"],"title":"DecimalSwapCapabilitiesData"},"DecimalBoringSwapperCapabilities":{"properties":{"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"pairs":{"items":{"$ref":"#/components/schemas/DecimalSwapPairCapabilities"},"type":"array","title":"Pairs"}},"additionalProperties":false,"type":"object","required":["boring_swapper"],"title":"DecimalBoringSwapperCapabilities"},"DecimalSwapPairCapabilities":{"properties":{"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"max_slippage_bps":{"type":"integer","minimum":0.0,"title":"Max Slippage Bps"},"capabilities":{"items":{"oneOf":[{"$ref":"#/components/schemas/MarketCapability"},{"$ref":"#/components/schemas/LimitCapability"}],"discriminator":{"propertyName":"kind","mapping":{"limit":"#/components/schemas/LimitCapability","market":"#/components/schemas/MarketCapability"}}},"type":"array","title":"Capabilities"},"rate_limit":{"anyOf":[{"$ref":"#/components/schemas/DecimalRateLimitAvailability"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["token_in","token_out","max_slippage_bps"],"title":"DecimalSwapPairCapabilities"},"DecimalRateLimitAvailability":{"properties":{"status":{"type":"string","enum":["cached","unavailable"],"title":"Status"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"capacity":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","examples":["1.5","0"]},{"type":"null"}],"title":"Capacity","description":"Maximum bucket capacity in input tokens."},"remaining":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","examples":["1.5","0"]},{"type":"null"}],"title":"Remaining","description":"Stored input-token remainder at last_refill."},"last_refill":{"anyOf":[{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","description":"Canonical base-10 uint256 string in raw token units"},{"type":"null"}],"title":"Last Refill","description":"On-chain Unix refill timestamp."},"refill_rate":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","examples":["1.5","0"]},{"type":"null"}],"title":"Refill Rate","description":"Input tokens replenished per second."},"available_now":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","examples":["1.5","0"]},{"type":"null"}],"title":"Available Now","description":"Projected available input tokens from the cached bucket; advisory, not a live guarantee."},"cached_at":{"anyOf":[{"type":"integer","maximum":253402300799.0,"minimum":0.0,"examples":[1893456000]},{"type":"null"}],"title":"Cached At"}},"additionalProperties":false,"type":"object","required":["status"],"title":"DecimalRateLimitAvailability"},"LimitCapability":{"properties":{"kind":{"type":"string","const":"limit","title":"Kind"},"protocol":{"type":"string","maxLength":64,"minLength":1,"title":"Protocol"},"adapter_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"platform_fee_bps":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Platform Fee Bps"},"protocol_parameters":{"$ref":"#/components/schemas/LimitOrderProtocolParameters"}},"additionalProperties":false,"type":"object","required":["kind","protocol","adapter_address","platform_fee_bps","protocol_parameters"],"title":"LimitCapability"},"LimitOrderProtocolParameters":{"properties":{"supports_partial_fills":{"type":"boolean","title":"Supports Partial Fills"},"sender_policy":{"type":"string","enum":["unsupported","optional","required"],"title":"Sender Policy"}},"additionalProperties":false,"type":"object","required":["supports_partial_fills","sender_policy"],"title":"LimitOrderProtocolParameters"},"MarketCapability":{"properties":{"kind":{"type":"string","const":"market","title":"Kind"},"protocol":{"type":"string","maxLength":64,"minLength":1,"title":"Protocol"},"adapter_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"platform_fee_bps":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Platform Fee Bps"}},"additionalProperties":false,"type":"object","required":["kind","protocol","adapter_address","platform_fee_bps"],"title":"MarketCapability"},"SwapOrderResponse":{"properties":{"data":{"$ref":"#/components/schemas/SwapOrderData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"SwapOrderResponse"},"SwapOrderData":{"properties":{"order_id":{"type":"string","maxLength":68,"minLength":68,"pattern":"^ord_[0-9a-f]{64}$","title":"Order Id","description":"Order identifier derived from the on-chain protocol hash.","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"]},"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"protocol":{"type":"string","title":"Protocol"},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"input_amount":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Input Amount","description":"Original order input in atomic units of token_in.","examples":["1500000","1500000000000000000"]},"remaining_input":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Remaining Input","description":"Unfilled order principal in atomic units of token_in; zero after final settlement.","examples":["1500000","1500000000000000000"]},"min_amount_out":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Min Amount Out","description":"Minimum order output in atomic units of token_out.","examples":["1500000","1500000000000000000"]},"status":{"type":"string","title":"Status"},"valid_to":{"anyOf":[{"type":"integer","maximum":253402300799.0,"minimum":0.0,"examples":[1893456000]},{"type":"null"}],"title":"Valid To","description":"Unix expiry timestamp; null for protocols without one."},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"submit_tx_hash":{"anyOf":[{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"0x-prefixed transaction hash","examples":["0x2222222222222222222222222222222222222222222222222222222222222222"]},{"type":"null"}],"title":"Submit Tx Hash","description":"submitOrder transaction hash; null until the order is indexed."},"submit_block_hash":{"anyOf":[{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","examples":["0x1111111111111111111111111111111111111111111111111111111111111111"]},{"type":"null"}],"title":"Submit Block Hash","description":"Canonical inclusion block hash; null before inclusion."},"submit_inclusion_status":{"type":"string","enum":["pending","included","reorged","dropped"],"title":"Submit Inclusion Status"},"submit_finality_status":{"type":"string","enum":["unsafe","safe","finalized"],"title":"Submit Finality Status"},"submit_execution_status":{"type":"string","enum":["unknown","success","reverted"],"title":"Submit Execution Status"},"fill_tx_hash":{"anyOf":[{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"0x-prefixed transaction hash","examples":["0x2222222222222222222222222222222222222222222222222222222222222222"]},{"type":"null"}],"title":"Fill Tx Hash"},"filled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Filled At"},"actual_input":{"anyOf":[{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","description":"Canonical base-10 uint256 string in raw token units"},{"type":"null"}],"title":"Actual Input","description":"Settled input in atomic units of token_in; null until known.","examples":["1500000","1500000000000000000"]},"actual_output":{"anyOf":[{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","description":"Canonical base-10 uint256 string in raw token units"},{"type":"null"}],"title":"Actual Output","description":"Settled output in atomic units of token_out; null until known.","examples":["1500000","1500000000000000000"]}},"additionalProperties":false,"type":"object","required":["order_id","chain","vault_address","boring_swapper","protocol","adapter","token_in","token_out","input_amount","remaining_input","min_amount_out","status","valid_to","submitted_at","submit_tx_hash","submit_block_hash","submit_inclusion_status","submit_finality_status","submit_execution_status","fill_tx_hash","filled_at","actual_input","actual_output"],"title":"SwapOrderData","description":"Immutable limit-order terms plus mutable lifecycle state."},"swapper_HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/swapper_ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"swapper_ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ReplaceLimitOrderResponse":{"properties":{"data":{"$ref":"#/components/schemas/ReplaceLimitOrderData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"ReplaceLimitOrderResponse"},"ReplaceLimitOrderData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"protocol":{"type":"string","title":"Protocol"},"order_id":{"type":"string","maxLength":68,"minLength":68,"pattern":"^ord_[0-9a-f]{64}$","title":"Order Id","description":"Order identifier for the replacement, derived from its on-chain protocol hash.","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"]},"platform_fee":{"$ref":"#/components/schemas/DecimalPlatformFee","description":"Platform fee; amount is expressed in human-readable units of platform_fee.token."},"transaction_request":{"$ref":"#/components/schemas/LimitOrderTransactionRequest"},"simulation":{"$ref":"#/components/schemas/LimitOrderSimulation"},"order_type":{"type":"string","const":"limit","title":"Order Type"},"replaced_order_id":{"type":"string","maxLength":68,"minLength":68,"pattern":"^ord_[0-9a-f]{64}$","title":"Replaced Order Id","description":"Order identifier derived losslessly from the on-chain protocol hash","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"]}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","boring_swapper","adapter","protocol","order_id","platform_fee","transaction_request","simulation","order_type","replaced_order_id"],"title":"ReplaceLimitOrderData"},"LimitOrderSimulation":{"properties":{"success":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Success"},"simulation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Simulation Url"},"gas_used":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Gas Used"},"skipped":{"type":"boolean","title":"Skipped"}},"additionalProperties":false,"type":"object","required":["skipped"],"title":"LimitOrderSimulation"},"LimitOrderTransactionRequest":{"properties":{"to":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"To","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"data":{"type":"string","maxLength":262146,"minLength":2,"pattern":"^0x(?:[0-9a-fA-F]{2})*$","title":"Data","examples":["0x1234"]},"value":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77}|0x[0-9a-fA-F]+)$","title":"Value","examples":["0"]},"gas_limit":{"anyOf":[{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77}|0x[0-9a-fA-F]+)$"},{"type":"null"}],"title":"Gas Limit","examples":["250000"]}},"additionalProperties":false,"type":"object","required":["to","data","value"],"title":"LimitOrderTransactionRequest"},"DecimalPlatformFee":{"properties":{"token":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"amount":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","examples":["1.5","0"]},{"type":"null"}],"title":"Amount","description":"Human-readable amount of the fee token; null when unknown."}},"additionalProperties":false,"type":"object","required":["token","amount"],"title":"DecimalPlatformFee"},"SwapQuoteResponse":{"properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/ExactInputSwapQuoteData"},{"$ref":"#/components/schemas/ExactOutputSwapQuoteData"}],"title":"Data","discriminator":{"propertyName":"direction","mapping":{"exact_input":"#/components/schemas/ExactInputSwapQuoteData","exact_output":"#/components/schemas/ExactOutputSwapQuoteData"}}}},"additionalProperties":false,"type":"object","required":["data"],"title":"SwapQuoteResponse"},"ExactOutputSwapQuoteData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"direction":{"type":"string","const":"exact_output","title":"Direction"},"amount":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount","description":"Requested human-readable amount of token_out.","examples":["1.5","0.001"]},"quotes":{"items":{"$ref":"#/components/schemas/ExactOutputSwapQuoteOption"},"type":"array","maxItems":100,"title":"Quotes"}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","token_in","token_out","direction","amount","quotes"],"title":"ExactOutputSwapQuoteData"},"ExactOutputSwapQuoteOption":{"properties":{"quote_id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Quote Id","description":"Opaque URL-safe quote identifier","examples":["quote_abc123"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter_name":{"type":"string","title":"Adapter Name"},"protocol":{"type":"string","title":"Protocol"},"direction":{"type":"string","const":"exact_output","title":"Direction"},"amount_out":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Amount Out","description":"Requested gross output in atomic units of token_out.","examples":["1500000","1500000000000000000"]},"estimated_amount_in":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Estimated Amount In","description":"Estimated input consumption in atomic units of token_in.","examples":["1500000","1500000000000000000"]},"max_amount_in":{"type":"string","maxLength":78,"minLength":1,"pattern":"^(0|[1-9][0-9]{0,77})$","title":"Max Amount In","description":"Maximum input permitted by protocol calldata in atomic units of token_in.","examples":["1500000","1500000000000000000"]},"platform_fee":{"$ref":"#/components/schemas/DecimalPlatformFee","description":"Platform fee; amount is expressed in human-readable units of platform_fee.token."},"net_amount_out":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Net Amount Out","examples":["1.5","0.001"],"description":"Output after the platform fee in human-readable token_out units."},"best_quote_delta_bps":{"type":"integer","minimum":0.0,"title":"Best Quote Delta Bps"},"price_impact_bps":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Price Impact Bps","description":"Adverse deviation from the BoringSwapper oracle reference in basis points; null when unavailable."},"gas_estimate":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Gas Estimate"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"additionalProperties":false,"type":"object","required":["quote_id","boring_swapper","adapter","adapter_name","protocol","direction","amount_out","estimated_amount_in","max_amount_in","platform_fee","net_amount_out","best_quote_delta_bps","price_impact_bps","expires_at"],"title":"ExactOutputSwapQuoteOption"},"ExactInputSwapQuoteData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"direction":{"type":"string","const":"exact_input","title":"Direction"},"amount":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount","description":"Requested human-readable amount of token_in.","examples":["1.5","0.001"]},"quotes":{"items":{"$ref":"#/components/schemas/ExactInputSwapQuoteOption"},"type":"array","maxItems":100,"title":"Quotes"}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","token_in","token_out","direction","amount","quotes"],"title":"ExactInputSwapQuoteData"},"ExactInputSwapQuoteOption":{"properties":{"quote_id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Quote Id","description":"Opaque URL-safe quote identifier","examples":["quote_abc123"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter_name":{"type":"string","title":"Adapter Name"},"protocol":{"type":"string","title":"Protocol"},"direction":{"type":"string","const":"exact_input","title":"Direction"},"estimated_amount_out":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Estimated Amount Out","examples":["1.5","0.001"],"description":"Estimated gross output in human-readable token_out units."},"min_amount_out":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Min Amount Out","examples":["1.5","0.001"],"description":"Minimum gross output enforced by protocol calldata in human-readable token_out units."},"platform_fee":{"$ref":"#/components/schemas/DecimalPlatformFee","description":"Platform fee; amount is expressed in human-readable units of platform_fee.token."},"net_amount_out":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Net Amount Out","examples":["1.5","0.001"],"description":"Estimated output after the platform fee in human-readable token_out units."},"best_quote_delta_bps":{"type":"integer","minimum":0.0,"title":"Best Quote Delta Bps"},"price_impact_bps":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Price Impact Bps","description":"Adverse deviation from the BoringSwapper oracle reference in basis points; null when unavailable."},"gas_estimate":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Gas Estimate"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"additionalProperties":false,"type":"object","required":["quote_id","boring_swapper","adapter","adapter_name","protocol","direction","estimated_amount_out","min_amount_out","platform_fee","net_amount_out","best_quote_delta_bps","price_impact_bps","expires_at"],"title":"ExactInputSwapQuoteOption"},"SwapQuoteRequest":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Chain registry name, e.g. `ethereum`.","examples":["ethereum"]},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"BoringVault contract address.","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"BoringSwapper selected from the vault's capabilities.","examples":["0x1111111111111111111111111111111111111111"]},"adapters":{"anyOf":[{"items":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"type":"array","maxItems":20,"minItems":1},{"type":"null"}],"title":"Adapters","description":"Optional adapter allow-list. Send one address for a single selected adapter; omit to quote every eligible active adapter for the route."},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"ERC-20 input token address.","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"ERC-20 output token address.","examples":["0x1111111111111111111111111111111111111111"]},"direction":{"type":"string","enum":["exact_input","exact_output"],"title":"Direction","default":"exact_input"},"amount":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount","examples":["1.5","0.001"],"description":"Human-readable token amount: token_in for exact_input, or token_out for exact_output."},"slippage_bps":{"type":"integer","exclusiveMaximum":10000.0,"minimum":0.0,"title":"Slippage Bps","description":"Caller's slippage tolerance. Capped at the route max_slippage_bps from cached BoringSwapper config."}},"additionalProperties":false,"type":"object","required":["chain","vault_address","boring_swapper","token_in","token_out","amount","slippage_bps"],"title":"SwapQuoteRequest"},"SwapOrderListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SwapOrderData"},"type":"array","maxItems":100,"title":"Data"},"page":{"$ref":"#/components/schemas/swapper_PageMeta"}},"additionalProperties":false,"type":"object","required":["data","page"],"title":"SwapOrderListResponse"},"swapper_PageMeta":{"properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["page_size"],"title":"PageMeta","description":"Pagination metadata emitted alongside every collection response."},"CancelLimitOrderResponse":{"properties":{"data":{"$ref":"#/components/schemas/CancelLimitOrderData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"CancelLimitOrderResponse"},"CancelLimitOrderData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"protocol":{"type":"string","title":"Protocol"},"order_id":{"type":"string","maxLength":68,"minLength":68,"pattern":"^ord_[0-9a-f]{64}$","title":"Order Id","description":"Identifier of the order being cancelled.","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"]},"transaction_request":{"$ref":"#/components/schemas/LimitOrderTransactionRequest"},"simulation":{"$ref":"#/components/schemas/LimitOrderSimulation"},"order_type":{"type":"string","const":"limit","title":"Order Type"}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","boring_swapper","adapter","protocol","order_id","transaction_request","simulation","order_type"],"title":"CancelLimitOrderData"},"HealthResponse":{"properties":{"service":{"type":"string","const":"swap-api","title":"Service","default":"swap-api"},"status":{"type":"string","enum":["healthy","unhealthy"],"title":"Status"}},"additionalProperties":false,"type":"object","required":["status"],"title":"HealthResponse"},"SubmitLimitOrderResponse":{"properties":{"data":{"$ref":"#/components/schemas/SubmitLimitOrderResponseData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"SubmitLimitOrderResponse"},"SubmitLimitOrderResponseData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"protocol":{"type":"string","title":"Protocol"},"order_id":{"type":"string","maxLength":68,"minLength":68,"pattern":"^ord_[0-9a-f]{64}$","title":"Order Id","description":"Order identifier derived from the on-chain protocol hash.","examples":["ord_1111111111111111111111111111111111111111111111111111111111111111"]},"platform_fee":{"$ref":"#/components/schemas/DecimalPlatformFee","description":"Platform fee; amount is expressed in human-readable units of platform_fee.token."},"transaction_request":{"$ref":"#/components/schemas/LimitOrderTransactionRequest"},"simulation":{"$ref":"#/components/schemas/LimitOrderSimulation"},"order_type":{"type":"string","const":"limit","title":"Order Type"}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","boring_swapper","adapter","protocol","order_id","platform_fee","transaction_request","simulation","order_type"],"title":"SubmitLimitOrderResponseData"},"MarketSwapResponse":{"properties":{"data":{"$ref":"#/components/schemas/MarketSwapData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"MarketSwapResponse"},"MarketSwapData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"protocol":{"type":"string","title":"Protocol"},"platform_fee":{"$ref":"#/components/schemas/DecimalPlatformFee","description":"Platform fee; amount is expressed in human-readable units of platform_fee.token."},"transaction_request":{"$ref":"#/components/schemas/LimitOrderTransactionRequest"},"simulation":{"$ref":"#/components/schemas/LimitOrderSimulation"},"order_type":{"type":"string","const":"market","title":"Order Type"},"quote_id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Quote Id","description":"Opaque URL-safe quote identifier","examples":["quote_abc123"]}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","boring_swapper","adapter","protocol","platform_fee","transaction_request","simulation","order_type","quote_id"],"title":"MarketSwapData"},"StrategistSwapCapabilitiesResponse":{"properties":{"data":{"$ref":"#/components/schemas/DecimalStrategistSwapCapabilitiesData"}},"additionalProperties":false,"type":"object","required":["data"],"title":"StrategistSwapCapabilitiesResponse"},"DecimalStrategistSwapCapabilitiesData":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"chain_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Chain Id"},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"swappers":{"items":{"$ref":"#/components/schemas/DecimalBoringSwapperCapabilities"},"type":"array","title":"Swappers"},"strategist_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Strategist Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"merkle_root":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","title":"Merkle Root","examples":["0x1111111111111111111111111111111111111111111111111111111111111111"]}},"additionalProperties":false,"type":"object","required":["chain","chain_id","vault_address","strategist_address","merkle_root"],"title":"DecimalStrategistSwapCapabilitiesData"},"CancelLimitOrderRequest":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"strategist_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Strategist Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"additionalProperties":false,"type":"object","required":["chain","vault_address","boring_swapper","strategist_address"],"title":"CancelLimitOrderRequest"},"SubmitLimitOrderRequest":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"amount_in":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount In","examples":["1.5","0.001"],"description":"Total input offered in human-readable token_in units."},"amount_out":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount Out","examples":["1.5","0.001"],"description":"Total output required for a complete fill in human-readable token_out units."},"valid_to":{"type":"integer","maximum":253402300799.0,"minimum":0.0,"title":"Valid To","examples":[1893456000]},"protocol_parameters":{"anyOf":[{"$ref":"#/components/schemas/LimitOrderProtocolParams"},{"type":"null"}]},"strategist_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Strategist Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"additionalProperties":false,"type":"object","required":["chain","vault_address","boring_swapper","adapter","token_in","token_out","amount_in","amount_out","valid_to","strategist_address"],"title":"SubmitLimitOrderRequest"},"LimitOrderProtocolParams":{"properties":{"partially_fillable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Partially Fillable","description":"Requested partial-fill mode. Must match the mode supported by the selected adapter."},"allow_any_sender":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Any Sender","description":"OpenOcean only. Allow any solver to fill the order."},"allowed_sender":{"anyOf":[{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},{"type":"null"}],"title":"Allowed Sender","description":"OpenOcean only. Restrict fills to this solver address."}},"additionalProperties":false,"type":"object","title":"LimitOrderProtocolParams"},"ReplaceLimitOrderRequest":{"properties":{"chain":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z][a-z0-9_-]{0,63}$","title":"Chain","description":"Canonical chain registry name","examples":["ethereum"]},"vault_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Vault Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"boring_swapper":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Boring Swapper","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"new_order":{"$ref":"#/components/schemas/ReplaceLimitOrderDetails"},"strategist_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Strategist Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"additionalProperties":false,"type":"object","required":["chain","vault_address","boring_swapper","new_order","strategist_address"],"title":"ReplaceLimitOrderRequest"},"ReplaceLimitOrderDetails":{"properties":{"adapter":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Adapter","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_in":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token In","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"token_out":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Token Out","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"amount_in":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount In","examples":["1.5","0.001"],"description":"Total replacement input offered in human-readable token_in units."},"amount_out":{"type":"string","maxLength":115,"minLength":1,"pattern":"^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$","title":"Amount Out","examples":["1.5","0.001"],"description":"Total output required for a complete replacement fill in human-readable token_out units."},"valid_to":{"type":"integer","maximum":253402300799.0,"minimum":0.0,"title":"Valid To","examples":[1893456000]},"protocol_parameters":{"anyOf":[{"$ref":"#/components/schemas/LimitOrderProtocolParams"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["adapter","token_in","token_out","amount_in","amount_out","valid_to"],"title":"ReplaceLimitOrderDetails"},"BuildInstantSwapTransactionRequest":{"properties":{"quote_id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]{1,64}$","title":"Quote Id","description":"Opaque URL-safe quote identifier","examples":["quote_abc123"]},"deadline_epoch":{"type":"integer","maximum":253402300799.0,"minimum":0.0,"title":"Deadline Epoch","examples":[1893456000]},"strategist_address":{"type":"string","maxLength":42,"minLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","title":"Strategist Address","description":"EIP-55 checksummed EVM address","examples":["0x1111111111111111111111111111111111111111"]},"skip_sim":{"type":"boolean","title":"Skip Sim","default":false}},"additionalProperties":false,"type":"object","required":["quote_id","deadline_epoch","strategist_address"],"title":"BuildInstantSwapTransactionRequest"}},"securitySchemes":{"apiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"VedaApiKey","description":"Veda customer API key. Format: `veda_user_live_<...>`.\nPaste the key value (without the `Bearer ` prefix) into the Authorize dialog.\n"}}},"security":[{"apiKeyAuth":[]}]}