{
"error": "yield-xyz-borrow returned a response for GET /v1/positions that does not match the expected schema",
"id": "INTEGRATION_RESPONSE_SCHEMA_DRIFT",
"details": {
"integration": "yield-xyz-borrow",
"endpoint": "GET /v1/positions",
"issues": [
{
"path": "supplyBalances.0.balanceUsd",
"message": "Expected string, received number",
"code": "invalid_type"
}
]
}
}
Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit.
This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.
{
"error": "yield-xyz-borrow returned a response for GET /v1/positions that does not match the expected schema",
"id": "INTEGRATION_RESPONSE_SCHEMA_DRIFT",
"details": {
"integration": "yield-xyz-borrow",
"endpoint": "GET /v1/positions",
"issues": [
{
"path": "supplyBalances.0.balanceUsd",
"message": "Expected string, received number",
"code": "invalid_type"
}
]
}
}
Action to execute. Portal validates this against the fixed set below and rejects other values with a 400; new action types require Portal support. This is separate from venue and per-action args discovery via GET /providers, which is provider-driven — a new venue reusing these actions needs no change.
Action arguments. Documented fields are typed; unknown keys pass through to the venue untouched (the venue's argumentSchemas from GET /providers/{providerId} is the source of truth for which args an action requires). network values here are venue slugs or CAIP-2 chains.
Show child attributes
Response
Action created with unsigned transactions ready for signing
An action with its unsigned transactions and status. signedMetadata is returned untouched.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Portal","description":"Portal is a key management platform for stablecoin companies. Create wallets, send and receive funds on-chain - all in a day.","colors":{"primary":"#5a86fa","light":"#789CFA","dark":"#3E71F8"},"logo":{"light":"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/light.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=589c25ed9717a63807caa49ef88b9541","dark":"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/dark.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=60a15ea88f068be82954514cc71f558c","href":"https://docs.portalhq.io"},"favicon":"https://mintcdn.com/portal-003221ec/8nhTiKJyGlrD5CbB/favicon.png?fit=max\u0026auto=format\u0026n=8nhTiKJyGlrD5CbB\u0026q=85\u0026s=2bbda68250f65a434b3f9eb0fe709ac1","navbar":{"links":[{"href":"https://join.slack.com/t/portalcommunity/shared_invite/zt-1zlyexf43-A94Z4ugntrgLGs2j5slmeQ","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.portalhq.io"}},"footer":{"socials":{"x":"https://twitter.com/portal_hq","github":"https://github.com/portal-hq","linkedin":"https://www.linkedin.com/company/portal-labs-inc","slack":"https://join.slack.com/t/portalcommunity/shared_invite/zt-1zlyexf43-A94Z4ugntrgLGs2j5slmeQ"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/portal-hq"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/portalcommunity/shared_invite/zt-1zlyexf43-A94Z4ugntrgLGs2j5slmeQ"},{"anchor":"Blog","icon":"newspaper","href":"https://www.portalhq.io/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"portal-003221ec","hasAudioNarration":false,"actualSubdomain":"portal-003221ec","customDomains":["docs.portalhq.io"],"gitSource":{"type":"github","owner":"portal-hq","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae347c751fbfc0519aada90","collectionId":"b89c2be9-8852-430f-8f90-79143a93bfff","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae347c751fbfc0519aada90"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae347c751fbfc0519aada90","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Documentation","count":394},{"language":"default","tag":"SDKs","count":294},{"language":"default","tag":"API Reference","count":271},{"language":"default","tag":"Client API","count":209},{"language":"default","tag":"Guide","count":164},{"language":"default","tag":"Reference","count":139},{"language":"default","tag":"Flutter","count":99},{"language":"default","tag":"iOS","count":91},{"language":"default","tag":"Due","count":56},{"language":"default","tag":"Resources","count":47}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/yieldxyz-perps/execute-a-perps-action","slug":"/api-reference/yieldxyz-perps/execute-a-perps-action","pageMetadata":{"title":"Execute a perps action","description":"Build unsigned transaction(s) for a perps action (`open`, `close`, `updateLeverage`, `stopLoss`, `takeProfit`, `setTpAndSl`, `cancelOrder`, `editOrder`, `updateMargin`, `fund`, `withdraw`, `approveAgent`, `approveBuilderFee`, `setUnifiedAccount`). Returns transaction(s) to sign by their `signingFormat`; submit each via `POST /transactions/:id/submit`.\n\nThis is a proxy to the Yield.xyz Perps `POST /v1/actions` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`, and translates funding-chain `network` values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/actions","href":"/api-reference/yieldxyz-perps/execute-a-perps-action","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Build unsigned transaction(s) for a perps action (\", _jsx(_components.code, {\n children: \"open\"\n }), \", \", _jsx(_components.code, {\n children: \"close\"\n }), \", \", _jsx(_components.code, {\n children: \"updateLeverage\"\n }), \", \", _jsx(_components.code, {\n children: \"stopLoss\"\n }), \", \", _jsx(_components.code, {\n children: \"takeProfit\"\n }), \", \", _jsx(_components.code, {\n children: \"setTpAndSl\"\n }), \", \", _jsx(_components.code, {\n children: \"cancelOrder\"\n }), \", \", _jsx(_components.code, {\n children: \"editOrder\"\n }), \", \", _jsx(_components.code, {\n children: \"updateMargin\"\n }), \", \", _jsx(_components.code, {\n children: \"fund\"\n }), \", \", _jsx(_components.code, {\n children: \"withdraw\"\n }), \", \", _jsx(_components.code, {\n children: \"approveAgent\"\n }), \", \", _jsx(_components.code, {\n children: \"approveBuilderFee\"\n }), \", \", _jsx(_components.code, {\n children: \"setUnifiedAccount\"\n }), \"). Returns transaction(s) to sign by their \", _jsx(_components.code, {\n children: \"signingFormat\"\n }), \"; submit each via \", _jsx(_components.code, {\n children: \"POST /transactions/:id/submit\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This is a proxy to the Yield.xyz Perps \", _jsx(_components.code, {\n children: \"POST /v1/actions\"\n }), \" endpoint. Portal validates the upstream response against the schema documented here before returning it under \", _jsx(_components.code, {\n children: \"data\"\n }), \", and translates funding-chain \", _jsx(_components.code, {\n children: \"network\"\n }), \" values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with \", _jsx(_components.code, {\n children: \"id: INTEGRATION_RESPONSE_SCHEMA_DRIFT\"\n }), \" instead of a partial response. Upstream reference: \", _jsx(_components.a, {\n href: \"https://docs.yield.xyz\",\n children: \"Yield.xyz Perps API\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Execute a perps action","description":"Build unsigned transaction(s) for a perps action (`open`, `close`, `updateLeverage`, `stopLoss`, `takeProfit`, `setTpAndSl`, `cancelOrder`, `editOrder`, `updateMargin`, `fund`, `withdraw`, `approveAgent`, `approveBuilderFee`, `setUnifiedAccount`). Returns transaction(s) to sign by their `signingFormat`; submit each via `POST /transactions/:id/submit`.\n\nThis is a proxy to the Yield.xyz Perps `POST /v1/actions` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`, and translates funding-chain `network` values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/actions","href":"/api-reference/yieldxyz-perps/execute-a-perps-action","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"executeYieldXyzPerpsAction","summary":"Execute a perps action","description":"Build unsigned transaction(s) for a perps action (`open`, `close`, `updateLeverage`, `stopLoss`, `takeProfit`, `setTpAndSl`, `cancelOrder`, `editOrder`, `updateMargin`, `fund`, `withdraw`, `approveAgent`, `approveBuilderFee`, `setUnifiedAccount`). Returns transaction(s) to sign by their `signingFormat`; submit each via `POST /transactions/:id/submit`.\n\nThis is a proxy to the Yield.xyz Perps `POST /v1/actions` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`, and translates funding-chain `network` values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).","tags":["Yield.xyz Perps"],"requestBody":"fd31387b-7e54-4516-a560-27ad07f41541","responses":{"200":"5c4af32e-db9b-4a25-b15e-f09b0021c712","400":"f51b447c-6b77-42fe-a720-c552ceade543","401":"2c4f6b7d-b5fe-41a1-9e3a-dc426e8eed56","429":"d85378e3-92fb-4f59-8322-82661b55cb0c","500":"b7fd2e5f-9b64-4c79-8b61-9788ad0d05f1","503":"045e7027-ab45-4b0f-8c93-d1e96f54af44"},"method":"post","type":"path","servers":["8e0d2bfe-0d3c-4e89-9a9d-7a84dd395f7b"],"security":["30f7f3aa-c26c-40a3-908d-68a505256cc2"],"path":"/clients/me/integrations/yield-xyz-perps/actions","baseUrlOptions":["https://api.portalhq.io/api/v3"],"title":"Execute a perps action","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Request body for `POST /actions`.","required":["providerId","address","action","args"],"properties":{"providerId":{"type":"string","example":"hyperliquid","isRequired":true,"uniqueKey":"providerId","typeLabel":"string"},"address":{"type":"string","example":"0x1234567890abcdef1234567890abcdef12345678","isRequired":true,"uniqueKey":"address","typeLabel":"string"},"action":{"type":"string","description":"Action to execute. Portal validates this against the fixed set below and rejects other values with a 400; new action types require Portal support. This is separate from venue and per-action `args` discovery via `GET /providers`, which is provider-driven — a new venue reusing these actions needs no change.","example":"open","enum":["open","close","updateLeverage","stopLoss","takeProfit","cancelOrder","editOrder","fund","withdraw","approveAgent","approveBuilderFee","updateMargin","setTpAndSl","setUnifiedAccount"],"isRequired":true,"uniqueKey":"action","typeLabel":"enum\u003cstring>"},"args":{"type":"object","description":"Action arguments. Documented fields are typed; unknown keys pass through to the venue untouched (the venue's `argumentSchemas` from `GET /providers/{providerId}` is the source of truth for which `args` an action requires). `network` values here are venue slugs or CAIP-2 chains.","additionalProperties":true,"properties":{"marketId":{"type":"string","description":"Market id as returned by `GET /markets`.","example":"hyperliquid-eth-usdc","uniqueKey":"args.marketId","typeLabel":"string"},"side":{"type":"string","description":"Position direction. Known values: `long`, `short`.","example":"long","uniqueKey":"args.side","typeLabel":"string"},"amount":{"type":"string","description":"Amount in human-readable units (e.g. collateral to fund or withdraw).","example":"100","uniqueKey":"args.amount","typeLabel":"string"},"size":{"type":"string","description":"Position size.","example":"1000","uniqueKey":"args.size","typeLabel":"string"},"leverage":{"type":"number","description":"Leverage multiplier.","example":10,"uniqueKey":"args.leverage","typeLabel":"number"},"marginMode":{"type":"string","description":"Known values: `isolated`, `cross`.","example":"isolated","uniqueKey":"args.marginMode","typeLabel":"string"},"limitPrice":{"type":"number","description":"Limit price for a limit order.","example":3900,"uniqueKey":"args.limitPrice","typeLabel":"number"},"stopLossPrice":{"type":"number","description":"Trigger price for a stop-loss.","example":3600,"uniqueKey":"args.stopLossPrice","typeLabel":"number"},"takeProfitPrice":{"type":"number","description":"Trigger price for a take-profit.","example":4400,"uniqueKey":"args.takeProfitPrice","typeLabel":"number"},"orderId":{"type":"string","description":"A single order id (e.g. to cancel or edit).","example":"12345","uniqueKey":"args.orderId","typeLabel":"string"},"orderIds":{"type":"array","items":{"type":"string","uniqueKey":"args.orderIds.items.[INDEX]","typeLabel":"string"},"description":"Multiple order ids (e.g. to cancel several orders).","uniqueKey":"args.orderIds","typeLabel":"string[]"},"assetIndex":{"type":"integer","description":"Venue-specific asset index.","example":1,"uniqueKey":"args.assetIndex","typeLabel":"integer"},"fromToken":{"type":"object","description":"Funding source token and chain (for `fund`).","required":["network"],"properties":{"network":{"type":"string","description":"Venue slug or CAIP-2 chain id (e.g. `eip155:42161`).","example":"eip155:42161","isRequired":true,"uniqueKey":"args.fromToken.network","typeLabel":"string"},"address":{"type":"string","description":"Token contract address on that network.","example":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","uniqueKey":"args.fromToken.address","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"args.fromToken","typeLabel":"object"},"agentAddress":{"type":"string","description":"Agent wallet address (for `approveAgent`).","example":"0x1234567890abcdef1234567890abcdef12345678","uniqueKey":"args.agentAddress","typeLabel":"string"},"agentName":{"type":"string","description":"Human-readable agent name (for `approveAgent`).","example":"my-app","uniqueKey":"args.agentName","typeLabel":"string"},"validUntil":{"type":"integer","description":"Expiry (unix seconds) for a time-bounded approval.","example":1767225600,"uniqueKey":"args.validUntil","typeLabel":"integer"},"stopLossOrderId":{"type":"string","description":"Existing stop-loss order id to update.","example":"12346","uniqueKey":"args.stopLossOrderId","typeLabel":"string"},"takeProfitOrderId":{"type":"string","description":"Existing take-profit order id to update.","example":"12347","uniqueKey":"args.takeProfitOrderId","typeLabel":"string"},"skipApproval":{"type":"boolean","description":"Skip an approval step where the venue allows it.","example":false,"uniqueKey":"args.skipApproval","typeLabel":"boolean"},"fundingMethod":{"type":"string","description":"How the venue routes a deposit. Known values: `bridge2`, `lifi`.","example":"bridge2","uniqueKey":"args.fundingMethod","typeLabel":"string"},"enabled":{"type":"boolean","description":"Toggle flag (e.g. for `setUnifiedAccount`).","example":true,"uniqueKey":"args.enabled","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"args","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"providerId":"hyperliquid","address":"0x1234567890abcdef1234567890abcdef12345678","action":"open","args":{"marketId":"hyperliquid-eth-usdc","side":"long","amount":"100","size":"1000","leverage":10,"marginMode":"isolated","limitPrice":3900,"stopLossPrice":3600,"takeProfitPrice":4400,"orderId":"12345","orderIds":["\u003cstring>"],"assetIndex":1,"agentAddress":"0x1234567890abcdef1234567890abcdef12345678","agentName":"my-app","validUntil":1767225600,"stopLossOrderId":"12346","takeProfitOrderId":"12347","skipApproval":false,"fundingMethod":"bridge2","enabled":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"5c4af32e-db9b-4a25-b15e-f09b0021c712":{"description":"Action created with unsigned transactions ready for signing","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"An action with its unsigned transactions and status. `signedMetadata` is returned untouched.","required":["id","providerId","action","status","summary","transactions","createdAt","completedAt"],"properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440001","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"providerId":{"type":"string","description":"Venue slug (passed through unchanged).","example":"hyperliquid","isRequired":true,"uniqueKey":"data.providerId","typeLabel":"string"},"action":{"type":"string","description":"Action type. Known values: `open`, `close`, `updateLeverage`, `stopLoss`, `takeProfit`, `cancelOrder`, `editOrder`, `fund`, `withdraw`, `approveAgent`, `approveBuilderFee`, `updateMargin`, `setTpAndSl`, `setUnifiedAccount`. Treat unknown values as opaque.","example":"open","isRequired":true,"uniqueKey":"data.action","typeLabel":"string"},"status":{"type":"string","description":"Current action status. Known values: `CANCELED`, `CREATED`, `WAITING_FOR_NEXT`, `PROCESSING`, `FAILED`, `SUCCESS`, `STALE`. Treat unknown values as opaque.","example":"CREATED","isRequired":true,"uniqueKey":"data.status","typeLabel":"string"},"summary":{"oneOf":[{"type":"object","description":"A human-readable summary of what an action will do. Only `type` is guaranteed; which other fields appear depends on the action. Unknown fields are not returned.","required":["type"],"properties":{"type":{"type":"string","example":"Open Position","isRequired":true,"uniqueKey":"data.summary.oneOf.0.type","typeLabel":"string"},"assetId":{"type":"integer","description":"Venue-specific asset id.","uniqueKey":"data.summary.oneOf.0.assetId","typeLabel":"integer"},"orderType":{"type":"string","description":"Known values: `market`, `limit`.","example":"market","uniqueKey":"data.summary.oneOf.0.orderType","typeLabel":"string"},"direction":{"type":"string","description":"Known values: `long`, `short`.","example":"long","uniqueKey":"data.summary.oneOf.0.direction","typeLabel":"string"},"asset":{"type":"string","example":"ETH","uniqueKey":"data.summary.oneOf.0.asset","typeLabel":"string"},"price":{"type":"number","example":3500,"uniqueKey":"data.summary.oneOf.0.price","typeLabel":"number"},"size":{"type":"string","example":"0.215","uniqueKey":"data.summary.oneOf.0.size","typeLabel":"string"},"leverage":{"type":"number","example":20,"uniqueKey":"data.summary.oneOf.0.leverage","typeLabel":"number"},"collateral":{"type":"string","example":"43.00","uniqueKey":"data.summary.oneOf.0.collateral","typeLabel":"string"},"fee":{"type":"string","example":"0.0005","uniqueKey":"data.summary.oneOf.0.fee","typeLabel":"string"},"orderValue":{"type":"number","uniqueKey":"data.summary.oneOf.0.orderValue","typeLabel":"number"},"stopLoss":{"type":"number","uniqueKey":"data.summary.oneOf.0.stopLoss","typeLabel":"number"},"takeProfit":{"type":"number","uniqueKey":"data.summary.oneOf.0.takeProfit","typeLabel":"number"},"oldLiquidationPrice":{"type":"number","uniqueKey":"data.summary.oneOf.0.oldLiquidationPrice","typeLabel":"number"},"estimatedLiquidationPrice":{"type":"number","example":4200,"uniqueKey":"data.summary.oneOf.0.estimatedLiquidationPrice","typeLabel":"number"},"oldStopLoss":{"type":"number","uniqueKey":"data.summary.oneOf.0.oldStopLoss","typeLabel":"number"},"oldTakeProfit":{"type":"number","uniqueKey":"data.summary.oneOf.0.oldTakeProfit","typeLabel":"number"},"marginMode":{"type":"string","example":"isolated","uniqueKey":"data.summary.oneOf.0.marginMode","typeLabel":"string"},"orderId":{"type":"string","uniqueKey":"data.summary.oneOf.0.orderId","typeLabel":"string"},"orderIds":{"type":"array","items":{"type":"string","uniqueKey":"data.summary.oneOf.0.orderIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.summary.oneOf.0.orderIds","typeLabel":"string[]"},"cancelledOrderTypes":{"type":"array","description":"Known values: `tp`, `sl`.","items":{"type":"string","uniqueKey":"data.summary.oneOf.0.cancelledOrderTypes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.summary.oneOf.0.cancelledOrderTypes","typeLabel":"string[]"},"amount":{"type":"string","uniqueKey":"data.summary.oneOf.0.amount","typeLabel":"string"},"fromToken":{"type":"object","description":"Funding source token and chain (for `fund`).","required":["network"],"properties":{"network":{"type":"string","description":"Venue slug or CAIP-2 chain id (e.g. `eip155:42161`).","example":"eip155:42161","isRequired":true,"uniqueKey":"data.summary.oneOf.0.fromToken.network","typeLabel":"string"},"address":{"type":"string","description":"Token contract address on that network.","example":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","uniqueKey":"data.summary.oneOf.0.fromToken.address","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data.summary.oneOf.0.fromToken","typeLabel":"object"},"method":{"type":"string","uniqueKey":"data.summary.oneOf.0.method","typeLabel":"string"},"agentAddress":{"type":"string","uniqueKey":"data.summary.oneOf.0.agentAddress","typeLabel":"string"},"agentName":{"type":"string","uniqueKey":"data.summary.oneOf.0.agentName","typeLabel":"string"},"enabled":{"type":"boolean","uniqueKey":"data.summary.oneOf.0.enabled","typeLabel":"boolean"},"closedPrice":{"type":"number","uniqueKey":"data.summary.oneOf.0.closedPrice","typeLabel":"number"},"pnl":{"type":"string","uniqueKey":"data.summary.oneOf.0.pnl","typeLabel":"string"},"margin":{"type":"string","uniqueKey":"data.summary.oneOf.0.margin","typeLabel":"string"},"entryPrice":{"type":"number","uniqueKey":"data.summary.oneOf.0.entryPrice","typeLabel":"number"},"exitPrice":{"type":"number","uniqueKey":"data.summary.oneOf.0.exitPrice","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.summary.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.summary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.summary","typeLabel":"object | null"},"transactions":{"type":"array","description":"Transactions for this action, in signing order.","items":{"type":"object","description":"An unsigned transaction to sign by its `signingFormat`. `signablePayload` and `rawPayload` are returned exactly as Yield.xyz sends them, and `chainId` is kept exactly as the venue returns it.","required":["id","network","chainId","type","status","address","explorerUrls"],"properties":{"id":{"type":"string","description":"Transaction id (UUID).","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].id","typeLabel":"string"},"network":{"type":"string","description":"Venue slug, or a CAIP-2 chain id for on-chain (funding/withdrawal) legs.","example":"hyperliquid","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].network","typeLabel":"string"},"chainId":{"type":"string","description":"The EIP-712 domain chain id, kept exactly as the venue returns it.","example":"1337","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].chainId","typeLabel":"string"},"type":{"type":"string","description":"Transaction type. Known values: `APPROVAL`, `OPEN_POSITION`, `CLOSE_POSITION`, `UPDATE_LEVERAGE`, `STOP_LOSS`, `TAKE_PROFIT`, `CANCEL_ORDER`, `EDIT_ORDER`, `FUND`, `WITHDRAW`, `APPROVE_BUILDER_FEE`, `ENABLE_DEX_ABSTRACTION`, `APPROVE_AGENT`, `UPDATE_MARGIN`, `SET_TP_AND_SL`, `SET_USER_ABSTRACTION`. Treat unknown values as opaque.","example":"OPEN_POSITION","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].type","typeLabel":"string"},"status":{"type":"string","description":"Current transaction status. Known values: `CREATED`, `QUEUED`, `BROADCASTED`, `CONFIRMED`, `FAILED`, `NOT_FOUND`. Treat unknown values as opaque.","example":"CREATED","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].status","typeLabel":"string"},"address":{"type":"string","example":"0x1234567890abcdef1234567890abcdef12345678","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].address","typeLabel":"string"},"explorerUrls":{"type":"array","items":{"type":"string","uniqueKey":"data.transactions.items.[INDEX].explorerUrls.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].explorerUrls","typeLabel":"string[]"},"args":{"type":"object","description":"Typed passthrough of the action arguments this transaction carries.","properties":{"marketId":{"type":"string","description":"Market id as returned by `GET /markets`.","example":"hyperliquid-eth-usdc","uniqueKey":"data.transactions.items.[INDEX].args.marketId","typeLabel":"string"},"side":{"type":"string","description":"Position direction. Known values: `long`, `short`.","example":"long","uniqueKey":"data.transactions.items.[INDEX].args.side","typeLabel":"string"},"amount":{"type":"string","description":"Amount in human-readable units (e.g. collateral to fund or withdraw).","example":"100","uniqueKey":"data.transactions.items.[INDEX].args.amount","typeLabel":"string"},"size":{"type":"string","description":"Position size.","example":"1000","uniqueKey":"data.transactions.items.[INDEX].args.size","typeLabel":"string"},"leverage":{"type":"number","description":"Leverage multiplier.","example":10,"uniqueKey":"data.transactions.items.[INDEX].args.leverage","typeLabel":"number"},"marginMode":{"type":"string","description":"Known values: `isolated`, `cross`.","example":"isolated","uniqueKey":"data.transactions.items.[INDEX].args.marginMode","typeLabel":"string"},"limitPrice":{"type":"number","description":"Limit price for a limit order.","example":3900,"uniqueKey":"data.transactions.items.[INDEX].args.limitPrice","typeLabel":"number"},"stopLossPrice":{"type":"number","description":"Trigger price for a stop-loss.","example":3600,"uniqueKey":"data.transactions.items.[INDEX].args.stopLossPrice","typeLabel":"number"},"takeProfitPrice":{"type":"number","description":"Trigger price for a take-profit.","example":4400,"uniqueKey":"data.transactions.items.[INDEX].args.takeProfitPrice","typeLabel":"number"},"orderId":{"type":"string","description":"A single order id (e.g. to cancel or edit).","example":"12345","uniqueKey":"data.transactions.items.[INDEX].args.orderId","typeLabel":"string"},"orderIds":{"type":"array","items":{"type":"string","uniqueKey":"data.transactions.items.[INDEX].args.orderIds.items.[INDEX]","typeLabel":"string"},"description":"Multiple order ids (e.g. to cancel several orders).","uniqueKey":"data.transactions.items.[INDEX].args.orderIds","typeLabel":"string[]"},"assetIndex":{"type":"integer","description":"Venue-specific asset index.","example":1,"uniqueKey":"data.transactions.items.[INDEX].args.assetIndex","typeLabel":"integer"},"fromToken":{"type":"object","description":"Funding source token and chain (for `fund`).","required":["network"],"properties":{"network":{"type":"string","description":"Venue slug or CAIP-2 chain id (e.g. `eip155:42161`).","example":"eip155:42161","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].args.fromToken.network","typeLabel":"string"},"address":{"type":"string","description":"Token contract address on that network.","example":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","uniqueKey":"data.transactions.items.[INDEX].args.fromToken.address","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].args.fromToken","typeLabel":"object"},"agentAddress":{"type":"string","description":"Agent wallet address (for `approveAgent`).","example":"0x1234567890abcdef1234567890abcdef12345678","uniqueKey":"data.transactions.items.[INDEX].args.agentAddress","typeLabel":"string"},"agentName":{"type":"string","description":"Human-readable agent name (for `approveAgent`).","example":"my-app","uniqueKey":"data.transactions.items.[INDEX].args.agentName","typeLabel":"string"},"validUntil":{"type":"integer","description":"Expiry (unix seconds) for a time-bounded approval.","example":1767225600,"uniqueKey":"data.transactions.items.[INDEX].args.validUntil","typeLabel":"integer"},"stopLossOrderId":{"type":"string","description":"Existing stop-loss order id to update.","example":"12346","uniqueKey":"data.transactions.items.[INDEX].args.stopLossOrderId","typeLabel":"string"},"takeProfitOrderId":{"type":"string","description":"Existing take-profit order id to update.","example":"12347","uniqueKey":"data.transactions.items.[INDEX].args.takeProfitOrderId","typeLabel":"string"},"skipApproval":{"type":"boolean","description":"Skip an approval step where the venue allows it.","example":false,"uniqueKey":"data.transactions.items.[INDEX].args.skipApproval","typeLabel":"boolean"},"fundingMethod":{"type":"string","description":"How the venue routes a deposit. Known values: `bridge2`, `lifi`.","example":"bridge2","uniqueKey":"data.transactions.items.[INDEX].args.fundingMethod","typeLabel":"string"},"enabled":{"type":"boolean","description":"Toggle flag (e.g. for `setUnifiedAccount`).","example":true,"uniqueKey":"data.transactions.items.[INDEX].args.enabled","typeLabel":"boolean"}},"additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].args","typeLabel":"object"},"signingFormat":{"oneOf":[{"type":"string","description":"Signing format required. Known values: `EVM_TRANSACTION`, `EIP712_TYPED_DATA`, `SOLANA_TRANSACTION`. Treat unknown values as opaque.","example":"EIP712_TYPED_DATA","uniqueKey":"data.transactions.items.[INDEX].signingFormat.oneOf.0","typeLabel":"string"},{"type":"null","description":"Signing format required. Known values: `EVM_TRANSACTION`, `EIP712_TYPED_DATA`, `SOLANA_TRANSACTION`. Treat unknown values as opaque.","example":"EIP712_TYPED_DATA","uniqueKey":"data.transactions.items.[INDEX].signingFormat.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transactions.items.[INDEX].signingFormat","typeLabel":"string | null"},"signablePayload":{"oneOf":[{"type":"object","description":"The payload to sign, returned byte-for-byte. Its shape depends on `signingFormat`: typed data for `EIP712_TYPED_DATA`, an unsigned transaction for `EVM_TRANSACTION`. Always a JSON object.","required":["domain","types","primaryType","message"],"properties":{"domain":{"type":"object","required":["name","version","chainId"],"properties":{"name":{"type":"string","example":"Exchange","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.domain.name","typeLabel":"string"},"version":{"type":"string","example":"1","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.domain.version","typeLabel":"string"},"chainId":{"type":"integer","example":1337,"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.domain.chainId","typeLabel":"integer"},"verifyingContract":{"type":"string","example":"0x0000000000000000000000000000000000000000","uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.domain.verifyingContract","typeLabel":"string"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.domain","typeLabel":"object"},"types":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.types.additionalProperties.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.types.additionalProperties.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.types.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.types.additionalProperties","typeLabel":"object[]"},"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.types","typeLabel":"object"},"primaryType":{"type":"string","example":"Agent","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.primaryType","typeLabel":"string"},"message":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0.message","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.0","typeLabel":"object"},{"type":"object","description":"The payload to sign, returned byte-for-byte. Its shape depends on `signingFormat`: typed data for `EIP712_TYPED_DATA`, an unsigned transaction for `EVM_TRANSACTION`. Always a JSON object.","required":["from","to","data","value","gasLimit","nonce","chainId"],"properties":{"from":{"type":"string","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.from","typeLabel":"string"},"to":{"type":"string","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.to","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.data","typeLabel":"string"},"value":{"type":"string","description":"Amount of native token in wei. A decimal string, except on `FUND` from a legacy-gas chain, where it is `0x`-hex.","example":"0","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.value","typeLabel":"string"},"gasLimit":{"type":"string","description":"`0x`-hex.","example":"0x30d40","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.gasLimit","typeLabel":"string"},"nonce":{"type":"integer","isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.nonce","typeLabel":"integer"},"chainId":{"type":"integer","example":42161,"isRequired":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.chainId","typeLabel":"integer"},"gasPrice":{"type":"string","description":"`0x`-hex. Legacy-gas networks only.","uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.gasPrice","typeLabel":"string"},"maxFeePerGas":{"type":"string","description":"`0x`-hex. EIP-1559 networks only.","uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.maxFeePerGas","typeLabel":"string"},"maxPriorityFeePerGas":{"type":"string","description":"`0x`-hex. Always paired with `maxFeePerGas`.","uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1.maxPriorityFeePerGas","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].signablePayload.oneOf.1","typeLabel":"object"}],"uniqueKey":"data.transactions.items.[INDEX].signablePayload","typeLabel":"object"},"rawPayload":{"description":"The venue action and nonce the signature commits to, as `{ action, nonce }`, returned byte-for-byte. Present on `EIP712_TYPED_DATA` transactions, absent on `EVM_TRANSACTION` ones. When `signablePayload.primaryType` is `Agent`, the typed data's `connectionId` is `keccak256(msgpack(action) || uint64be(nonce) || 0x00)`, not a hash of this JSON. It is not needed to sign or submit.","type":"object","properties":{"action":{"type":"object","description":"The venue action, in the venue's own format.","additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].rawPayload.action","typeLabel":"object"},"nonce":{"type":"integer","uniqueKey":"data.transactions.items.[INDEX].rawPayload.nonce","typeLabel":"integer"}},"additionalProperties":true,"uniqueKey":"data.transactions.items.[INDEX].rawPayload","typeLabel":"object"},"error":{"type":"object","description":"Why the transaction failed, present when `status` is `FAILED` and the venue gave a reason. Yield.xyz doesn't return a failure reason on actions yet, so today a `FAILED` status is the only signal.","properties":{"code":{"type":"string","description":"Machine-readable failure code. An open set; treat unknown values as opaque.","uniqueKey":"data.transactions.items.[INDEX].error.code","typeLabel":"string"},"message":{"type":"string","description":"The venue's human-readable reason, suitable to show the user. Its wording can change; do not parse it.","example":"Order must have minimum value of $10.","uniqueKey":"data.transactions.items.[INDEX].error.message","typeLabel":"string"}},"uniqueKey":"data.transactions.items.[INDEX].error","typeLabel":"object"}},"uniqueKey":"data.transactions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.transactions","typeLabel":"object[]"},"createdAt":{"type":"string","format":"date-time","example":"2026-08-26T10:30:00.000Z","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"completedAt":{"oneOf":[{"type":"string","format":"date-time","example":"2026-08-26T10:30:05.000Z","isRequired":true,"uniqueKey":"data.completedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-08-26T10:30:05.000Z","isRequired":true,"uniqueKey":"data.completedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.completedAt","typeLabel":"string\u003cdate-time> | null"},"signedMetadata":{"oneOf":[{"type":"string","description":"Yield.xyz-signed, TLV-encoded description of the action for Ledger clear signing, as lowercase hex without `0x`. `null` when the action has no clear-signing format (`fund`, `withdraw`, `approveAgent`, `approveBuilderFee`) or Yield.xyz metadata signing is off. Returned untouched. It is not needed to sign or submit; wallets that don't clear-sign can ignore it.","uniqueKey":"data.signedMetadata.oneOf.0","typeLabel":"string"},{"type":"null","description":"Yield.xyz-signed, TLV-encoded description of the action for Ledger clear signing, as lowercase hex without `0x`. `null` when the action has no clear-signing format (`fund`, `withdraw`, `approveAgent`, `approveBuilderFee`) or Yield.xyz metadata signing is off. Returned untouched. It is not needed to sign or submit; wallets that don't clear-sign can ignore it.","uniqueKey":"data.signedMetadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.signedMetadata","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"550e8400-e29b-41d4-a716-446655440001","providerId":"hyperliquid","action":"open","status":"CREATED","summary":{"type":"Open Position","assetId":123,"orderType":"market","direction":"long","asset":"ETH","price":3500,"size":"0.215","leverage":20,"collateral":"43.00","fee":"0.0005","orderValue":123,"stopLoss":123,"takeProfit":123,"oldLiquidationPrice":123,"estimatedLiquidationPrice":4200,"oldStopLoss":123,"oldTakeProfit":123,"marginMode":"isolated","orderId":"\u003cstring>","orderIds":["\u003cstring>"],"cancelledOrderTypes":["\u003cstring>"],"amount":"\u003cstring>","fromToken":{"network":"eip155:42161","address":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},"method":"\u003cstring>","agentAddress":"\u003cstring>","agentName":"\u003cstring>","enabled":true,"closedPrice":123,"pnl":"\u003cstring>","margin":"\u003cstring>","entryPrice":123,"exitPrice":123},"transactions":[{"id":"550e8400-e29b-41d4-a716-446655440000","network":"hyperliquid","chainId":"1337","type":"OPEN_POSITION","status":"CREATED","address":"0x1234567890abcdef1234567890abcdef12345678","explorerUrls":["\u003cstring>"],"args":{"marketId":"hyperliquid-eth-usdc","side":"long","amount":"100","size":"1000","leverage":10,"marginMode":"isolated","limitPrice":3900,"stopLossPrice":3600,"takeProfitPrice":4400,"orderId":"12345","orderIds":["\u003cstring>"],"assetIndex":1,"fromToken":{"network":"eip155:42161","address":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},"agentAddress":"0x1234567890abcdef1234567890abcdef12345678","agentName":"my-app","validUntil":1767225600,"stopLossOrderId":"12346","takeProfitOrderId":"12347","skipApproval":false,"fundingMethod":"bridge2","enabled":true},"signingFormat":"EIP712_TYPED_DATA","signablePayload":{"domain":{"name":"Exchange","version":"1","chainId":1337,"verifyingContract":"0x0000000000000000000000000000000000000000"},"types":{},"primaryType":"Agent","message":{}},"rawPayload":{"action":{},"nonce":123},"error":{"code":"\u003cstring>","message":"Order must have minimum value of $10."}}],"createdAt":"2026-08-26T10:30:00.000Z","completedAt":"2026-08-26T10:30:05.000Z","signedMetadata":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f51b447c-6b77-42fe-a720-c552ceade543":{"description":"Invalid request (a field failed validation, an argument the action requires is missing, for example `args.agentAddress: Required for approveAgent`, or a funding `network` is not a chain Portal supports). Also returned when Yield.xyz Perps rejects the request (e.g. a 412 precondition such as insufficient margin), refuses it (`EXECUTE_FORBIDDEN`, for example because the venue is disabled for the Yield.xyz project), or rejects the configured API key; a vendor `details.code` is surfaced when present.","content":{"application/json":{"schema":{"type":"object","description":"An error from a Yield.xyz Perps route. Branch on `id` where present and on `details.code`; do not parse `error`.","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"id":{"type":"string","description":"Stable Portal error id, present on Portal-raised errors such as `PERPS_SIGNATURE_ADDRESS_MISMATCH`.","example":"PERPS_SIGNATURE_ADDRESS_MISMATCH","uniqueKey":"id","typeLabel":"string"},"details":{"type":"object","description":"Structured detail. `code` is the Yield.xyz Perps code and `reason` its sub-code, each present when the vendor returned one; the other keys depend on the error. For `id: PERPS_SIGNATURE_ADDRESS_MISMATCH` they are `recovered` and `expected`.","properties":{"code":{"type":"string","description":"Yield.xyz Perps error code, such as `EXECUTE_INVALID_ARGUMENT` or `SUBMIT_BROADCAST_FAILED`. An open set; treat unknown values as opaque.","example":"EXECUTE_INVALID_ARGUMENT","uniqueKey":"details.code","typeLabel":"string"},"reason":{"type":"string","description":"Yield.xyz Perps sub-code that narrows `code`, such as `NO_ROUTE_AVAILABLE` or `INVALID_FUNDING_METHOD`. An open set; treat unknown values as opaque. Free-text reasons are not returned.","example":"NO_ROUTE_AVAILABLE","uniqueKey":"details.reason","typeLabel":"string"},"recovered":{"type":"string","description":"The address the signature recovers to (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.recovered","typeLabel":"string"},"expected":{"type":"string","description":"The account the action was built for (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.expected","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","id":"PERPS_SIGNATURE_ADDRESS_MISMATCH","details":{"code":"EXECUTE_INVALID_ARGUMENT","reason":"NO_ROUTE_AVAILABLE","recovered":"\u003cstring>","expected":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2c4f6b7d-b5fe-41a1-9e3a-dc426e8eed56":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d85378e3-92fb-4f59-8322-82661b55cb0c":{"description":"Yield.xyz Perps rate limit exceeded","content":{"application/json":{"schema":{"type":"object","description":"An error from a Yield.xyz Perps route. Branch on `id` where present and on `details.code`; do not parse `error`.","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"id":{"type":"string","description":"Stable Portal error id, present on Portal-raised errors such as `PERPS_SIGNATURE_ADDRESS_MISMATCH`.","example":"PERPS_SIGNATURE_ADDRESS_MISMATCH","uniqueKey":"id","typeLabel":"string"},"details":{"type":"object","description":"Structured detail. `code` is the Yield.xyz Perps code and `reason` its sub-code, each present when the vendor returned one; the other keys depend on the error. For `id: PERPS_SIGNATURE_ADDRESS_MISMATCH` they are `recovered` and `expected`.","properties":{"code":{"type":"string","description":"Yield.xyz Perps error code, such as `EXECUTE_INVALID_ARGUMENT` or `SUBMIT_BROADCAST_FAILED`. An open set; treat unknown values as opaque.","example":"EXECUTE_INVALID_ARGUMENT","uniqueKey":"details.code","typeLabel":"string"},"reason":{"type":"string","description":"Yield.xyz Perps sub-code that narrows `code`, such as `NO_ROUTE_AVAILABLE` or `INVALID_FUNDING_METHOD`. An open set; treat unknown values as opaque. Free-text reasons are not returned.","example":"NO_ROUTE_AVAILABLE","uniqueKey":"details.reason","typeLabel":"string"},"recovered":{"type":"string","description":"The address the signature recovers to (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.recovered","typeLabel":"string"},"expected":{"type":"string","description":"The account the action was built for (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.expected","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","id":"PERPS_SIGNATURE_ADDRESS_MISMATCH","details":{"code":"EXECUTE_INVALID_ARGUMENT","reason":"NO_ROUTE_AVAILABLE","recovered":"\u003cstring>","expected":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b7fd2e5f-9b64-4c79-8b61-9788ad0d05f1":{"description":"Yield.xyz Perps returned a response that does not match the schema Portal expects (`id: INTEGRATION_RESPONSE_SCHEMA_DRIFT`).","content":{"application/json":{"schema":{"type":"object","description":"Returned (HTTP 500) when a third-party response no longer matches the schema Portal proxies for it. The `id` is stable: SDKs should key off it and fail gracefully. Portal is alerted automatically and fixes the mapping server-side.","required":["error","id","details"],"properties":{"error":{"type":"string","example":"yield-xyz-borrow returned a response for GET /v1/positions that does not match the expected schema","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"id":{"type":"string","enum":["INTEGRATION_RESPONSE_SCHEMA_DRIFT"],"isRequired":true,"uniqueKey":"id","typeLabel":"enum\u003cstring>"},"details":{"type":"object","required":["integration","endpoint","issues"],"properties":{"integration":{"type":"string","example":"yield-xyz-borrow","isRequired":true,"uniqueKey":"details.integration","typeLabel":"string"},"endpoint":{"type":"string","description":"The upstream vendor endpoint whose response drifted.","example":"GET /v1/positions","isRequired":true,"uniqueKey":"details.endpoint","typeLabel":"string"},"issues":{"type":"array","items":{"type":"object","required":["path","message","code"],"properties":{"path":{"type":"string","description":"Dotted path of the offending field in the vendor response.","example":"supplyBalances.0.balanceUsd","isRequired":true,"uniqueKey":"details.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","example":"Expected string, received number","isRequired":true,"uniqueKey":"details.issues.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.issues.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.issues.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"details.issues","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"yield-xyz-borrow returned a response for GET /v1/positions that does not match the expected schema","id":"INTEGRATION_RESPONSE_SCHEMA_DRIFT","details":{"integration":"yield-xyz-borrow","endpoint":"GET /v1/positions","issues":[{"path":"supplyBalances.0.balanceUsd","message":"Expected string, received number","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"045e7027-ab45-4b0f-8c93-d1e96f54af44":{"description":"Yield.xyz Perps or the venue is unreachable, or returned an upstream error (including `EXECUTE_SERVICE_UNAVAILABLE`, which Yield.xyz sends with a 404); a vendor `details.code` is surfaced when present.","content":{"application/json":{"schema":{"type":"object","description":"An error from a Yield.xyz Perps route. Branch on `id` where present and on `details.code`; do not parse `error`.","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"id":{"type":"string","description":"Stable Portal error id, present on Portal-raised errors such as `PERPS_SIGNATURE_ADDRESS_MISMATCH`.","example":"PERPS_SIGNATURE_ADDRESS_MISMATCH","uniqueKey":"id","typeLabel":"string"},"details":{"type":"object","description":"Structured detail. `code` is the Yield.xyz Perps code and `reason` its sub-code, each present when the vendor returned one; the other keys depend on the error. For `id: PERPS_SIGNATURE_ADDRESS_MISMATCH` they are `recovered` and `expected`.","properties":{"code":{"type":"string","description":"Yield.xyz Perps error code, such as `EXECUTE_INVALID_ARGUMENT` or `SUBMIT_BROADCAST_FAILED`. An open set; treat unknown values as opaque.","example":"EXECUTE_INVALID_ARGUMENT","uniqueKey":"details.code","typeLabel":"string"},"reason":{"type":"string","description":"Yield.xyz Perps sub-code that narrows `code`, such as `NO_ROUTE_AVAILABLE` or `INVALID_FUNDING_METHOD`. An open set; treat unknown values as opaque. Free-text reasons are not returned.","example":"NO_ROUTE_AVAILABLE","uniqueKey":"details.reason","typeLabel":"string"},"recovered":{"type":"string","description":"The address the signature recovers to (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.recovered","typeLabel":"string"},"expected":{"type":"string","description":"The account the action was built for (`PERPS_SIGNATURE_ADDRESS_MISMATCH`).","uniqueKey":"details.expected","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","id":"PERPS_SIGNATURE_ADDRESS_MISMATCH","details":{"code":"EXECUTE_INVALID_ARGUMENT","reason":"NO_ROUTE_AVAILABLE","recovered":"\u003cstring>","expected":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"30f7f3aa-c26c-40a3-908d-68a505256cc2":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Client API Key or Client Session Token (CST). Pass as a Bearer token in the\nAuthorization header.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"8e0d2bfe-0d3c-4e89-9a9d-7a84dd395f7b":{"url":"https://api.portalhq.io/api/v3","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Client API Key or Client Session Token (CST). Pass as a Bearer token in the\nAuthorization header.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Client API Key or Client Session Token (CST). Pass as a Bearer token in the\nAuthorization header.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/client-api.yaml"},"subdomain":"portal-003221ec","siteName":"Portal","title":"Execute a perps action - Portal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T20:53:17.414Z","originalFileLocation":"api-reference/yieldxyz-perps/execute-a-perps-action.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit. This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execute a perps action - Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit. This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://portal-003221ec.mintlify.app/_mintlify/api/og/v2?division=Yield.xyz+Perps\u0026amp;title=Execute+a+perps+action\u0026amp;description=Build+unsigned+transaction%28s%29+for+a+perps+action+%28%60open%60%2C+%60close%60%2C+%60updateLeverage%60%2C+%60stopLoss%60%2C+%60takeProfit%60%2C+%60setTpAndSl%60%2C+%60cancelOrder%60%2C+%60editOrder%60%2C+%60update\u0026amp;theme=d1692d6d2d4391f288b08827\u0026amp;signature=c602112cd934e9dedbc5f71315f198b0ceceba909cde34af361ca76a7c325744\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Execute a perps action - Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit. This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://portal-003221ec.mintlify.app/_mintlify/api/og/v2?division=Yield.xyz+Perps\u0026amp;title=Execute+a+perps+action\u0026amp;description=Build+unsigned+transaction%28s%29+for+a+perps+action+%28%60open%60%2C+%60close%60%2C+%60updateLeverage%60%2C+%60stopLoss%60%2C+%60takeProfit%60%2C+%60setTpAndSl%60%2C+%60cancelOrder%60%2C+%60editOrder%60%2C+%60update\u0026amp;theme=d1692d6d2d4391f288b08827\u0026amp;signature=c602112cd934e9dedbc5f71315f198b0ceceba909cde34af361ca76a7c325744\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5a86fa\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/yieldxyz-perps/execute-a-perps-action.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.portalhq.io/#organization\",\"name\":\"Portal\",\"url\":\"https://docs.portalhq.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/light.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=589c25ed9717a63807caa49ef88b9541\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.portalhq.io#website\",\"name\":\"Portal\",\"url\":\"https://docs.portalhq.io\",\"publisher\":{\"@id\":\"https://docs.portalhq.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action#webpage\",\"url\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action\",\"name\":\"Execute a perps action\",\"description\":\"Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit. This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.\",\"dateModified\":\"2026-10-27T20:53:17.414Z\",\"isPartOf\":{\"@id\":\"https://docs.portalhq.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Client API\",\"item\":\"https://docs.portalhq.io/api-reference/clients/get-the-clients-details\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Yield.xyz Perps\",\"item\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/list-trading-venues\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Execute a perps action\",\"item\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action#apireference\",\"headline\":\"Execute a perps action\",\"name\":\"Execute a perps action\",\"description\":\"Build unsigned transaction(s) for a perps action (open, close, updateLeverage, stopLoss, takeProfit, setTpAndSl, cancelOrder, editOrder, updateMargin, fund, withdraw, approveAgent, approveBuilderFee, setUnifiedAccount). Returns transaction(s) to sign by their signingFormat; submit each via POST /transactions/:id/submit. This is a proxy to the Yield.xyz Perps POST /v1/actions endpoint. Portal validates the upstream response against the schema documented here before returning it under data, and translates funding-chain network values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with id: INTEGRATION_RESPONSE_SCHEMA_DRIFT instead of a partial response. Upstream reference: Yield.xyz Perps API.\",\"url\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action\",\"mainEntityOfPage\":{\"@id\":\"https://docs.portalhq.io/api-reference/yieldxyz-perps/execute-a-perps-action#webpage\"},\"dateModified\":\"2026-10-27T20:53:17.414Z\",\"publisher\":{\"@id\":\"https://docs.portalhq.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.portalhq.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Portal","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/portal-hq"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/portalcommunity/shared_invite/zt-1zlyexf43-A94Z4ugntrgLGs2j5slmeQ"},{"anchor":"Blog","icon":"newspaper","href":"https://www.portalhq.io/blog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/apis/api-reference-overview"}]},{"group":"Enclave MPC API","pages":[{"group":"Wallet Management","pages":[{"title":"Create the client's wallet","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/generate","href":"/api-reference/mpc-operations/create-the-clients-wallet"},{"title":"Back up the client's wallet","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/backup","href":"/api-reference/mpc-operations/back-up-the-clients-wallet"},{"title":"Recover the client's wallet","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/recover","href":"/api-reference/mpc-operations/recover-the-clients-wallet"}]},{"group":"Signing","pages":[{"title":"Send the client's assets","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/assets/send","href":"/api-reference/mpc-operations/send-the-clients-assets"},{"title":"Sign a transaction or message by chain","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/sign","href":"/api-reference/mpc-operations/sign-a-transaction-or-message-by-chain"},{"title":"Sign a transaction or message by curve","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/raw/sign/{curve}","href":"/api-reference/mpc-operations/sign-a-transaction-or-message-by-curve"}]},{"group":"Presignatures","pages":[{"title":"Create a presignature","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml post /v1/presign/{curve}","href":"/api-reference/mpc-operations/create-a-presignature"},{"title":"List active presignatures","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml get /v1/presignatures","href":"/api-reference/mpc-operations/list-active-presignatures"},{"title":"Delete a presignature","deprecated":null,"version":null,"openapi":"/openapi/enclave-mpc-api.yaml delete /v1/presignatures/{id}","href":"/api-reference/mpc-operations/delete-a-presignature"}]}]},{"group":"Client API","pages":[{"group":"Clients","pages":[{"title":"Get the client's details","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me","href":"/api-reference/clients/get-the-clients-details"}]},{"group":"Wallet","pages":[{"title":"Get wallet balances","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/chains/{chain}/assets","href":"/api-reference/wallet/get-wallet-balances"},{"title":"Get wallet NFTs","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/chains/{chain}/assets/nfts","href":"/api-reference/wallet/get-wallet-nfts"},{"title":"Get wallet transactions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/chains/{chain}/transactions","href":"/api-reference/wallet/get-wallet-transactions"},{"title":"Get transaction details by signature","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/chains/{chain}/transactions/{signature}","href":"/api-reference/wallet/get-transaction-details-by-signature"},{"title":"Get wallet capabilities","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/wallet_getCapabilities","href":"/api-reference/wallet/get-wallet-capabilities"}]},{"group":"Transactions","pages":[{"title":"Build a transaction","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/chains/{chain}/assets/send/build-transaction","href":"/api-reference/transactions/build-a-transaction"},{"title":"Broadcast a signed transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/send/broadcast-transaction","href":"/api-reference/transactions/broadcast-a-signed-transaction"},{"title":"Build a user operation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/send/build-user-operation","href":"/api-reference/transactions/build-a-user-operation"},{"title":"Broadcast a user operation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/send/broadcast-user-operation","href":"/api-reference/transactions/broadcast-a-user-operation"},{"title":"Evaluate a transaction for risks","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/evaluate-transaction","href":"/api-reference/transactions/evaluate-a-transaction-for-risks"}]},{"group":"Funding","pages":[{"title":"Get the testnet funding configuration","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/fund/config","href":"/api-reference/funding/get-the-testnet-funding-configuration"},{"title":"Fund the client's wallet with testnet tokens","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/fund","href":"/api-reference/funding/fund-the-clients-wallet-with-testnet-tokens"}]},{"group":"Wallet Shares","pages":[{"title":"Update signing share pair statuses","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml patch /clients/me/signing-share-pairs","href":"/api-reference/wallet-shares/update-signing-share-pair-statuses"},{"title":"Update backup share pair statuses","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml patch /clients/me/backup-share-pairs","href":"/api-reference/wallet-shares/update-backup-share-pair-statuses"},{"title":"Get ejectable backup shares for a wallet","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/wallets/{walletId}/ejectable-backup-shares","href":"/api-reference/wallet-shares/get-ejectable-backup-shares-for-a-wallet"},{"title":"Delete a signing share pair","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml delete /clients/me/wallets/{walletId}/signing-share-pairs/{signingSharePairId}","href":"/api-reference/wallet-shares/delete-a-signing-share-pair"},{"title":"Get backup share pairs","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/wallets/{walletId}/backup-share-pairs","href":"/api-reference/wallet-shares/get-backup-share-pairs"},{"title":"Get signing share pairs","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/wallets/{walletId}/signing-share-pairs","href":"/api-reference/wallet-shares/get-signing-share-pairs"},{"title":"Complete wallet ejection","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml patch /clients/me/wallets/{walletId}/complete-eject","href":"/api-reference/wallet-shares/complete-wallet-ejection"},{"title":"Mark client as ejected","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/eject","href":"/api-reference/clients/mark-client-as-ejected"}]},{"group":"Delegations","pages":[{"title":"Approve a token delegation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/{token}/approvals","href":"/api-reference/delegations/approve-a-token-delegation"},{"title":"Revoke a token delegation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/{token}/revocations","href":"/api-reference/delegations/revoke-a-token-delegation"},{"title":"Get delegation status for a token","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/assets/{token}/delegations","href":"/api-reference/delegations/get-delegation-status-for-a-token"},{"title":"Transfer tokens as a delegate","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/assets/{token}/delegations/transfers","href":"/api-reference/delegations/transfer-tokens-as-a-delegate"},{"title":"Initialize a delegation system account","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/delegation/init-system-account","href":"/api-reference/delegations/initialize-a-delegation-system-account"},{"title":"Initialize a delegation token account","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/delegation/init-token-account","href":"/api-reference/delegations/initialize-a-delegation-token-account"},{"title":"Approve a Solana delegation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/delegation/approve","href":"/api-reference/delegations/approve-a-solana-delegation"},{"title":"Transfer as a Solana delegate","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/delegation/transfer","href":"/api-reference/delegations/transfer-as-a-solana-delegate"},{"title":"Get Solana delegation status","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/delegation/status","href":"/api-reference/delegations/get-solana-delegation-status"},{"title":"Revoke a Solana delegation","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/delegation/revoke","href":"/api-reference/delegations/revoke-a-solana-delegation"}]},{"group":"EIP-7702","pages":[{"title":"Get account type","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/chains/{chain}/wallet/account-type","href":"/api-reference/eip-7702/get-account-type"},{"title":"Build an EIP-7702 authorization","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/wallet/build-authorization-list","href":"/api-reference/eip-7702/build-an-eip-7702-authorization"},{"title":"Build an EIP-7702 authorization transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/chains/{chain}/wallet/build-authorization-transaction","href":"/api-reference/eip-7702/build-an-eip-7702-authorization-transaction"}]},{"group":"Li.Fi","pages":[{"title":"Get a Li.Fi swap/bridge quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/lifi/quote","href":"/api-reference/lifi/get-a-lifi-swapbridge-quote"},{"title":"Get Li.Fi swap/bridge routes","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/lifi/routes","href":"/api-reference/lifi/get-lifi-swapbridge-routes"},{"title":"Get details for a route step","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/lifi/route-step-details","href":"/api-reference/lifi/get-details-for-a-route-step"},{"title":"Get Li.Fi transaction status","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/lifi/status","href":"/api-reference/lifi/get-lifi-transaction-status"},{"title":"Get Li.Fi supported tokens","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/lifi/tokens","href":"/api-reference/lifi/get-lifi-supported-tokens"}]},{"group":"CCTP","pages":[{"title":"List CCTP routes","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/cctp/routes","href":"/api-reference/cctp/list-cctp-routes"},{"title":"Quote a CCTP transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/cctp/quote","href":"/api-reference/cctp/quote-a-cctp-transfer"},{"title":"Create a CCTP transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/cctp/transfers","href":"/api-reference/cctp/create-a-cctp-transfer"},{"title":"Submit a CCTP transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/cctp/transfers/{id}/submit","href":"/api-reference/cctp/submit-a-cctp-transfer"},{"title":"Get a CCTP transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/cctp/transfers/{id}","href":"/api-reference/cctp/get-a-cctp-transfer"},{"title":"List CCTP transfers","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/cctp/transfers","href":"/api-reference/cctp/list-cctp-transfers"}]},{"group":"0x","pages":[{"title":"Get available swap sources","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/0x/swap/sources","href":"/api-reference/0x/get-available-swap-sources"},{"title":"Get a swap quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/0x/swap/quote","href":"/api-reference/0x/get-a-swap-quote"},{"title":"Get a swap price estimate","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/0x/swap/price","href":"/api-reference/0x/get-a-swap-price-estimate"},{"title":"Get cross-chain swap quotes","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/0x/cross-chain/quotes","href":"/api-reference/0x/get-cross-chain-swap-quotes"},{"title":"Get cross-chain transaction status","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/0x/cross-chain/status","href":"/api-reference/0x/get-cross-chain-transaction-status"},{"title":"List cross-chain bridge and swap sources","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/0x/cross-chain/sources","href":"/api-reference/0x/list-cross-chain-bridge-and-swap-sources"},{"title":"Get cross-chain transaction history","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/0x/cross-chain/tx-history","href":"/api-reference/0x/get-cross-chain-transaction-history"}]},{"group":"Yield","pages":[{"title":"Get yield opportunities","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz/yields","href":"/api-reference/yieldxyz/get-yield-opportunities"},{"title":"Get default yield opportunities","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz/yields/defaults","href":"/api-reference/yieldxyz/get-default-yield-opportunities"},{"title":"Get yield validators","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz/yields/{yieldId}/validators","href":"/api-reference/yieldxyz/get-yield-validators"},{"title":"Get yield balances","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz/yields/balances","href":"/api-reference/yieldxyz/get-yield-balances"},{"title":"Enter a yield position","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz/actions/enter","href":"/api-reference/yieldxyz/enter-a-yield-position"},{"title":"Exit a yield position","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz/actions/exit","href":"/api-reference/yieldxyz/exit-a-yield-position"},{"title":"Manage a yield position","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz/actions/manage","href":"/api-reference/yieldxyz/manage-a-yield-position"},{"title":"Submit a transaction hash","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml put /clients/me/integrations/yield-xyz/transactions/{transactionId}/submit-hash","href":"/api-reference/yieldxyz/submit-a-transaction-hash"},{"title":"Get a yield transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz/transactions/{transactionId}","href":"/api-reference/yieldxyz/get-a-yield-transaction"},{"title":"Get yield action history","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz/actions","href":"/api-reference/yieldxyz/get-yield-action-history"}]},{"group":"Yield.xyz Borrow","pages":[{"title":"Get positions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/positions","href":"/api-reference/yieldxyz-borrow/get-positions"},{"title":"Get liquidation history","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/positions/liquidations","href":"/api-reference/yieldxyz-borrow/get-liquidation-history"},{"title":"Execute a borrow action","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-borrow/actions","href":"/api-reference/yieldxyz-borrow/execute-a-borrow-action"},{"title":"List actions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/actions","href":"/api-reference/yieldxyz-borrow/list-actions"},{"title":"Get action by ID","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/actions/{id}","href":"/api-reference/yieldxyz-borrow/get-action-by-id"},{"title":"Get next step transactions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-borrow/actions/{id}/step","href":"/api-reference/yieldxyz-borrow/get-next-step-transactions"},{"title":"Submit signed transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-borrow/transactions/{transactionId}/submit","href":"/api-reference/yieldxyz-borrow/submit-signed-transaction"},{"title":"List integrations","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/integrations","href":"/api-reference/yieldxyz-borrow/list-integrations"},{"title":"Get integration details","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/integrations/{integrationId}","href":"/api-reference/yieldxyz-borrow/get-integration-details"},{"title":"List lending markets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/markets","href":"/api-reference/yieldxyz-borrow/list-lending-markets"},{"title":"Get market by ID","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/markets/{marketId}","href":"/api-reference/yieldxyz-borrow/get-market-by-id"},{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-borrow/health","href":"/api-reference/yieldxyz-borrow/health-check"}]},{"group":"Agg","pages":[{"title":"Start an Agg link","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/link/challenge","href":"/api-reference/agg/start-an-agg-link"},{"title":"Complete an Agg link","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/link","href":"/api-reference/agg/complete-an-agg-link"},{"title":"Get the Agg link","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/link","href":"/api-reference/agg/get-the-agg-link"},{"title":"Remove the Agg link","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml delete /clients/me/integrations/agg/link","href":"/api-reference/agg/remove-the-agg-link"},{"title":"List events","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/events","href":"/api-reference/agg/list-events"},{"title":"Get an event","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/events/{eventId}","href":"/api-reference/agg/get-an-event"},{"title":"Get an event page","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/events/{eventId}/bootstrap","href":"/api-reference/agg/get-an-event-page"},{"title":"List markets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/markets","href":"/api-reference/agg/list-markets"},{"title":"Search events or markets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/search","href":"/api-reference/agg/search-events-or-markets"},{"title":"List categories","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/categories","href":"/api-reference/agg/list-categories"},{"title":"Get venue geo restrictions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/venue-geo-policy","href":"/api-reference/agg/get-venue-geo-restrictions"},{"title":"Get the Agg app config","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/app-config","href":"/api-reference/agg/get-the-agg-app-config"},{"title":"Get midpoints","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/midpoints","href":"/api-reference/agg/get-midpoints"},{"title":"Get order books","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/orderbooks","href":"/api-reference/agg/get-order-books"},{"title":"Get an outcome's order book","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/orderbooks/outcome/{outcomeId}","href":"/api-reference/agg/get-an-outcomes-order-book"},{"title":"Get chart bars","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/charts/bars","href":"/api-reference/agg/get-chart-bars"},{"title":"Get chart history","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/charts/history/manifest","href":"/api-reference/agg/get-chart-history"},{"title":"Get the Agg user","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/me","href":"/api-reference/agg/get-the-agg-user"},{"title":"Get deposit addresses","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/deposit-addresses","href":"/api-reference/agg/get-deposit-addresses"},{"title":"Get balances","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/balances","href":"/api-reference/agg/get-balances"},{"title":"List positions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/positions","href":"/api-reference/agg/list-positions"},{"title":"List orders","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/orders","href":"/api-reference/agg/list-orders"},{"title":"Fill a quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/orders","href":"/api-reference/agg/fill-a-quote"},{"title":"List activity","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/activity","href":"/api-reference/agg/list-activity"},{"title":"Redeem winnings","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/redemptions","href":"/api-reference/agg/redeem-winnings"},{"title":"Preview a withdrawal","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/withdrawals/preview","href":"/api-reference/agg/preview-a-withdrawal"},{"title":"Get the withdrawable amount","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/withdrawals/quote","href":"/api-reference/agg/get-the-withdrawable-amount"},{"title":"Withdraw","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/withdrawals","href":"/api-reference/agg/withdraw"},{"title":"Get a withdrawal","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/withdrawals/{withdrawalId}","href":"/api-reference/agg/get-a-withdrawal"},{"title":"Get a quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/quotes","href":"/api-reference/agg/get-a-quote"},{"title":"Place a market order on one venue","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/orders/direct","href":"/api-reference/agg/place-a-market-order-on-one-venue"},{"title":"Place a limit order","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/orders/limit","href":"/api-reference/agg/place-a-limit-order"},{"title":"Cancel a limit order","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/orders/cancel","href":"/api-reference/agg/cancel-a-limit-order"},{"title":"Answer self-custody signature requests","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/agg/orders/{quoteId}/signatures","href":"/api-reference/agg/answer-self-custody-signature-requests"},{"title":"Get fill progress","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/agg/orders/{quoteId}","href":"/api-reference/agg/get-fill-progress"}]},{"group":"Yield.xyz Perps","pages":[{"title":"List trading venues","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/providers","href":"/api-reference/yieldxyz-perps/list-trading-venues"},{"title":"Get a trading venue","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/providers/{providerId}","href":"/api-reference/yieldxyz-perps/get-a-trading-venue"},{"title":"List markets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/markets","href":"/api-reference/yieldxyz-perps/list-markets"},{"title":"Get a market","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/markets/{marketId}","href":"/api-reference/yieldxyz-perps/get-a-market"},{"title":"Get market candles","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/markets/{marketId}/candles","href":"/api-reference/yieldxyz-perps/get-market-candles"},{"title":"Get positions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/positions","href":"/api-reference/yieldxyz-perps/get-positions"},{"title":"Get orders","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/orders","href":"/api-reference/yieldxyz-perps/get-orders"},{"title":"Get account balances","description":"Get a wallet's trading-account collateral and margin on a venue (`accountValue`, `usedMargin`, `availableBalance`, `unrealizedPnl`). Accepts a single venue.\n\nThis is a proxy to the Yield.xyz Perps `POST /v1/balances` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`. If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/balances","href":"/api-reference/yieldxyz-perps/get-account-balances"},{"title":"Execute a perps action","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/actions","href":"/api-reference/yieldxyz-perps/execute-a-perps-action"},{"title":"List actions","description":"Get a paginated list of a wallet's actions, filterable by venue, market, action type and status.\n\nThis is a proxy to the Yield.xyz Perps `GET /v1/actions` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`, and translates funding-chain `network` values to CAIP-2. If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/actions","href":"/api-reference/yieldxyz-perps/list-actions"},{"title":"Get an action","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/actions/{id}","href":"/api-reference/yieldxyz-perps/get-an-action"},{"title":"Get activity feed","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/activity","href":"/api-reference/yieldxyz-perps/get-activity-feed"},{"title":"List events","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/events","href":"/api-reference/yieldxyz-perps/list-events"},{"title":"Get an event","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/events/{id}","href":"/api-reference/yieldxyz-perps/get-an-event"},{"title":"Submit a signed transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/yield-xyz-perps/transactions/{transactionId}/submit","href":"/api-reference/yieldxyz-perps/submit-a-signed-transaction"},{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/health","href":"/api-reference/yieldxyz-perps/health-check"},{"title":"Per-venue health","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/health/providers","href":"/api-reference/yieldxyz-perps/per-venue-health"}]},{"group":"Blockaid","pages":[{"title":"Scan an EVM transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/evm/scan","href":"/api-reference/blockaid/scan-an-evm-transaction"},{"title":"Scan Solana transactions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/solana/scan","href":"/api-reference/blockaid/scan-solana-transactions"},{"title":"Scan a TRON transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/tron/scan","href":"/api-reference/blockaid/scan-a-tron-transaction"},{"title":"Scan an address","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/address/scan","href":"/api-reference/blockaid/scan-an-address"},{"title":"Scan tokens","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/tokens/scan","href":"/api-reference/blockaid/scan-tokens"},{"title":"Scan a URL","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/blockaid/url/scan","href":"/api-reference/blockaid/scan-a-url"}]},{"group":"Hypernative","pages":[{"title":"Scan addresses","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/addresses/scan","href":"/api-reference/hypernative/scan-addresses"},{"title":"Scan an EVM transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/evm/scan","href":"/api-reference/hypernative/scan-an-evm-transaction"},{"title":"Scan an EIP-712 message","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/eip-712/scan","href":"/api-reference/hypernative/scan-an-eip-712-message"},{"title":"Scan a Solana transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/solana/scan","href":"/api-reference/hypernative/scan-a-solana-transaction"},{"title":"Scan NFTs","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/nfts/scan","href":"/api-reference/hypernative/scan-nfts"},{"title":"Scan tokens","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/tokens/scan","href":"/api-reference/hypernative/scan-tokens"},{"title":"Scan a URL","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/hypernative/url/scan","href":"/api-reference/hypernative/scan-a-url"}]},{"group":"Noah","pages":[{"title":"Initiate KYC onboarding","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/noah/customers/kyc","href":"/api-reference/noah/initiate-kyc-onboarding"},{"title":"Initiate payin","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/noah/payins","href":"/api-reference/noah/initiate-payin"},{"title":"Simulate fiat deposit","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/noah/payins/simulate","href":"/api-reference/noah/simulate-fiat-deposit"},{"title":"Get payout countries","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/noah/payouts/countries","href":"/api-reference/noah/get-payout-countries"},{"title":"Get payout channels","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/noah/payouts/channels","href":"/api-reference/noah/get-payout-channels"},{"title":"Get payout channel form","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/noah/payouts/channels/{channelId}/form","href":"/api-reference/noah/get-payout-channel-form"},{"title":"Quote payout","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/noah/payouts/quote","href":"/api-reference/noah/quote-payout"},{"title":"Initiate payout","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/noah/payouts","href":"/api-reference/noah/initiate-payout"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/noah/payouts/payment-methods","href":"/api-reference/noah/list-payment-methods"}]},{"group":"Meld","pages":[{"title":"List service providers","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/service-providers","href":"/api-reference/meld/list-service-providers"},{"title":"List countries","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/countries","href":"/api-reference/meld/list-countries"},{"title":"List fiat currencies","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/fiat-currencies","href":"/api-reference/meld/list-fiat-currencies"},{"title":"List crypto currencies","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/crypto-currencies","href":"/api-reference/meld/list-crypto-currencies"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/payment-methods","href":"/api-reference/meld/list-payment-methods"},{"title":"List country defaults","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/defaults","href":"/api-reference/meld/list-country-defaults"},{"title":"List buy limits","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/buy-limits","href":"/api-reference/meld/list-buy-limits"},{"title":"List sell limits","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/sell-limits","href":"/api-reference/meld/list-sell-limits"},{"title":"List KYC limits","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/discovery/kyc-limits","href":"/api-reference/meld/list-kyc-limits"},{"title":"Create Meld customer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/meld/customers","href":"/api-reference/meld/create-meld-customer"},{"title":"Get Meld customer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/customers","href":"/api-reference/meld/get-meld-customer"},{"title":"Get quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/meld/retail/quote","href":"/api-reference/meld/get-quote"},{"title":"Create widget session","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/meld/retail/widget","href":"/api-reference/meld/create-widget-session"},{"title":"List transactions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/retail/transactions","href":"/api-reference/meld/list-transactions"},{"title":"Get transaction","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/retail/transactions/{id}","href":"/api-reference/meld/get-transaction"},{"title":"Get transaction by session","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/meld/retail/transactions/sessions/{sessionId}","href":"/api-reference/meld/get-transaction-by-session"}]},{"group":"Due","pages":[{"title":"Provision Due customer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/customers","href":"/api-reference/due/provision-due-customer"},{"title":"Get Due customer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/customers","href":"/api-reference/due/get-due-customer"},{"title":"List channels","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/channels","href":"/api-reference/due/list-channels"},{"title":"List financial institutions","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/financial-institutions/{country2}/{schema}","href":"/api-reference/due/list-financial-institutions"},{"title":"Get financial institution","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/financial-institutions/{financialInstitutionId}","href":"/api-reference/due/get-financial-institution"},{"title":"Start KYC submission","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc","href":"/api-reference/due/start-kyc-submission"},{"title":"Get KYC status","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/kyc","href":"/api-reference/due/get-kyc-status"},{"title":"Start hosted KYC session","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/session","href":"/api-reference/due/start-hosted-kyc-session"},{"title":"Get KYC submission","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/kyc/submissions/{id}","href":"/api-reference/due/get-kyc-submission"},{"title":"Submit KYC information","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/submissions/{id}/info","href":"/api-reference/due/submit-kyc-information"},{"title":"Create KYC document","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/submissions/{id}/documents","href":"/api-reference/due/create-kyc-document"},{"title":"Upload KYC document","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/submissions/documents/{token}","href":"/api-reference/due/upload-kyc-document"},{"title":"Complete KYC submission","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/submissions/{id}/complete","href":"/api-reference/due/complete-kyc-submission"},{"title":"List endorsements","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/kyc/endorsements","href":"/api-reference/due/list-endorsements"},{"title":"Request endorsement","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/kyc/endorsements/{code}","href":"/api-reference/due/request-endorsement"},{"title":"Get endorsement","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/kyc/endorsements/{code}","href":"/api-reference/due/get-endorsement"},{"title":"Get terms of service","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/tos/{token}","href":"/api-reference/due/get-terms-of-service"},{"title":"Accept terms of service","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/tos/{token}","href":"/api-reference/due/accept-terms-of-service"},{"title":"Get usage","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/usage","href":"/api-reference/due/get-usage"},{"title":"Create transfer quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/transfers/quote","href":"/api-reference/due/create-transfer-quote"},{"title":"Estimate transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/transfers/estimate","href":"/api-reference/due/estimate-transfer"},{"title":"List transfers","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/transfers","href":"/api-reference/due/list-transfers"},{"title":"Create transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/transfers","href":"/api-reference/due/create-transfer"},{"title":"Get transfer","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/transfers/{id}","href":"/api-reference/due/get-transfer"},{"title":"Create transfer intent","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/transfers/{id}/transfer-intent","href":"/api-reference/due/create-transfer-intent"},{"title":"Create funding address","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/transfers/{id}/funding-address","href":"/api-reference/due/create-funding-address"},{"title":"Create FX quote","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/fx/quote","href":"/api-reference/due/create-fx-quote"},{"title":"List FX markets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/fx/markets","href":"/api-reference/due/list-fx-markets"},{"title":"Get FX market","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/fx/markets/{base}/{quote}","href":"/api-reference/due/get-fx-market"},{"title":"Get FX market history","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/fx/markets/{base}/{quote}/history","href":"/api-reference/due/get-fx-market-history"},{"title":"List recipients","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/recipients","href":"/api-reference/due/list-recipients"},{"title":"Create recipient","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/recipients","href":"/api-reference/due/create-recipient"},{"title":"Get recipient","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/recipients/{id}","href":"/api-reference/due/get-recipient"},{"title":"Delete recipient","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml delete /clients/me/integrations/due/recipients/{id}","href":"/api-reference/due/delete-recipient"},{"title":"Register wallet","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/wallets","href":"/api-reference/due/register-wallet"},{"title":"List wallets","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/wallets","href":"/api-reference/due/list-wallets"},{"title":"Get wallet balance","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/wallets/{walletId}/balance","href":"/api-reference/due/get-wallet-balance"},{"title":"Create virtual account","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/virtual-accounts","href":"/api-reference/due/create-virtual-account"},{"title":"Get virtual account by query","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/virtual-accounts","href":"/api-reference/due/get-virtual-account-by-query"},{"title":"List virtual accounts","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/virtual-accounts/list","href":"/api-reference/due/list-virtual-accounts"},{"title":"Get virtual account","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/integrations/due/virtual-accounts/key/{key}","href":"/api-reference/due/get-virtual-account"},{"title":"Update virtual account","deprecated":null,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/integrations/due/virtual-accounts/key/{key}","href":"/api-reference/due/update-virtual-account"}]},{"group":"Deprecated","pages":[{"title":"Simulate a transaction","deprecated":true,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/simulate-transaction","href":"/api-reference/deprecated/simulate-a-transaction"},{"title":"Prepare wallet ejection (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/client-api.yaml post /clients/me/wallets/{walletId}/prepare-eject","href":"/api-reference/wallet-shares/prepare-wallet-ejection-deprecated"},{"title":"Get transactions (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/transactions","href":"/api-reference/deprecated/get-transactions-deprecated"},{"title":"Get NFTs (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/nfts","href":"/api-reference/deprecated/get-nfts-deprecated"},{"title":"Get balances (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/client-api.yaml get /clients/me/balances","href":"/api-reference/deprecated/get-balances-deprecated"}]}]},{"group":"Authentication API","pages":[{"group":"Auth Methods","pages":[{"title":"Get the enabled auth methods","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml get /methods","href":"/api-reference/auth-methods/get-the-enabled-auth-methods"}]},{"group":"Magic Links","pages":[{"title":"Send a magic link","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml post /magic-links","href":"/api-reference/magic-links/send-a-magic-link"},{"title":"Validate a magic link token","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml post /magic-links/validations","href":"/api-reference/magic-links/validate-a-magic-link-token"}]},{"group":"OAuth","pages":[{"title":"Get the OAuth authorize URLs","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml get /oauth/urls","href":"/api-reference/oauth/get-the-oauth-authorize-urls"},{"title":"Validate an OAuth token","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml post /oauth/tokens","href":"/api-reference/oauth/validate-an-oauth-token"}]},{"group":"Two-Factor Authentication","pages":[{"title":"Validate a TOTP code","deprecated":null,"version":null,"openapi":"/openapi/authentication-api.yaml post /totps/validations","href":"/api-reference/two-factor-authentication/validate-a-totp-code"}]}]},{"group":"Custodian API","pages":[{"group":"Clients","pages":[{"title":"Create a client","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients","href":"/api-reference/clients/create-a-client"},{"title":"List clients","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients","href":"/api-reference/clients/list-clients"},{"title":"Get a client","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}","href":"/api-reference/clients/get-a-client"},{"title":"Disable or enable a client capability","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml patch /custodians/me/clients/{clientId}/capabilities","href":"/api-reference/clients/disable-or-enable-a-client-capability"},{"title":"Create a client session token","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/sessions","href":"/api-reference/clients/create-a-client-session-token"},{"title":"Create a web OTP","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/web-otps","href":"/api-reference/clients/create-a-web-otp"}]},{"group":"Transactions","pages":[{"title":"Build a transaction","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/chains/{chain}/assets/send/build-transaction","href":"/api-reference/transactions/build-a-transaction"}]},{"group":"Wallet Metadata","pages":[{"title":"Get asset balances","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/assets","href":"/api-reference/wallet-metadata/get-asset-balances"},{"title":"Get NFTs","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/assets/nfts","href":"/api-reference/wallet-metadata/get-nfts"}]},{"group":"Wallet Shares","pages":[{"title":"Enable wallet ejection","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml patch /custodians/me/clients/{clientId}/enable-eject","href":"/api-reference/wallet-shares/enable-wallet-ejection"},{"title":"Get ejectable backup shares","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/wallets/{walletId}/ejectable-backup-shares","href":"/api-reference/wallet-shares/get-ejectable-backup-shares"},{"title":"Prepare a client for eject (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/prepare-eject","href":"/api-reference/wallet-shares/prepare-a-client-for-eject-deprecated"}]},{"group":"Delegations","pages":[{"title":"Get Solana delegation status","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/delegation/status","href":"/api-reference/delegations/get-solana-delegation-status"},{"title":"Get delegation status for a token","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/clients/{clientId}/chains/{chain}/assets/{token}/delegations","href":"/api-reference/delegations/get-delegation-status-for-a-token"},{"title":"Transfer as a delegate","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/clients/{clientId}/chains/{chain}/assets/{token}/delegations/transfers","href":"/api-reference/delegations/transfer-as-a-delegate"}]},{"group":"Informational Webhooks","pages":[{"title":"List informational webhooks","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/alerts/webhooks","href":"/api-reference/informational-webhooks/list-informational-webhooks"},{"title":"List informational webhook delivery events","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/alerts/webhooks/{alertWebhookId}/delivery-events","href":"/api-reference/informational-webhooks/list-informational-webhook-delivery-events"},{"title":"Retry an informational webhook delivery event","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/webhooks/{alertWebhookId}/delivery-events/{deliveryEventId}/retries","href":"/api-reference/informational-webhooks/retry-an-informational-webhook-delivery-event"},{"title":"List informational webhook events","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/alerts/webhooks/{alertWebhookId}/events","href":"/api-reference/informational-webhooks/list-informational-webhook-events"},{"title":"Replay failed informational webhook events","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/webhooks/{alertWebhookId}/events/failed/replay","href":"/api-reference/informational-webhooks/replay-failed-informational-webhook-events"},{"title":"Format a raw informational webhook event (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/wallets/format","href":"/api-reference/informational-webhooks/format-a-raw-informational-webhook-event-deprecated"},{"title":"Format raw informational webhook events (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/format","href":"/api-reference/informational-webhooks/format-raw-informational-webhook-events-deprecated"},{"title":"Replay events by block number (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/retry-by-block-number","href":"/api-reference/informational-webhooks/replay-events-by-block-number-deprecated"},{"title":"List external addresses","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/alerts/webhooks/external-addresses","href":"/api-reference/informational-webhooks/list-external-addresses"},{"title":"Create an external address","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/alerts/webhooks/external-addresses","href":"/api-reference/informational-webhooks/create-an-external-address"},{"title":"Delete an external address","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml delete /custodians/me/alerts/webhooks/external-addresses/{externalAddressId}","href":"/api-reference/informational-webhooks/delete-an-external-address"}]},{"group":"Gas Sponsorship","pages":[{"title":"Get gas sponsors","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/gas-sponsorship/chains","href":"/api-reference/gas-sponsorship/get-gas-sponsors"},{"title":"Update gas sponsorship for a chain","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml patch /custodians/me/gas-sponsorship/chains/{chainId}","href":"/api-reference/gas-sponsorship/update-gas-sponsorship-for-a-chain"},{"title":"Get historical gas sponsorship usage (deprecated)","deprecated":true,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/gas-sponsors/chains/{chainId}/usage","href":"/api-reference/gas-sponsorship/get-historical-gas-sponsorship-usage-deprecated"}]},{"group":"Due","pages":[{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/integrations/due/webhooks/events","href":"/api-reference/due/list-webhook-event-types"},{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/integrations/due/webhooks","href":"/api-reference/due/list-webhook-endpoints"},{"title":"Create webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/integrations/due/webhooks","href":"/api-reference/due/create-webhook-endpoint"},{"title":"List webhook deliveries","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/integrations/due/webhooks/{webhookId}/events","href":"/api-reference/due/list-webhook-deliveries"},{"title":"Retry webhook delivery","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/integrations/due/webhooks/{webhookId}/events/{eventId}/retry","href":"/api-reference/due/retry-webhook-delivery"},{"title":"Update webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml post /custodians/me/integrations/due/webhooks/{webhookId}","href":"/api-reference/due/update-webhook-endpoint"},{"title":"Delete webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml delete /custodians/me/integrations/due/webhooks/{webhookId}","href":"/api-reference/due/delete-webhook-endpoint"}]},{"group":"Audit Events","pages":[{"title":"List audit events","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/audit-events","href":"/api-reference/audit-events/list-audit-events"},{"title":"List audit event types","deprecated":null,"version":null,"openapi":"/openapi/custodian-api.yaml get /custodians/me/audit-events/types","href":"/api-reference/audit-events/list-audit-event-types"}]}]},{"group":"Reseller API","pages":[{"group":"Reseller Statistics","pages":[{"title":"Get reseller statistics","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml get /resellers/stats","href":"/api-reference/reseller-statistics/get-reseller-statistics"}]},{"group":"Sub-Custodians","pages":[{"title":"Create a sub-custodian","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml post /resellers/custodians","href":"/api-reference/sub-custodians/create-a-sub-custodian"},{"title":"List sub-custodians","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml get /resellers/custodians","href":"/api-reference/sub-custodians/list-sub-custodians"},{"title":"Suspend a sub-custodian","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml put /resellers/custodians/{custodianId}/suspend","href":"/api-reference/sub-custodians/suspend-a-sub-custodian"},{"title":"Activate a sub-custodian","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml put /resellers/custodians/{custodianId}/activate","href":"/api-reference/sub-custodians/activate-a-sub-custodian"},{"title":"Disable or enable signing for a sub-custodian","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml patch /resellers/custodians/{custodianId}/capabilities","href":"/api-reference/sub-custodians/disable-or-enable-signing-for-a-sub-custodian"}]},{"group":"Sub-Custodian Environments","pages":[{"title":"List sub-custodian environments","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml get /resellers/custodians/{custodianId}/environments","href":"/api-reference/sub-custodian-environments/list-sub-custodian-environments"}]},{"group":"Sub-Custodian API Keys","pages":[{"title":"Create a sub-custodian API key","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml post /resellers/custodians/{custodianId}/environments/{environmentId}/api-keys","href":"/api-reference/sub-custodian-api-keys/create-a-sub-custodian-api-key"},{"title":"Delete a sub-custodian API key","deprecated":null,"version":null,"openapi":"/openapi/reseller-api.yaml delete /resellers/custodians/{custodianId}/environments/{environmentId}/api-keys/{apiKeyId}","href":"/api-reference/sub-custodian-api-keys/delete-a-sub-custodian-api-key"}]}]}]}]},"title":"Execute a perps action - Portal","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}