{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Compass API Docs","colors":{"primary":"#0284c7","light":"#0e9fe9","dark":"#0284c7"},"logo":{"light":"https://mintcdn.com/compasslabs-f07467e0/x2NrFgZ7soJbH6sc/logo/light.svg?fit=max\u0026auto=format\u0026n=x2NrFgZ7soJbH6sc\u0026q=85\u0026s=80a04b06674000990914306c6a833cb9","dark":"https://mintcdn.com/compasslabs-f07467e0/x2NrFgZ7soJbH6sc/logo/dark.svg?fit=max\u0026auto=format\u0026n=x2NrFgZ7soJbH6sc\u0026q=85\u0026s=77e910ba12605c7f004ad72498f8076f"},"favicon":"https://mintcdn.com/compasslabs-f07467e0/x2NrFgZ7soJbH6sc/favicon.svg?fit=max\u0026auto=format\u0026n=x2NrFgZ7soJbH6sc\u0026q=85\u0026s=2025e9c84a2b6b167d319b28e1ecb8a0","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://calendly.com/elisabeth-compasslabs/30min","label":"Book a demo"},{"href":"https://compasslabs.ai/login","label":"Login"}]},"footer":{"socials":{"x":"https://x.com/labs_compass","github":"https://github.com/CompassLabs","linkedin":"https://www.linkedin.com/company/compass-labs-ai","medium":"https://medium.com/@compasslabs","telegram":"https://discord.com/invite/ujetyJJPYr","discord":"https://discord.com/invite/ujetyJJPYr"},"links":[{"header":"Resources","items":[{"label":"Blog","href":"https://medium.com/@compasslabs"}]},{"header":"Legal","items":[{"label":"Terms \u0026 Conditions","href":"https://docs.compasslabs.ai/v1/support/terms-and-conditions"},{"label":"Privacy Policy","href":"https://docs.compasslabs.ai/v1/support/privacy-policy"}]}]},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"integrations":{"ga4":{"measurementId":"G-EQSZ3TK15C"},"gtm":{"tagId":"GTM-5NXMZG6D"}},"contextual":{"options":["chatgpt","claude"],"display":"header"},"navigation":{"global":{"tabs":[],"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"compasslabs-f07467e0","hasAudioNarration":false,"actualSubdomain":"compasslabs-f07467e0","customDomains":["docs.compasslabs.ai"],"gitSource":{"type":"github","owner":"compasslabs","repo":"mono","deployBranch":"production","contentDirectory":"api_docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea6dbad48892c6d5e78b0f","collectionId":"8f3a8bb2-d32c-4bea-9e80-b8285c1467a6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea6dbad48892c6d5e78b0f"},"feedback":{"issues":true,"edits":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec807458e46bfb54f588cb","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":300},{"language":"default","tag":"Documentation","count":30},{"language":"default","tag":"Aave V3","count":15},{"language":"default","tag":"Credit","count":15},{"language":"default","tag":"Perpetual Trading","count":15},{"language":"default","tag":"Tokenized Assets","count":15},{"language":"default","tag":"Earn","count":13},{"language":"default","tag":"Morpho","count":12},{"language":"default","tag":"Uniswap V3","count":10},{"language":"default","tag":"Transaction Bundler","count":9}]},"assistantConfig":{},"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":"rbac-expansion","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":"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":"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":"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":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"button.css","content":"@keyframes jump{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}.jump-loop{animation:jump 0.5s ease infinite}#code-group{background-color:#EFEFEF33;box-shadow:0 4px 12px rgba(0, 0, 0, 0.08)}#code-group:hover{box-shadow:0 6px 18px rgba(0, 0, 0, 0.1)}#content-area>div.flex.flex-col.gap-8>div.mt-6.flex.w-full.flex-col.space-y-4>div{background-color:#EFEFEF33}#content-area>div.flex.flex-col.gap-8>div.mt-6.flex.w-full.flex-col.space-y-4>div{box-shadow:0 4px 12px rgba(0, 0, 0, 0.08)}#content-area>div.flex.flex-col.gap-8>div.mt-6.flex.w-full.flex-col.space-y-4>div:hover{box-shadow:0 6px 18px rgba(0, 0, 0, 0.1)}"}],"page":{"pagePath":"v2/api-reference/credit/execute-multiple-credit-actions","slug":"/v2/api-reference/credit/execute-multiple-credit-actions","pageMetadata":{"title":"Execute multiple credit actions","description":"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer)\ninto a single atomic Safe transaction.\n\nThe Credit Account must already be created via `/v2/credit/create_account`.","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/bundle","href":"/v2/api-reference/credit/execute-multiple-credit-actions","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 code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer)\\ninto a single atomic Safe transaction.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The Credit Account must already be created via \", _jsx(_components.code, {\n children: \"/v2/credit/create_account\"\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":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Execute multiple credit actions","description":"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer)\ninto a single atomic Safe transaction.\n\nThe Credit Account must already be created via `/v2/credit/create_account`.","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/bundle","href":"/v2/api-reference/credit/execute-multiple-credit-actions","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/compasslabs-f07467e0/27fd886bf35b6ed0/redeploy-trigger.js","/_mintlify/custom/compasslabs-f07467e0/5b350f94165e79a1/scripts/auth-btns.js","/_mintlify/custom/compasslabs-f07467e0/0c2ee6a003a69104/scripts/home-btn-link.js","/_mintlify/custom/compasslabs-f07467e0/17a3e2d25ff9b880/scripts/magic.js","/_mintlify/custom/compasslabs-f07467e0/2592024b81e4044f/scripts/modal.js","/_mintlify/custom/compasslabs-f07467e0/60b3db97b96f7d26/scripts/language-icon-fixer.js","/_mintlify/custom/compasslabs-f07467e0/60408501351ea2bb/scripts/disable-bundler-playground.js"],"openApiReferenceData":{"operation":{"tags":["Credit"],"summary":"Execute multiple credit actions","description":"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer)\ninto a single atomic Safe transaction.\n\nThe Credit Account must already be created via `/v2/credit/create_account`.","operationId":"v2_credit_bundle","requestBody":"9d27fa7b-843e-410f-97ce-53ca1bcb7076","responses":{"200":"12480d85-3d3e-4abf-8eb7-674ee7ad4d29","422":"3bd0c258-c5b6-4628-8a20-e1535bc5b70f"},"x-speakeasy-name-override":"credit_bundle","x-codeSamples":[{"lang":"python","label":"Python (SDK)","source":"from compass_api_sdk import CompassAPI, models\n\n\nwith CompassAPI(\n api_key_auth=\"\u003cYOUR_API_KEY_HERE>\",\n) as compass_api:\n\n res = compass_api.credit.credit_bundle(owner=\"\u003cvalue>\", chain=models.CreditBundleRequestChain.HYPEREVM, actions=[\n models.CreditUserOperation(\n body=models.EarnTransferFromEOAParams(\n token=\"\u003cvalue>\",\n amount=\"709.93\",\n ),\n ),\n ], gas_sponsorship=False)\n\n # Handle response\n print(res)"},{"lang":"typescript","label":"Typescript (SDK)","source":"import { CompassApiSDK } from \"@compass-labs/api-sdk\";\n\nconst compassApiSDK = new CompassApiSDK({\n apiKeyAuth: \"\u003cYOUR_API_KEY_HERE>\",\n});\n\nasync function run() {\n const result = await compassApiSDK.credit.creditBundle({\n owner: \"\u003cvalue>\",\n chain: \"hyperevm\",\n actions: [\n {\n body: {\n actionType: \"V2_TRANSFER_FROM_EOA\",\n token: \"\u003cvalue>\",\n amount: \"709.93\",\n },\n },\n ],\n gasSponsorship: false,\n });\n\n console.log(result);\n}\n\nrun();"}],"method":"post","type":"path","servers":["5cc70962-0013-441d-bd6f-5cb484ceb892"],"security":["e89f6d8c-9ae7-44f6-91ab-c06b98b98bae"],"path":"/v2/credit/bundle","baseUrlOptions":["https://api.compasslabs.ai"],"title":"Execute multiple credit actions","codeSamples":[{"label":"Python (SDK)","lang":"python","source":"from compass_api_sdk import CompassAPI, models\n\n\nwith CompassAPI(\n api_key_auth=\"\u003cYOUR_API_KEY_HERE>\",\n) as compass_api:\n\n res = compass_api.credit.credit_bundle(owner=\"\u003cvalue>\", chain=models.CreditBundleRequestChain.HYPEREVM, actions=[\n models.CreditUserOperation(\n body=models.EarnTransferFromEOAParams(\n token=\"\u003cvalue>\",\n amount=\"709.93\",\n ),\n ),\n ], gas_sponsorship=False)\n\n # Handle response\n print(res)"},{"label":"Typescript (SDK)","lang":"typescript","source":"import { CompassApiSDK } from \"@compass-labs/api-sdk\";\n\nconst compassApiSDK = new CompassApiSDK({\n apiKeyAuth: \"\u003cYOUR_API_KEY_HERE>\",\n});\n\nasync function run() {\n const result = await compassApiSDK.credit.creditBundle({\n owner: \"\u003cvalue>\",\n chain: \"hyperevm\",\n actions: [\n {\n body: {\n actionType: \"V2_TRANSFER_FROM_EOA\",\n token: \"\u003cvalue>\",\n amount: \"709.93\",\n },\n },\n ],\n gasSponsorship: false,\n });\n\n console.log(result);\n}\n\nrun();"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"owner":{"type":"string","title":"Owner","description":"The owner's wallet address that controls the Credit Account.","isRequired":true,"uniqueKey":"owner","typeLabel":"string"},"chain":{"type":"string","enum":["arbitrum","base","bsc","ethereum","hyperevm","tempo"],"title":"Chain","description":"Target blockchain network where the bundled actions will execute.","isRequired":true,"uniqueKey":"chain","typeLabel":"enum\u003cstring>"},"actions":{"items":{"properties":{"body":{"oneOf":[{"type":"object","title":"EarnSwapParams","description":"Parameters for swap operations (without context like owner/chain).\n\nUsed by multicall/bundle endpoint to specify swap actions.","required":["token_in","token_out","amount_in"],"properties":{"token_in":{"type":"string","title":"Token","description":"Token to sell (input). Provide a token symbol from a limited set (e.g., 'USDC') or any token address.","examples":["USDC","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.token_in","typeLabel":"string"},"token_out":{"type":"string","title":"Token","description":"Token to buy (output). Provide a token symbol from a limited set (e.g., 'USDT') or any token address.","examples":["USDT","0xdAC17F958D2ee523a2206206994597C13D831ec7"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.token_out","typeLabel":"string"},"amount_in":{"oneOf":[{"type":"number","title":"Amount In","description":"Human-readable amount of `token_in` to swap (token units, not wei).","minimum":0,"example":1.5,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.amount_in.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount In","description":"Human-readable amount of `token_in` to swap (token units, not wei).","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":1.5,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.amount_in.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.amount_in","typeLabel":"number | string"},"action_type":{"type":"string","const":"V2_SWAP","title":"Action Type","description":"Action type identifier for swap operations.","default":"V2_SWAP","uniqueKey":"actions.items.[INDEX].body.oneOf.0.action_type","typeLabel":"string"},"slippage":{"oneOf":[{"type":"number","title":"Slippage","description":"Maximum slippage tolerance as a percentage (e.g., 0.5 = 0.5%).","default":"0.5","example":0.5,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.slippage.oneOf.0","typeLabel":"number"},{"type":"string","title":"Slippage","description":"Maximum slippage tolerance as a percentage (e.g., 0.5 = 0.5%).","default":"0.5","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":0.5,"uniqueKey":"actions.items.[INDEX].body.oneOf.0.slippage.oneOf.1","typeLabel":"string"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.0.slippage","typeLabel":"number | string"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.0","typeLabel":"EarnSwapParams · object"},{"type":"object","title":"EarnTransferFromEOAParams","description":"Parameters for pulling tokens from the owner's wallet into the product account.\n\nUsed by the earn and credit bundle endpoints to pull tokens from the owner's EOA\ninto their product account as part of an atomic bundle transaction. Two ways:\n\n1. Allowance (no ``permit2_*`` fields): the owner has approved the product account\n itself to spend the token (a one-time ERC-20 ``approve``). The account calls\n ``transferFrom(owner, account, amount)``. No per-transfer signature.\n2. Permit2 (all three ``permit2_*`` fields): the owner approved Permit2 once and\n signed a Permit2 message with spender = the product account, obtained from\n ``/v2/earn/transfer`` or ``/v2/credit/transfer`` (action=DEPOSIT,\n gas_sponsorship=True).","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"The token to transfer from EOA to Earn Account.","examples":["USDC","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","minimum":0,"example":100,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":100,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"V2_TRANSFER_FROM_EOA","title":"Action Type","description":"Action type identifier for EOA-to-Earn-Account transfer operations.","default":"V2_TRANSFER_FROM_EOA","uniqueKey":"actions.items.[INDEX].body.oneOf.1.action_type","typeLabel":"string"},"permit2_signature":{"oneOf":[{"type":"string","title":"Permit2 Signature","description":"Optional. The EOA owner's signature of the Permit2 PermitTransferFrom typed data. Obtain this by calling /v2/earn/transfer with action=DEPOSIT and gas_sponsorship=True, then signing the returned EIP-712 data with the owner's wallet. Omit all three permit2_* fields to pull with an ERC-20 allowance granted to the product account instead.","example":"0x...","uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_signature.oneOf.0","typeLabel":"string"},{"type":"null","title":"Permit2 Signature","description":"Optional. The EOA owner's signature of the Permit2 PermitTransferFrom typed data. Obtain this by calling /v2/earn/transfer with action=DEPOSIT and gas_sponsorship=True, then signing the returned EIP-712 data with the owner's wallet. Omit all three permit2_* fields to pull with an ERC-20 allowance granted to the product account instead.","example":"0x...","uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_signature.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_signature","typeLabel":"string | null"},"permit2_nonce":{"oneOf":[{"type":"integer","title":"Permit2 Nonce","description":"The nonce used in the Permit2 signature (from the signed typed data). Omit when using an allowance.","minimum":0,"example":1706000000,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_nonce.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Permit2 Nonce","description":"The nonce used in the Permit2 signature (from the signed typed data). Omit when using an allowance.","example":1706000000,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_nonce.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_nonce","typeLabel":"integer | null"},"permit2_deadline":{"oneOf":[{"type":"integer","title":"Permit2 Deadline","description":"The deadline timestamp used in the Permit2 signature (from the signed typed data). Omit when using an allowance.","minimum":0,"example":1706001800,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_deadline.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Permit2 Deadline","description":"The deadline timestamp used in the Permit2 signature (from the signed typed data). Omit when using an allowance.","example":1706001800,"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_deadline.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.1.permit2_deadline","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.1","typeLabel":"EarnTransferFromEOAParams · object"},{"type":"object","title":"EarnTransferToEOAParams","description":"Parameters for transferring tokens from Earn Account to EOA (withdrawal).\n\nUsed by multicall/bundle endpoint to send tokens from the Earn Account (Safe) back\nto the owner's EOA as part of an atomic bundle transaction.\n\nNo signature is required for this action since the Safe already owns the tokens and\nis executing the transfer as part of its own transaction.","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"The token to transfer from Earn Account to EOA.","examples":["USDC","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.2.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","minimum":0,"example":100,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.2.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":100,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.2.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.2.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"V2_TRANSFER_TO_EOA","title":"Action Type","description":"Action type identifier for Earn-Account-to-EOA transfer operations.","default":"V2_TRANSFER_TO_EOA","uniqueKey":"actions.items.[INDEX].body.oneOf.2.action_type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.2","typeLabel":"EarnTransferToEOAParams · object"},{"type":"object","title":"CreditSupplyParams","description":"Supply collateral to Aave via Credit Account.","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"Collateral token to supply.","examples":["USDC","WETH","0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.3.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"Amount in token units to supply.","minimum":0,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.3.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"Amount in token units to supply.","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.3.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.3.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"CREDIT_SUPPLY","title":"Action Type","default":"CREDIT_SUPPLY","uniqueKey":"actions.items.[INDEX].body.oneOf.3.action_type","typeLabel":"string"},"protocol":{"type":"string","enum":["AAVE","EULER","MORPHO"],"title":"CreditProtocol","description":"Lending protocol to use. Defaults to Aave.","default":"AAVE","uniqueKey":"actions.items.[INDEX].body.oneOf.3.protocol","typeLabel":"enum\u003cstring>"},"collateral_vault":{"oneOf":[{"type":"string","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to supply into. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.3.collateral_vault.oneOf.0","typeLabel":"string"},{"type":"null","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to supply into. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.3.collateral_vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.3.collateral_vault","typeLabel":"string | null"},"sub_account_id":{"type":"integer","maximum":255,"minimum":0,"title":"Sub Account Id","description":"Euler only: EVC sub-account (0–255) to isolate this position. Each sub-account is an independent Euler position with its own collateral, borrow controller, and health. Defaults to 0. Ignored for Aave/Morpho.","default":0,"uniqueKey":"actions.items.[INDEX].body.oneOf.3.sub_account_id","typeLabel":"integer"},"market_id":{"oneOf":[{"type":"string","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.3.market_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.3.market_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.3.market_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.3","typeLabel":"CreditSupplyParams · object"},{"type":"object","title":"CreditWithdrawParams","description":"Withdraw collateral from Aave via Credit Account.","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"Collateral token to withdraw.","examples":["USDC","WETH","0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.4.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"Amount in token units to withdraw.","minimum":0,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.4.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"Amount in token units to withdraw.","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.4.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.4.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"CREDIT_WITHDRAW","title":"Action Type","default":"CREDIT_WITHDRAW","uniqueKey":"actions.items.[INDEX].body.oneOf.4.action_type","typeLabel":"string"},"protocol":{"type":"string","enum":["AAVE","EULER","MORPHO"],"title":"CreditProtocol","description":"Lending protocol to use. Defaults to Aave.","default":"AAVE","uniqueKey":"actions.items.[INDEX].body.oneOf.4.protocol","typeLabel":"enum\u003cstring>"},"collateral_vault":{"oneOf":[{"type":"string","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to withdraw from. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.4.collateral_vault.oneOf.0","typeLabel":"string"},{"type":"null","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to withdraw from. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.4.collateral_vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.4.collateral_vault","typeLabel":"string | null"},"sub_account_id":{"type":"integer","maximum":255,"minimum":0,"title":"Sub Account Id","description":"Euler only: EVC sub-account (0–255) holding the collateral to withdraw. Each sub-account is an independent Euler position with its own collateral, borrow controller, and health. Defaults to 0. Ignored for Aave/Morpho.","default":0,"uniqueKey":"actions.items.[INDEX].body.oneOf.4.sub_account_id","typeLabel":"integer"},"market_id":{"oneOf":[{"type":"string","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.4.market_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.4.market_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.4.market_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.4","typeLabel":"CreditWithdrawParams · object"},{"type":"object","title":"CreditBorrowParams","description":"Borrow from Aave via Credit Account.","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"Token to borrow from Aave.","examples":["USDC","WETH","0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"Amount in token units to borrow.","minimum":0,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"Amount in token units to borrow.","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"CREDIT_BORROW","title":"Action Type","default":"CREDIT_BORROW","uniqueKey":"actions.items.[INDEX].body.oneOf.5.action_type","typeLabel":"string"},"interest_rate_mode":{"type":"string","enum":["stable","variable"],"title":"InterestRateMode","description":"Interest rate mode: STABLE or VARIABLE.","default":"variable","uniqueKey":"actions.items.[INDEX].body.oneOf.5.interest_rate_mode","typeLabel":"enum\u003cstring>"},"fee":{"oneOf":[{"type":"object","title":"CreditFee","description":"Optional fee on the borrowed amount.","required":["recipient","amount"],"properties":{"recipient":{"type":"string","title":"Recipient","description":"The wallet address that will receive the fee.","examples":["0xb8340945eBc917D2Aa0368a5e4E79C849c461511"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0.recipient","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"The fee amount. If `denomination` is 'PERCENTAGE', this is a percentage of the transaction amount (e.g., 1.5 for 1.5%). If `denomination` is 'FIXED', this is a fixed amount in token units (e.g., 0.1 for 0.1 tokens). If `denomination` is 'PERFORMANCE', this is a percentage of realized profit calculated using FIFO cost basis (e.g., 10 for 10% of profit).","minimum":0,"example":1.5,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"The fee amount. If `denomination` is 'PERCENTAGE', this is a percentage of the transaction amount (e.g., 1.5 for 1.5%). If `denomination` is 'FIXED', this is a fixed amount in token units (e.g., 0.1 for 0.1 tokens). If `denomination` is 'PERFORMANCE', this is a percentage of realized profit calculated using FIFO cost basis (e.g., 10 for 10% of profit).","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":1.5,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0.amount","typeLabel":"number | string"},"denomination":{"type":"string","enum":["PERCENTAGE","FIXED"],"title":"Denomination","description":"The unit type for the fee amount. Use 'PERCENTAGE' for a percentage-based fee (e.g., 1.5 means 1.5% of the borrow amount), or 'FIXED' for a fixed token amount (e.g., 0.1 means 0.1 tokens).","default":"PERCENTAGE","examples":["PERCENTAGE","FIXED"],"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0.denomination","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.0","typeLabel":"CreditFee · object"},{"type":"null","description":"Optional fee on the borrowed amount.","uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.5.fee","typeLabel":"CreditFee · object | null"},"protocol":{"type":"string","enum":["AAVE","EULER","MORPHO"],"title":"CreditProtocol","description":"Lending protocol to use. Defaults to Aave.","default":"AAVE","uniqueKey":"actions.items.[INDEX].body.oneOf.5.protocol","typeLabel":"enum\u003cstring>"},"borrow_vault":{"oneOf":[{"type":"string","title":"Borrow Vault","description":"Euler only: the EVK vault to borrow from. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.5.borrow_vault.oneOf.0","typeLabel":"string"},{"type":"null","title":"Borrow Vault","description":"Euler only: the EVK vault to borrow from. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.5.borrow_vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.5.borrow_vault","typeLabel":"string | null"},"sub_account_id":{"type":"integer","maximum":255,"minimum":0,"title":"Sub Account Id","description":"Euler only: EVC sub-account (0–255) to borrow against. Each sub-account is an independent Euler position with its own collateral, borrow controller, and health. Defaults to 0. Ignored for Aave/Morpho.","default":0,"uniqueKey":"actions.items.[INDEX].body.oneOf.5.sub_account_id","typeLabel":"integer"},"market_id":{"oneOf":[{"type":"string","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.5.market_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.5.market_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.5.market_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.5","typeLabel":"CreditBorrowParams · object"},{"type":"object","title":"CreditRepayParams","description":"Repay debt to Aave via Credit Account.","required":["token","amount"],"properties":{"token":{"type":"string","title":"Token","description":"Token to repay.","examples":["USDC","WETH","0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.6.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"Amount in token units to repay.","minimum":0,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.6.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"Amount in token units to repay.","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.6.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.6.amount","typeLabel":"number | string"},"action_type":{"type":"string","const":"CREDIT_REPAY","title":"Action Type","default":"CREDIT_REPAY","uniqueKey":"actions.items.[INDEX].body.oneOf.6.action_type","typeLabel":"string"},"interest_rate_mode":{"type":"string","enum":["stable","variable"],"title":"InterestRateMode","description":"Interest rate mode: STABLE or VARIABLE.","default":"variable","uniqueKey":"actions.items.[INDEX].body.oneOf.6.interest_rate_mode","typeLabel":"enum\u003cstring>"},"protocol":{"type":"string","enum":["AAVE","EULER","MORPHO"],"title":"CreditProtocol","description":"Lending protocol to use. Defaults to Aave.","default":"AAVE","uniqueKey":"actions.items.[INDEX].body.oneOf.6.protocol","typeLabel":"enum\u003cstring>"},"borrow_vault":{"oneOf":[{"type":"string","title":"Borrow Vault","description":"Euler only: the EVK vault the debt is owed to. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.6.borrow_vault.oneOf.0","typeLabel":"string"},{"type":"null","title":"Borrow Vault","description":"Euler only: the EVK vault the debt is owed to. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.6.borrow_vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.6.borrow_vault","typeLabel":"string | null"},"sub_account_id":{"type":"integer","maximum":255,"minimum":0,"title":"Sub Account Id","description":"Euler only: EVC sub-account (0–255) holding the debt to repay. Each sub-account is an independent Euler position with its own collateral, borrow controller, and health. Defaults to 0. Ignored for Aave/Morpho.","default":0,"uniqueKey":"actions.items.[INDEX].body.oneOf.6.sub_account_id","typeLabel":"integer"},"market_id":{"oneOf":[{"type":"string","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.6.market_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Market Id","description":"Morpho only: the bytes32 market id (from /v2/credit/morpho_markets). Required when protocol=MORPHO.","uniqueKey":"actions.items.[INDEX].body.oneOf.6.market_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.6.market_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.6","typeLabel":"CreditRepayParams · object"},{"type":"object","title":"CreditEnableCollateralParams","description":"Enable a reserve asset as collateral in Aave via Credit Account.\n\nRequired after receiving aTokens via direct ERC-20 transfer (not via Pool.supply()),\nsince Aave V3 does not auto-enable collateral for transferred aTokens.","required":["token"],"properties":{"token":{"type":"string","title":"Token","description":"The underlying reserve token to enable as collateral (e.g. USDC, not aUSDC).","examples":["USDC","WETH","0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.7.token","typeLabel":"string"},"action_type":{"type":"string","const":"CREDIT_ENABLE_COLLATERAL","title":"Action Type","default":"CREDIT_ENABLE_COLLATERAL","uniqueKey":"actions.items.[INDEX].body.oneOf.7.action_type","typeLabel":"string"},"protocol":{"type":"string","enum":["AAVE","EULER","MORPHO"],"title":"CreditProtocol","description":"Lending protocol to use. Defaults to Aave.","default":"AAVE","uniqueKey":"actions.items.[INDEX].body.oneOf.7.protocol","typeLabel":"enum\u003cstring>"},"collateral_vault":{"oneOf":[{"type":"string","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to enable. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.7.collateral_vault.oneOf.0","typeLabel":"string"},{"type":"null","title":"Collateral Vault","description":"Euler only: the EVK collateral vault to enable. Required when protocol=EULER.","uniqueKey":"actions.items.[INDEX].body.oneOf.7.collateral_vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"actions.items.[INDEX].body.oneOf.7.collateral_vault","typeLabel":"string | null"},"sub_account_id":{"type":"integer","maximum":255,"minimum":0,"title":"Sub Account Id","description":"Euler only: EVC sub-account (0–255) to enable the collateral for. Each sub-account is an independent Euler position with its own collateral, borrow controller, and health. Defaults to 0. Ignored for Aave/Morpho.","default":0,"uniqueKey":"actions.items.[INDEX].body.oneOf.7.sub_account_id","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.7","typeLabel":"CreditEnableCollateralParams · object"},{"type":"object","title":"CreditTransferToAddressParams","description":"Transfer tokens from Credit Account to an arbitrary address.\n\nRequires all debt positions to be fully repaid (totalDebtBase == 0)\nbefore the transfer is allowed.","required":["token","amount","recipient"],"properties":{"token":{"type":"string","title":"Token","description":"The ERC20 token to transfer from the Credit Account.","examples":["USDC","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8.token","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","minimum":0,"example":100,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8.amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"The amount of tokens to transfer (in token units, not wei).","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":100,"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8.amount","typeLabel":"number | string"},"recipient":{"type":"string","title":"Recipient","description":"The destination address to receive the tokens.","isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8.recipient","typeLabel":"string"},"action_type":{"type":"string","const":"CREDIT_TRANSFER_TO_ADDRESS","title":"Action Type","default":"CREDIT_TRANSFER_TO_ADDRESS","uniqueKey":"actions.items.[INDEX].body.oneOf.8.action_type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"actions.items.[INDEX].body.oneOf.8","typeLabel":"CreditTransferToAddressParams · object"}],"isRequired":true,"uniqueKey":"actions.items.[INDEX].body","typeLabel":"EarnSwapParams · object | EarnTransferFromEOAParams · object | EarnTransferToEOAParams · object | CreditSupplyParams · object | CreditWithdrawParams · object | CreditBorrowParams · object | CreditRepayParams · object | CreditEnableCollateralParams · object | CreditTransferToAddressParams · object"}},"type":"object","required":["body"],"title":"CreditUserOperation","description":"A single operation in a credit bundle.","uniqueKey":"actions.items.[INDEX]","typeLabel":"CreditUserOperation · object"},"type":"array","maxItems":20,"minItems":1,"title":"Actions","description":"List of actions to bundle. Actions are executed in order.","isRequired":true,"uniqueKey":"actions","typeLabel":"CreditUserOperation · object[]"},"gas_sponsorship":{"type":"boolean","title":"Gas Sponsorship","description":"If true, returns EIP-712 typed data for gas-sponsored execution.","default":false,"uniqueKey":"gas_sponsorship","typeLabel":"boolean"}},"type":"object","required":["owner","chain","actions"],"title":"CreditBundleRequest","description":"Request to execute multiple credit actions in a single atomic transaction.","uniqueKey":"","typeLabel":"CreditBundleRequest · object"},"examples":{"Example":{"title":"Example","value":{"owner":"\u003cstring>","actions":[{"body":{"token_in":"USDC","token_out":"USDT","amount_in":1.5,"action_type":"V2_SWAP","slippage":0.5}}],"gas_sponsorship":false}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"12480d85-3d3e-4abf-8eb7-674ee7ad4d29":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"actions_count":{"type":"integer","title":"Actions Count","description":"Number of individual transactions bundled in this execution.","example":3,"isRequired":true,"uniqueKey":"actions_count","typeLabel":"integer"},"transaction":{"oneOf":[{"type":"object","title":"UnsignedTransaction","description":"Unsigned transaction for direct execution by the owner. Present when gas_sponsorship=false.","required":["chainId","data","from","gas","to","value","nonce","maxFeePerGas","maxPriorityFeePerGas"],"example":{"chainId":"0x2105","data":"0x6a761202000000000000000000000000...","from":"0xc98949522db2eE403d6c75E91DDEe875a824bB10","gas":"0xdbba0","maxFeePerGas":"0x3b9aca00","maxPriorityFeePerGas":"0x5f5e100","nonce":"0x2e","to":"0xaB5801a7D398351b8bE11C439e05C5B3259aeC9B","value":"0x0"},"properties":{"chainId":{"type":"string","title":"Chainid","description":"The chain id of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.chainId","typeLabel":"string"},"data":{"type":"string","title":"Data","description":"The data of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.data","typeLabel":"string"},"from":{"type":"string","title":"From","description":"The sender of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.from","typeLabel":"string"},"gas":{"oneOf":[{"type":"string","title":"Gas","description":"The gas of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.gas.oneOf.0","typeLabel":"string"},{"type":"null","title":"Gas","description":"The gas of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.gas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"transaction.oneOf.0.gas","typeLabel":"string | null"},"to":{"type":"string","title":"To","description":"The recipient of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.to","typeLabel":"string"},"value":{"type":"string","title":"Value","description":"The value of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.value","typeLabel":"string"},"nonce":{"type":"string","title":"Nonce","description":"The nonce of the address","isRequired":true,"uniqueKey":"transaction.oneOf.0.nonce","typeLabel":"string"},"maxFeePerGas":{"type":"string","title":"Maxfeepergas","description":"The max fee per gas of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.maxFeePerGas","typeLabel":"string"},"maxPriorityFeePerGas":{"type":"string","title":"Maxpriorityfeepergas","description":"The max priority fee per gas of the transaction","isRequired":true,"uniqueKey":"transaction.oneOf.0.maxPriorityFeePerGas","typeLabel":"string"}},"uniqueKey":"transaction.oneOf.0","typeLabel":"UnsignedTransaction · object"},{"type":"null","description":"Unsigned transaction for direct execution by the owner. Present when gas_sponsorship=false.","example":{"chainId":"0x2105","data":"0x6a761202000000000000000000000000...","from":"0xc98949522db2eE403d6c75E91DDEe875a824bB10","gas":"0xdbba0","maxFeePerGas":"0x3b9aca00","maxPriorityFeePerGas":"0x5f5e100","nonce":"0x2e","to":"0xaB5801a7D398351b8bE11C439e05C5B3259aeC9B","value":"0x0"},"uniqueKey":"transaction.oneOf.1","typeLabel":"null"}],"uniqueKey":"transaction","typeLabel":"UnsignedTransaction · object | null"},"eip_712":{"oneOf":[{"type":"object","title":"BatchedSafeOperationsResponse","description":"EIP-712 typed data for gas-sponsored execution. Present when gas_sponsorship=true. Owner must sign and submit to /gas_sponsorship/prepare.","required":["domain","types","primaryType","message"],"example":{"domain":{"chainId":8453,"verifyingContract":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1"},"message":{"baseGas":"0","data":"0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020","gasPrice":"0","gasToken":"0x0000000000000000000000000000000000000000","nonce":"7","operation":1,"refundReceiver":"0x0000000000000000000000000000000000000000","safeTxGas":"0","to":"0x93C23AAE4793C14D6DF35D2A2A2234204e1559dA","value":"0"},"primaryType":"SafeTx","types":{"EIP712Domain":[{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"SafeTx":[{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"operation","type":"uint8"},{"name":"safeTxGas","type":"uint256"},{"name":"baseGas","type":"uint256"},{"name":"gasPrice","type":"uint256"},{"name":"gasToken","type":"address"},{"name":"refundReceiver","type":"address"},{"name":"nonce","type":"uint256"}]}},"properties":{"domain":{"properties":{"chainId":{"type":"integer","title":"Chainid","description":"Chain ID","isRequired":true,"uniqueKey":"eip_712.oneOf.0.domain.chainId","typeLabel":"integer"},"verifyingContract":{"type":"string","title":"Verifyingcontract","description":"Address of the Product Account","isRequired":true,"uniqueKey":"eip_712.oneOf.0.domain.verifyingContract","typeLabel":"string"}},"type":"object","required":["chainId","verifyingContract"],"title":"EIP712Domain","description":"EIP-712 domain separator","isRequired":true,"uniqueKey":"eip_712.oneOf.0.domain","typeLabel":"EIP712Domain · object"},"types":{"properties":{"EIP712Domain":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.EIP712Domain.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.EIP712Domain.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"EIP712DomainField","description":"A field in the EIP712Domain type definition.","uniqueKey":"eip_712.oneOf.0.types.EIP712Domain.items.[INDEX]","typeLabel":"EIP712DomainField · object"},"type":"array","title":"Eip712Domain","description":"EIP712Domain type definition","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.EIP712Domain","typeLabel":"EIP712DomainField · object[]"},"SafeTx":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.SafeTx.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.SafeTx.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"SafeTxField","description":"A field in the SafeTx type definition.","uniqueKey":"eip_712.oneOf.0.types.SafeTx.items.[INDEX]","typeLabel":"SafeTxField · object"},"type":"array","title":"Safetx","description":"SafeTx type definition","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types.SafeTx","typeLabel":"SafeTxField · object[]"}},"type":"object","required":["EIP712Domain","SafeTx"],"title":"EIP712Types","description":"EIP-712 type definitions","isRequired":true,"uniqueKey":"eip_712.oneOf.0.types","typeLabel":"EIP712Types · object"},"primaryType":{"type":"string","const":"SafeTx","title":"Primarytype","description":"Primary type for the structured data","isRequired":true,"uniqueKey":"eip_712.oneOf.0.primaryType","typeLabel":"string"},"message":{"properties":{"to":{"type":"string","title":"To","description":"Destination address","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.to","typeLabel":"string"},"value":{"type":"string","title":"Value","description":"Value in wei as a string","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.value","typeLabel":"string"},"data":{"type":"string","title":"Data","description":"Transaction data as hex string","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.data","typeLabel":"string"},"operation":{"type":"integer","enum":[0,1],"title":"OperationType","description":"Operation type (0=Call, 1=DelegateCall)","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.operation","typeLabel":"enum\u003cinteger>"},"safeTxGas":{"type":"string","title":"Safetxgas","description":"Gas for the transaction","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.safeTxGas","typeLabel":"string"},"baseGas":{"type":"string","title":"Basegas","description":"Base gas costs","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.baseGas","typeLabel":"string"},"gasPrice":{"type":"string","title":"Gasprice","description":"Gas price","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.gasPrice","typeLabel":"string"},"gasToken":{"type":"string","title":"Gastoken","description":"Token address for gas payment","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.gasToken","typeLabel":"string"},"refundReceiver":{"type":"string","title":"Refundreceiver","description":"Address to receive gas refund","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.refundReceiver","typeLabel":"string"},"nonce":{"type":"string","title":"Nonce","description":"Transaction nonce","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message.nonce","typeLabel":"string"}},"type":"object","required":["to","value","data","operation","safeTxGas","baseGas","gasPrice","gasToken","refundReceiver","nonce"],"title":"SafeTxMessage","description":"Safe transaction message data","isRequired":true,"uniqueKey":"eip_712.oneOf.0.message","typeLabel":"SafeTxMessage · object"}},"uniqueKey":"eip_712.oneOf.0","typeLabel":"BatchedSafeOperationsResponse · object"},{"type":"null","description":"EIP-712 typed data for gas-sponsored execution. Present when gas_sponsorship=true. Owner must sign and submit to /gas_sponsorship/prepare.","uniqueKey":"eip_712.oneOf.1","typeLabel":"null"}],"uniqueKey":"eip_712","typeLabel":"BatchedSafeOperationsResponse · object | null"}},"type":"object","required":["actions_count"],"title":"CreditBundleResponse","uniqueKey":"","typeLabel":"CreditBundleResponse · object"},"examples":{"Example":{"title":"Example","value":{"actions_count":3,"transaction":{"chainId":"0x2105","data":"0x6a761202000000000000000000000000...","from":"0xc98949522db2eE403d6c75E91DDEe875a824bB10","gas":"0xdbba0","maxFeePerGas":"0x3b9aca00","maxPriorityFeePerGas":"0x5f5e100","nonce":"0x2e","to":"0xaB5801a7D398351b8bE11C439e05C5B3259aeC9B","value":"0x0"},"eip_712":{"domain":{"chainId":8453,"verifyingContract":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1"},"message":{"baseGas":"0","data":"0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020","gasPrice":"0","gasToken":"0x0000000000000000000000000000000000000000","nonce":"7","operation":1,"refundReceiver":"0x0000000000000000000000000000000000000000","safeTxGas":"0","to":"0x93C23AAE4793C14D6DF35D2A2A2234204e1559dA","value":"0"},"primaryType":"SafeTx","types":{"EIP712Domain":[{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"SafeTx":[{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"operation","type":"uint8"},{"name":"safeTxGas","type":"uint256"},{"name":"baseGas","type":"uint256"},{"name":"gasPrice","type":"uint256"},{"name":"gasToken","type":"address"},{"name":"refundReceiver","type":"address"},{"name":"nonce","type":"uint256"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"3bd0c258-c5b6-4628-8a20-e1535bc5b70f":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e89f6d8c-9ae7-44f6-91ab-c06b98b98bae":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Compass API Key. Get your key [here](https://www.compasslabs.ai/dashboard).","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"5cc70962-0013-441d-bd6f-5cb484ceb892":{"url":"https://api.compasslabs.ai","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Compass API Key. Get your key [here](https://www.compasslabs.ai/dashboard).","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"Your Compass API Key. Get your key [here](https://www.compasslabs.ai/dashboard).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"v2/combined_spec.json"},"subdomain":"compasslabs-f07467e0","siteName":"Compass API Docs","title":"Execute multiple credit actions - Compass API Docs","navMaps":{"firstHrefInVersion":{"V2":{"href":"/v2/api-reference/credit/execute-multiple-credit-actions","matchLevel":0},"V1":{"href":"/v1/api-reference/aave-v3/aave-supported-tokens","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T13:11:30.546Z","originalFileLocation":"v2/api-reference/credit/execute-multiple-credit-actions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer) into a single atomic Safe transaction. The Credit Account must already be created via /v2/credit/create_account.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Compass API Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execute multiple credit actions - Compass API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer) into a single atomic Safe transaction. The Credit Account must already be created via /v2/credit/create_account.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Compass API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://compasslabs-f07467e0.mintlify.app/_mintlify/api/og/v2?division=Credit\u0026amp;title=Execute+multiple+credit+actions\u0026amp;description=Compose+individual+credit+operations+%28supply%2C+withdraw%2C+borrow%2C+repay%2C+swap%2C+transfer%29%0Ainto+a+single+atomic+Safe+transaction.%0A%0AThe+Credit+Account+must+already+b\u0026amp;theme=2e6095874381ba0da4ce66d4\u0026amp;signature=42283c20a11d9a57796a1a2d272b4cff61b1ceca22cd3b72e01e03543672e807\">\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 multiple credit actions - Compass API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer) into a single atomic Safe transaction. The Credit Account must already be created via /v2/credit/create_account.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://compasslabs-f07467e0.mintlify.app/_mintlify/api/og/v2?division=Credit\u0026amp;title=Execute+multiple+credit+actions\u0026amp;description=Compose+individual+credit+operations+%28supply%2C+withdraw%2C+borrow%2C+repay%2C+swap%2C+transfer%29%0Ainto+a+single+atomic+Safe+transaction.%0A%0AThe+Credit+Account+must+already+b\u0026amp;theme=2e6095874381ba0da4ce66d4\u0026amp;signature=42283c20a11d9a57796a1a2d272b4cff61b1ceca22cd3b72e01e03543672e807\">\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/compasslabs-f07467e0/CejAEahS9T_GZmf_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Compass API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0284c7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/api-reference/credit/execute-multiple-credit-actions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.compasslabs.ai/#organization\",\"name\":\"Compass API Docs\",\"url\":\"https://docs.compasslabs.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/compasslabs-f07467e0/x2NrFgZ7soJbH6sc/logo/light.svg?fit=max\u0026auto=format\u0026n=x2NrFgZ7soJbH6sc\u0026q=85\u0026s=80a04b06674000990914306c6a833cb9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.compasslabs.ai#website\",\"name\":\"Compass API Docs\",\"url\":\"https://docs.compasslabs.ai\",\"publisher\":{\"@id\":\"https://docs.compasslabs.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions#webpage\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions\",\"name\":\"Execute multiple credit actions\",\"description\":\"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer) into a single atomic Safe transaction. The Credit Account must already be created via /v2/credit/create_account.\",\"dateModified\":\"2026-11-05T13:11:30.546Z\",\"isPartOf\":{\"@id\":\"https://docs.compasslabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Credit\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/credit/list-credit-positions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Execute multiple credit actions\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions#apireference\",\"headline\":\"Execute multiple credit actions\",\"name\":\"Execute multiple credit actions\",\"description\":\"Compose individual credit operations (supply, withdraw, borrow, repay, swap, transfer) into a single atomic Safe transaction. The Credit Account must already be created via /v2/credit/create_account.\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/credit/execute-multiple-credit-actions#webpage\"},\"dateModified\":\"2026-11-05T13:11:30.546Z\",\"publisher\":{\"@id\":\"https://docs.compasslabs.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.compasslabs.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Compass API Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Compass API Docs","nav":{"global":{"tabs":[],"anchors":[]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/v2/get_started/overview"}]},{"tab":"API Reference","versions":[{"version":"V2","groups":[{"group":"API Reference","pages":[{"group":"Gas Sponsorship","pages":[{"title":"Prepare gas-sponsored transaction","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/gas_sponsorship/prepare","href":"/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction"},{"title":"Approve token transfer","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/gas_sponsorship/approve_transfer","href":"/v2/api-reference/gas-sponsorship/approve-token-transfer"}]},{"group":"Earn","pages":[{"title":"List earn positions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/positions","href":"/v2/api-reference/earn/list-earn-positions"},{"title":"List earn positions across all chains","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/positions_all","href":"/v2/api-reference/earn/list-earn-positions-across-all-chains"},{"title":"List vaults","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/vaults","href":"/v2/api-reference/earn/list-vaults"},{"title":"List aave markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/aave_markets","href":"/v2/api-reference/earn/list-aave-markets"},{"title":"List pendle markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/pendle_markets","href":"/v2/api-reference/earn/list-pendle-markets"},{"title":"List maple pools","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/maple_pools","href":"/v2/api-reference/earn/list-maple-pools"},{"title":"Quote a swap","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/swap_quote","href":"/v2/api-reference/earn/quote-a-swap"},{"title":"Get token balances","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/earn/balances","href":"/v2/api-reference/earn/get-token-balances"},{"title":"Create earn account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/create_account","href":"/v2/api-reference/earn/create-earn-account"},{"title":"Transfer tokens to/from account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/transfer","href":"/v2/api-reference/earn/transfer-tokens-tofrom-account"},{"title":"Manage earn position","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/manage","href":"/v2/api-reference/earn/manage-earn-position"},{"title":"Swap tokens","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/swap","href":"/v2/api-reference/earn/swap-tokens"},{"title":"Execute multiple earn actions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/bundle","href":"/v2/api-reference/earn/execute-multiple-earn-actions"}]},{"group":"Bridge","pages":[{"title":"Initiate USDC bridging","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/cctp/burn","href":"/v2/api-reference/bridge/initiate-usdc-bridging"},{"title":"Complete USDC bridging","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/cctp/mint","href":"/v2/api-reference/bridge/complete-usdc-bridging"}]},{"group":"Credit","pages":[{"title":"List credit positions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/positions","href":"/v2/api-reference/credit/list-credit-positions"},{"title":"Get credit account token balances","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/balances","href":"/v2/api-reference/credit/get-credit-account-token-balances"},{"title":"List looped (leveraged) credit positions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/looped_positions","href":"/v2/api-reference/credit/list-looped-leveraged-credit-positions"},{"title":"List Euler markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/euler_markets","href":"/v2/api-reference/credit/list-euler-markets"},{"title":"List Morpho markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/morpho_markets","href":"/v2/api-reference/credit/list-morpho-markets"},{"title":"List Aave markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/credit/aave_markets","href":"/v2/api-reference/credit/list-aave-markets"},{"title":"Create credit account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/create_account","href":"/v2/api-reference/credit/create-credit-account"},{"title":"Borrow against collateral","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/borrow","href":"/v2/api-reference/credit/borrow-against-collateral"},{"title":"Open a leveraged loop","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/loop","href":"/v2/api-reference/credit/open-a-leveraged-loop"},{"title":"Unwind a leveraged loop","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/unloop","href":"/v2/api-reference/credit/unwind-a-leveraged-loop"},{"title":"Rebalance the leveraged credit book","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/rebalance","href":"/v2/api-reference/credit/rebalance-the-leveraged-credit-book"},{"title":"Transfer tokens to/from Credit Account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/transfer","href":"/v2/api-reference/credit/transfer-tokens-tofrom-credit-account"},{"title":"Swap tokens","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/swap","href":"/v2/api-reference/credit/swap-tokens"},{"title":"Repay debt and withdraw collateral","description":"Repay an Aave debt and withdraw collateral from a Credit Account.\n\nBundles repayment, collateral withdrawal, and an optional swap into a single atomic Safe transaction.\n\n- If `token_out` is None or equals `withdraw_token`, the withdrawn collateral is kept as-is.\n- If `token_out` differs from `withdraw_token`, a market swap is performed after withdrawal.\n\nThe Credit Account must already have a borrow position created via `/v2/credit/borrow`.\nThe repay_token must be available in the Credit Account (or pulled from EOA via Permit2).","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/repay","href":"/v2/api-reference/credit/repay-debt-and-withdraw-collateral"},{"title":"Execute multiple credit actions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/credit/bundle","href":"/v2/api-reference/credit/execute-multiple-credit-actions"}]},{"group":"Perpetual Trading","pages":[{"title":"List perpetual trading markets","description":"List available perpetual trading markets with key metrics.\n\nReturns perp markets (stocks, commodities, forex) with open interest,\n24h volume, funding rate, and max leverage. Supports filtering by category,\nminimum OI/volume, and sorting.\n\nOnly perpetual trading assets are returned — crypto perps are excluded.","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/perpetual_trading/opportunities","href":"/v2/api-reference/perpetual-trading/list-perpetual-trading-markets"},{"title":"List perpetual trading positions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/perpetual_trading/positions","href":"/v2/api-reference/perpetual-trading/list-perpetual-trading-positions"},{"title":"Get OHLCV candles","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/perpetual_trading/candles","href":"/v2/api-reference/perpetual-trading/get-ohlcv-candles"},{"title":"Aggregated Hyperliquid activity for a user","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/perpetual_trading/activity","href":"/v2/api-reference/perpetual-trading/aggregated-hyperliquid-activity-for-a-user"},{"title":"Deposit USDC to perpetual trading account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/deposit","href":"/v2/api-reference/perpetual-trading/deposit-usdc-to-perpetual-trading-account"},{"title":"Build the Bridge2 deposit tx from a signed permit","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/deposit/sponsor_prepare","href":"/v2/api-reference/perpetual-trading/build-the-bridge2-deposit-tx-from-a-signed-permit"},{"title":"Withdraw USDC from perpetual trading account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/withdraw","href":"/v2/api-reference/perpetual-trading/withdraw-usdc-from-perpetual-trading-account"},{"title":"Place market order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/market_order","href":"/v2/api-reference/perpetual-trading/place-market-order"},{"title":"Place limit order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/limit_order","href":"/v2/api-reference/perpetual-trading/place-limit-order"},{"title":"Cancel order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/cancel_order","href":"/v2/api-reference/perpetual-trading/cancel-order"},{"title":"Execute signed action","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/execute","href":"/v2/api-reference/perpetual-trading/execute-signed-action"},{"title":"Approve builder fee","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/approve_builder_fee","href":"/v2/api-reference/perpetual-trading/approve-builder-fee"},{"title":"Enable unified account mode","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/enable_unified_account","href":"/v2/api-reference/perpetual-trading/enable-unified-account-mode"},{"title":"Ensure 1x cross leverage","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/ensure_leverage","href":"/v2/api-reference/perpetual-trading/ensure-1x-cross-leverage"},{"title":"Set leverage (defaults to market maximum)","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/perpetual_trading/set_leverage","href":"/v2/api-reference/perpetual-trading/set-leverage-defaults-to-market-maximum"}]},{"group":"Tokenized Assets","pages":[{"title":"List markets","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/markets","href":"/v2/api-reference/tokenized-assets/list-markets"},{"title":"Get a market","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/markets/{symbol}","href":"/v2/api-reference/tokenized-assets/get-a-market"},{"title":"List positions","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/positions","href":"/v2/api-reference/tokenized-assets/list-positions"},{"title":"Get token balances","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/balances","href":"/v2/api-reference/tokenized-assets/get-token-balances"},{"title":"Get order status","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/order/{order_hash}","href":"/v2/api-reference/tokenized-assets/get-order-status"},{"title":"List redemption requests","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json get /v2/tokenized_assets/redemptions","href":"/v2/api-reference/tokenized-assets/list-redemption-requests"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/create_account","href":"/v2/api-reference/tokenized-assets/create-account"},{"title":"Transfer tokens to/from account","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/transfer","href":"/v2/api-reference/tokenized-assets/transfer-tokens-tofrom-account"},{"title":"Quote an order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/quote","href":"/v2/api-reference/tokenized-assets/quote-an-order"},{"title":"Build an order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/order","href":"/v2/api-reference/tokenized-assets/build-an-order"},{"title":"Submit a signed order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/order/submit","href":"/v2/api-reference/tokenized-assets/submit-a-signed-order"},{"title":"Cancel an order","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/order/{order_hash}/cancel","href":"/v2/api-reference/tokenized-assets/cancel-an-order"},{"title":"Charge a partner fee","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/order/{order_hash}/charge_fee","href":"/v2/api-reference/tokenized-assets/charge-a-partner-fee"},{"title":"Buy an RWA yield token","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/transact/buy","href":"/v2/api-reference/tokenized-assets/buy-an-rwa-yield-token"},{"title":"Sell an RWA yield token","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/tokenized_assets/transact/sell","href":"/v2/api-reference/tokenized-assets/sell-an-rwa-yield-token"}]}]}]},{"version":"V1","pages":[{"title":"V1","href":"/v1/api-reference/aave-v3/aave-supported-tokens"}]}]}]},"basePath":"","title":"Execute multiple credit actions - Compass API Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}