Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account.
Venue types:
VAULT: ERC-4626 vaults (see /vaults for available options)
AAVE: Aave lending pools (see /aave_markets for available options)
PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options)
MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: "async", and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap.
Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT):
FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens)
PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%)
PERFORMANCE: A percentage of realized profit (withdrawals only)
Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.
Amount of the underlying asset to act on (deposit or withdraw). For VAULT, this is the vault's underlying token; for AAVE, this is the Aave reserve asset; for PENDLE_PT, this is the amount of token to spend (DEPOSIT) or PT to sell (WITHDRAW); for MAPLE, this is the pool's underlying asset (USDC for syrupUSDC, USDT for syrupUSDT). Provide as a decimal in token units (not wei); must be > 0.
Optional fee configuration. If provided, a fee will be applied to the transaction amount and sent to the specified recipient address. The fee can be specified as a percentage of the transaction amount, as a fixed token amount, or as a percentage of realized profit (PERFORMANCE).
Optionally request gas sponsorship. If set to true, EIP-712 typed data will be returned that must be signed by the owner and submitted to the 'Prepare gas-sponsored transaction' endpoint (/gas_sponsorship/prepare).
'instant' when the action completes in this transaction. 'async' for a MAPLE WITHDRAW: the transaction only requests the redemption from Maple's withdrawal queue, and the underlying asset arrives in the product account when Maple processes the queue (typically within minutes, at most 30 days). Until then the position shows a pending_redemption.
For an async withdrawal, the underlying asset expected at today's exit rate. Maple pays at the rate when it processes the request, so this is an estimate. Null for instant actions.
For an async withdrawal, the endpoint that shows its progress. Null for instant actions.
Was this page helpful?
{"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":""},"feedback":{"issues":true,"edits":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1a85ec512f82174899a92","clientVersion":"0.0.4111","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":"custom-rbac-roles","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":"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":"editor-metadata","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/earn/manage-earn-position","slug":"/v2/api-reference/earn/manage-earn-position","pageMetadata":{"title":"Manage earn position","description":"Deposit into or withdraw from a yield venue.\n\nUse `DEPOSIT` to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use `WITHDRAW` to move tokens back from a venue into the Earn Account.\n\n**Venue types:**\n- `VAULT`: ERC-4626 vaults (see [/vaults](https://docs.compasslabs.ai/v2/api-reference/earn/list-vaults) for available options)\n- `AAVE`: Aave lending pools (see [/aave_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-aave-markets) for available options)\n- `PENDLE_PT`: Pendle Principal Tokens (see [/pendle_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-pendle-markets) for available options)\n- `MAPLE`: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see [/maple_pools](https://docs.compasslabs.ai/v2/api-reference/earn/list-maple-pools)). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are **asynchronous**: the response has `settlement: \"async\"`, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use [/swap](https://docs.compasslabs.ai/v2/api-reference/earn/swap-tokens).\n\n**Fees:** A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT):\n- `FIXED`: A fixed token amount (e.g., 0.1 means 0.1 tokens)\n- `PERCENTAGE`: A percentage of the amount (e.g., 1.5 means 1.5%)\n- `PERFORMANCE`: A percentage of realized profit (withdrawals only)\n\n**Gas sponsorship:** Set `gas_sponsorship=true` to receive EIP-712 typed data. Owner signs the typed data, then submit to [/gas_sponsorship/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction).","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/manage","href":"/v2/api-reference/earn/manage-earn-position","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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Deposit into or withdraw from a yield venue.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use \", _jsx(_components.code, {\n children: \"DEPOSIT\"\n }), \" to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use \", _jsx(_components.code, {\n children: \"WITHDRAW\"\n }), \" to move tokens back from a venue into the Earn Account.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Venue types:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"VAULT\"\n }), \": ERC-4626 vaults (see \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/list-vaults\",\n children: \"/vaults\"\n }), \" for available options)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"AAVE\"\n }), \": Aave lending pools (see \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/list-aave-markets\",\n children: \"/aave_markets\"\n }), \" for available options)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"PENDLE_PT\"\n }), \": Pendle Principal Tokens (see \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/list-pendle-markets\",\n children: \"/pendle_markets\"\n }), \" for available options)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"MAPLE\"\n }), \": Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/list-maple-pools\",\n children: \"/maple_pools\"\n }), \"). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are \", _jsx(_components.strong, {\n children: \"asynchronous\"\n }), \": the response has \", _jsx(_components.code, {\n children: \"settlement: \\\"async\\\"\"\n }), \", and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/swap-tokens\",\n children: \"/swap\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Fees:\"\n }), \" A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT):\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"FIXED\"\n }), \": A fixed token amount (e.g., 0.1 means 0.1 tokens)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"PERCENTAGE\"\n }), \": A percentage of the amount (e.g., 1.5 means 1.5%)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"PERFORMANCE\"\n }), \": A percentage of realized profit (withdrawals only)\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Gas sponsorship:\"\n }), \" Set \", _jsx(_components.code, {\n children: \"gas_sponsorship=true\"\n }), \" to receive EIP-712 typed data. Owner signs the typed data, then submit to \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction\",\n children: \"/gas_sponsorship/prepare\"\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":"Manage earn position","description":"Deposit into or withdraw from a yield venue.\n\nUse `DEPOSIT` to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use `WITHDRAW` to move tokens back from a venue into the Earn Account.\n\n**Venue types:**\n- `VAULT`: ERC-4626 vaults (see [/vaults](https://docs.compasslabs.ai/v2/api-reference/earn/list-vaults) for available options)\n- `AAVE`: Aave lending pools (see [/aave_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-aave-markets) for available options)\n- `PENDLE_PT`: Pendle Principal Tokens (see [/pendle_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-pendle-markets) for available options)\n- `MAPLE`: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see [/maple_pools](https://docs.compasslabs.ai/v2/api-reference/earn/list-maple-pools)). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are **asynchronous**: the response has `settlement: \"async\"`, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use [/swap](https://docs.compasslabs.ai/v2/api-reference/earn/swap-tokens).\n\n**Fees:** A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT):\n- `FIXED`: A fixed token amount (e.g., 0.1 means 0.1 tokens)\n- `PERCENTAGE`: A percentage of the amount (e.g., 1.5 means 1.5%)\n- `PERFORMANCE`: A percentage of realized profit (withdrawals only)\n\n**Gas sponsorship:** Set `gas_sponsorship=true` to receive EIP-712 typed data. Owner signs the typed data, then submit to [/gas_sponsorship/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction).","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/earn/manage","href":"/v2/api-reference/earn/manage-earn-position","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":["Earn"],"summary":"Manage earn position","description":"Deposit into or withdraw from a yield venue.\n\nUse `DEPOSIT` to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use `WITHDRAW` to move tokens back from a venue into the Earn Account.\n\n**Venue types:**\n- `VAULT`: ERC-4626 vaults (see [/vaults](https://docs.compasslabs.ai/v2/api-reference/earn/list-vaults) for available options)\n- `AAVE`: Aave lending pools (see [/aave_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-aave-markets) for available options)\n- `PENDLE_PT`: Pendle Principal Tokens (see [/pendle_markets](https://docs.compasslabs.ai/v2/api-reference/earn/list-pendle-markets) for available options)\n- `MAPLE`: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see [/maple_pools](https://docs.compasslabs.ai/v2/api-reference/earn/list-maple-pools)). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are **asynchronous**: the response has `settlement: \"async\"`, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use [/swap](https://docs.compasslabs.ai/v2/api-reference/earn/swap-tokens).\n\n**Fees:** A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT):\n- `FIXED`: A fixed token amount (e.g., 0.1 means 0.1 tokens)\n- `PERCENTAGE`: A percentage of the amount (e.g., 1.5 means 1.5%)\n- `PERFORMANCE`: A percentage of realized profit (withdrawals only)\n\n**Gas sponsorship:** Set `gas_sponsorship=true` to receive EIP-712 typed data. Owner signs the typed data, then submit to [/gas_sponsorship/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction).","operationId":"v2_earn_manage","requestBody":"b02721db-9a92-433d-a133-ebdbcbc047bd","responses":{"200":"3ca0418b-fb31-4f39-ae86-51d4032ae43e","422":"ad500e40-da8e-4da8-a386-7b51c8f17965"},"x-speakeasy-name-override":"earn_manage","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.earn.earn_manage(venue={\n \"type\": \"VAULT\",\n \"vault_address\": \"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A\",\n }, action=models.EarnManageRequestAction.DEPOSIT, amount=\"0.01\", owner=\"0x06A9aF046187895AcFc7258450B15397CAc67400\", chain=models.EarnManageRequestChain.BASE, fee={\n \"recipient\": \"\u003cvalue>\",\n \"amount\": \"263.30\",\n \"denomination\": models.FeeDenomination.PERCENTAGE,\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.earn.earnManage({\n venue: {\n type: \"VAULT\",\n vaultAddress: \"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A\",\n },\n action: \"DEPOSIT\",\n amount: \"0.01\",\n owner: \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n chain: \"base\",\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/earn/manage","baseUrlOptions":["https://api.compasslabs.ai"],"title":"Manage earn position","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.earn.earn_manage(venue={\n \"type\": \"VAULT\",\n \"vault_address\": \"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A\",\n }, action=models.EarnManageRequestAction.DEPOSIT, amount=\"0.01\", owner=\"0x06A9aF046187895AcFc7258450B15397CAc67400\", chain=models.EarnManageRequestChain.BASE, fee={\n \"recipient\": \"\u003cvalue>\",\n \"amount\": \"263.30\",\n \"denomination\": models.FeeDenomination.PERCENTAGE,\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.earn.earnManage({\n venue: {\n type: \"VAULT\",\n vaultAddress: \"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A\",\n },\n action: \"DEPOSIT\",\n amount: \"0.01\",\n owner: \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n chain: \"base\",\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":{"venue":{"oneOf":[{"type":"object","title":"VaultVenue","description":"The earn venue.","default":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"required":["type","vault_address"],"example":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"properties":{"type":{"type":"string","const":"VAULT","title":"Type","description":"The venue type discriminator.","examples":["VAULT","AAVE","PENDLE_PT","MAPLE"],"isRequired":true,"uniqueKey":"venue.oneOf.0.type","typeLabel":"string"},"vault_address":{"type":"string","title":"Vault Address","description":"The vault address you are interacting with for this action.","examples":["0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB"],"isRequired":true,"uniqueKey":"venue.oneOf.0.vault_address","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"venue.oneOf.0","typeLabel":"VaultVenue · object"},{"type":"object","title":"AaveVenue","description":"The earn venue.","default":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"required":["type","token"],"example":{"type":"VAULT"},"properties":{"type":{"type":"string","const":"AAVE","title":"Type","description":"The venue type discriminator.","examples":["VAULT","AAVE","PENDLE_PT","MAPLE"],"isRequired":true,"uniqueKey":"venue.oneOf.1.type","typeLabel":"string"},"token":{"type":"string","title":"Token","description":"The reserve token for the Aave pool you are interacting with.","examples":["USDC","0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"isRequired":true,"uniqueKey":"venue.oneOf.1.token","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"venue.oneOf.1","typeLabel":"AaveVenue · object"},{"type":"object","title":"PendlePTVenue","description":"Venue for Pendle Principal Token (PT) positions.","default":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"required":["type","market_address"],"example":{"type":"VAULT"},"properties":{"type":{"type":"string","const":"PENDLE_PT","title":"Type","description":"The venue type discriminator.","examples":["VAULT","AAVE","PENDLE_PT","MAPLE"],"isRequired":true,"uniqueKey":"venue.oneOf.2.type","typeLabel":"string"},"market_address":{"type":"string","title":"Market Address","description":"The Pendle market address identifying which PT to trade.","examples":["0x08a152834de126d2ef83d612ff36e4523fd0017f"],"isRequired":true,"uniqueKey":"venue.oneOf.2.market_address","typeLabel":"string"},"token":{"oneOf":[{"type":"string","title":"Token","description":"A token identifier - either a supported symbol (e.g., USDC, WETH) or a valid Ethereum address (0x...)","example":"USDC","uniqueKey":"venue.oneOf.2.token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Token","description":"The token to exchange for PT (only used for DEPOSIT/buy). For WITHDRAW/sell, this field must not be provided - withdrawals always return the underlying asset to ensure accurate yield fee calculation.","example":"USDC","uniqueKey":"venue.oneOf.2.token.oneOf.1","typeLabel":"null"}],"uniqueKey":"venue.oneOf.2.token","typeLabel":"string | null"},"max_slippage_percent":{"type":"number","maximum":10,"minimum":0,"title":"Max Slippage Percent","description":"Maximum slippage allowed in percent (e.g., 1 means 1% slippage).","default":1,"examples":[0.5,1,2],"uniqueKey":"venue.oneOf.2.max_slippage_percent","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"venue.oneOf.2","typeLabel":"PendlePTVenue · object"},{"type":"object","title":"MapleVenue","description":"Venue for Maple syrup pools (syrupUSDC, syrupUSDT) on Ethereum.\n\nDEPOSIT mints pool shares directly from Maple at the pool exchange rate (no\nswap, no slippage). The product account is authorized with Maple\nautomatically on its first deposit. WITHDRAW is asynchronous: it requests a\nredemption from Maple's withdrawal queue and the underlying asset arrives in\nthe product account when Maple processes the queue, typically within\nminutes and at most 30 days. To exit immediately at market price instead,\nsell the shares with `/v2/earn/swap`.","default":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"required":["type","pool_address"],"example":{"type":"VAULT"},"properties":{"type":{"type":"string","const":"MAPLE","title":"Type","description":"The venue type discriminator.","examples":["VAULT","AAVE","PENDLE_PT","MAPLE"],"isRequired":true,"uniqueKey":"venue.oneOf.3.type","typeLabel":"string"},"pool_address":{"type":"string","title":"Pool Address","description":"The Maple syrup pool, which is also the syrup token address (syrupUSDC or syrupUSDT). See `GET /v2/earn/maple_pools`.","examples":["0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b"],"isRequired":true,"uniqueKey":"venue.oneOf.3.pool_address","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"venue.oneOf.3","typeLabel":"MapleVenue · object"}],"isRequired":true,"uniqueKey":"venue","typeLabel":"VaultVenue · object | AaveVenue · object | PendlePTVenue · object | MapleVenue · object"},"action":{"type":"string","enum":["DEPOSIT","WITHDRAW"],"title":"Action","description":"Whether you are depositing into or withdrawing from the given Earn `venue`.","default":"DEPOSIT","examples":["DEPOSIT"],"isRequired":true,"uniqueKey":"action","typeLabel":"enum\u003cstring>"},"amount":{"oneOf":[{"type":"number","title":"Amount","description":"Amount of the underlying asset to act on (deposit or withdraw). For VAULT, this is the vault's underlying token; for AAVE, this is the Aave reserve asset; for PENDLE_PT, this is the amount of `token` to spend (DEPOSIT) or PT to sell (WITHDRAW); for MAPLE, this is the pool's underlying asset (USDC for syrupUSDC, USDT for syrupUSDT). Provide as a decimal in token units (not wei); must be > 0.","default":"0.01","minimum":0,"example":0.1,"exclusiveMinimum":true,"isRequired":true,"uniqueKey":"amount.oneOf.0","typeLabel":"number"},{"type":"string","title":"Amount","description":"Amount of the underlying asset to act on (deposit or withdraw). For VAULT, this is the vault's underlying token; for AAVE, this is the Aave reserve asset; for PENDLE_PT, this is the amount of `token` to spend (DEPOSIT) or PT to sell (WITHDRAW); for MAPLE, this is the pool's underlying asset (USDC for syrupUSDC, USDT for syrupUSDT). Provide as a decimal in token units (not wei); must be > 0.","default":"0.01","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","example":0.1,"isRequired":true,"uniqueKey":"amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"amount","typeLabel":"number | string"},"owner":{"type":"string","title":"Owner","description":"The primary wallet address that owns and controls the Earn Account.","default":"0x06A9aF046187895AcFc7258450B15397CAc67400","examples":["0x06A9aF046187895AcFc7258450B15397CAc67400"],"isRequired":true,"uniqueKey":"owner","typeLabel":"string"},"chain":{"type":"string","enum":["arbitrum","base","bsc","ethereum","hyperevm","tempo"],"title":"Chain","description":"Blockchain network","default":"base","examples":["base"],"isRequired":true,"uniqueKey":"chain","typeLabel":"enum\u003cstring>"},"action_type":{"type":"string","const":"V2_MANAGE","title":"Action Type","description":"Action type identifier for manage operations.","default":"V2_MANAGE","uniqueKey":"action_type","typeLabel":"string"},"fee":{"oneOf":[{"type":"object","title":"Fee","description":"Optional fee configuration. If provided, a fee will be applied to the transaction amount and sent to the specified recipient address. The fee can be specified as a percentage of the transaction amount, as a fixed token amount, or as a percentage of realized profit (PERFORMANCE).","required":["recipient","amount"],"properties":{"recipient":{"type":"string","title":"Recipient","description":"The wallet address that will receive the fee.","examples":["0xb8340945eBc917D2Aa0368a5e4E79C849c461511"],"isRequired":true,"uniqueKey":"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":"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":"fee.oneOf.0.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"fee.oneOf.0.amount","typeLabel":"number | string"},"denomination":{"type":"string","enum":["PERCENTAGE","FIXED","PERFORMANCE"],"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 transaction amount), 'FIXED' for a fixed token amount (e.g., 0.1 means 0.1 tokens), or 'PERFORMANCE' for a fee based on realized profit using FIFO cost basis (e.g., 10 means 10% of profit).","default":"PERCENTAGE","examples":["PERCENTAGE","FIXED","PERFORMANCE"],"uniqueKey":"fee.oneOf.0.denomination","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"fee.oneOf.0","typeLabel":"Fee · object"},{"type":"null","description":"Optional fee configuration. If provided, a fee will be applied to the transaction amount and sent to the specified recipient address. The fee can be specified as a percentage of the transaction amount, as a fixed token amount, or as a percentage of realized profit (PERFORMANCE).","uniqueKey":"fee.oneOf.1","typeLabel":"null"}],"uniqueKey":"fee","typeLabel":"Fee · object | null"},"gas_sponsorship":{"type":"boolean","title":"Gas Sponsorship","description":"Optionally request gas sponsorship. If set to `true`, EIP-712 typed data will be returned that must be signed by the `owner` and submitted to the 'Prepare gas-sponsored transaction' endpoint (`/gas_sponsorship/prepare`).","default":false,"examples":[false],"uniqueKey":"gas_sponsorship","typeLabel":"boolean"}},"type":"object","required":["venue","action","amount","owner","chain"],"title":"EarnManageRequest","description":"Request model for the unified manage endpoint.\n\nInherits from EarnManageParams and adds context fields (owner, chain, etc).","default":{"owner":"0x06A9aF046187895AcFc7258450B15397CAc67400","chain":"base","venue":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"action":"DEPOSIT","amount":"0.01","gas_sponsorship":false},"uniqueKey":"","typeLabel":"EarnManageRequest · object"},"examples":{"Example":{"title":"Example","value":{"owner":"0x06A9aF046187895AcFc7258450B15397CAc67400","chain":"base","venue":{"type":"VAULT","vault_address":"0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A"},"action":"DEPOSIT","amount":"0.01","gas_sponsorship":false}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"3ca0418b-fb31-4f39-ae86-51d4032ae43e":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"transaction":{"oneOf":[{"type":"object","title":"UnsignedTransaction","description":"Unsigned transaction for direct execution. Present when gas_sponsorship=false.","required":["chainId","data","from","gas","to","value","nonce","maxFeePerGas","maxPriorityFeePerGas"],"example":{"chainId":"0x2105","data":"0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d","from":"0x4A83b4413CF41C3244027e1590E35a0F48403F0c","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x5","to":"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67","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. Present when gas_sponsorship=false.","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.","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.","uniqueKey":"eip_712.oneOf.1","typeLabel":"null"}],"uniqueKey":"eip_712","typeLabel":"BatchedSafeOperationsResponse · object | null"},"settlement":{"type":"string","enum":["instant","async"],"title":"Settlement","description":"'instant' when the action completes in this transaction. 'async' for a MAPLE WITHDRAW: the transaction only requests the redemption from Maple's withdrawal queue, and the underlying asset arrives in the product account when Maple processes the queue (typically within minutes, at most 30 days). Until then the position shows a `pending_redemption`.","default":"instant","uniqueKey":"settlement","typeLabel":"enum\u003cstring>"},"estimated_amount_out":{"oneOf":[{"type":"string","title":"Estimated Amount Out","description":"For an async withdrawal, the underlying asset expected at today's exit rate. Maple pays at the rate when it processes the request, so this is an estimate. Null for instant actions.","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","uniqueKey":"estimated_amount_out.oneOf.0","typeLabel":"string"},{"type":"null","title":"Estimated Amount Out","description":"For an async withdrawal, the underlying asset expected at today's exit rate. Maple pays at the rate when it processes the request, so this is an estimate. Null for instant actions.","uniqueKey":"estimated_amount_out.oneOf.1","typeLabel":"null"}],"uniqueKey":"estimated_amount_out","typeLabel":"string | null"},"poll_endpoint":{"oneOf":[{"type":"string","title":"Poll Endpoint","description":"For an async withdrawal, the endpoint that shows its progress. Null for instant actions.","uniqueKey":"poll_endpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Poll Endpoint","description":"For an async withdrawal, the endpoint that shows its progress. Null for instant actions.","uniqueKey":"poll_endpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"poll_endpoint","typeLabel":"string | null"}},"type":"object","title":"EarnManageResponse","example":{"settlement":"instant","transaction":{"chainId":"0x2105","data":"0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020","from":"0x4A83b4413CF41C3244027e1590E35a0F48403F0c","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x5","to":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1","value":"0x0"}},"uniqueKey":"","typeLabel":"EarnManageResponse · object"},"examples":{"Example":{"title":"Example","value":{"settlement":"instant","transaction":{"chainId":"0x2105","data":"0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020","from":"0x4A83b4413CF41C3244027e1590E35a0F48403F0c","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x5","to":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1","value":"0x0"}}}},"exampleType":"generated"}},"exampleType":"generated"},"ad500e40-da8e-4da8-a386-7b51c8f17965":{"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":"Manage earn position - Compass API Docs","navMaps":{"firstHrefInVersion":{"V2":{"href":"/v2/api-reference/earn/manage-earn-position","matchLevel":0},"V1":{"href":"/v1/api-reference/aave-v3/aave-supported-tokens","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T13:11:30.309Z","originalFileLocation":"v2/api-reference/earn/manage-earn-position.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=\"Deposit into or withdraw from a yield venue. Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account. Venue types: - VAULT: ERC-4626 vaults (see /vaults for available options) - AAVE: Aave lending pools (see /aave_markets for available options) - PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options) - MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: \u0026quot;async\u0026quot;, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap. Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT): - FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens) - PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%) - PERFORMANCE: A percentage of realized profit (withdrawals only) Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.\">\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=\"Manage earn position - Compass API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deposit into or withdraw from a yield venue. Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account. Venue types: - VAULT: ERC-4626 vaults (see /vaults for available options) - AAVE: Aave lending pools (see /aave_markets for available options) - PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options) - MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: \u0026quot;async\u0026quot;, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap. Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT): - FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens) - PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%) - PERFORMANCE: A percentage of realized profit (withdrawals only) Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.\">\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/earn/manage-earn-position\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://compasslabs-f07467e0.mintlify.site/_mintlify/api/og/v2?division=Earn\u0026amp;title=Manage+earn+position\u0026amp;description=Deposit+into+or+withdraw+from+a+yield+venue.%0A%0AUse+%60DEPOSIT%60+to+move+tokens+from+the+Earn+Account+into+a+vault%2C+Aave+market%2C+Pendle+PT+position%2C+or+Maple+syrup+p\u0026amp;theme=3dbf73b4b3dd364abd493b9c\u0026amp;signature=b538a7167ac16f67a23164792375fd021a03322b9ee6f51c525c44079f6bd0c8\">\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=\"Manage earn position - Compass API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deposit into or withdraw from a yield venue. Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account. Venue types: - VAULT: ERC-4626 vaults (see /vaults for available options) - AAVE: Aave lending pools (see /aave_markets for available options) - PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options) - MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: \u0026quot;async\u0026quot;, and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap. Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT): - FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens) - PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%) - PERFORMANCE: A percentage of realized profit (withdrawals only) Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://compasslabs-f07467e0.mintlify.site/_mintlify/api/og/v2?division=Earn\u0026amp;title=Manage+earn+position\u0026amp;description=Deposit+into+or+withdraw+from+a+yield+venue.%0A%0AUse+%60DEPOSIT%60+to+move+tokens+from+the+Earn+Account+into+a+vault%2C+Aave+market%2C+Pendle+PT+position%2C+or+Maple+syrup+p\u0026amp;theme=3dbf73b4b3dd364abd493b9c\u0026amp;signature=b538a7167ac16f67a23164792375fd021a03322b9ee6f51c525c44079f6bd0c8\">\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/earn/manage-earn-position\">\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/earn/manage-earn-position.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/earn/manage-earn-position#webpage\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position\",\"name\":\"Manage earn position\",\"description\":\"Deposit into or withdraw from a yield venue. Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account. Venue types: - VAULT: ERC-4626 vaults (see /vaults for available options) - AAVE: Aave lending pools (see /aave_markets for available options) - PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options) - MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: \\\"async\\\", and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap. Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT): - FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens) - PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%) - PERFORMANCE: A percentage of realized profit (withdrawals only) Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.\",\"dateModified\":\"2026-11-05T13:11:30.309Z\",\"isPartOf\":{\"@id\":\"https://docs.compasslabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position#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\":\"Earn\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/earn/list-earn-positions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Manage earn position\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position#apireference\",\"headline\":\"Manage earn position\",\"name\":\"Manage earn position\",\"description\":\"Deposit into or withdraw from a yield venue. Use DEPOSIT to move tokens from the Earn Account into a vault, Aave market, Pendle PT position, or Maple syrup pool. Use WITHDRAW to move tokens back from a venue into the Earn Account. Venue types: - VAULT: ERC-4626 vaults (see /vaults for available options) - AAVE: Aave lending pools (see /aave_markets for available options) - PENDLE_PT: Pendle Principal Tokens (see /pendle_markets for available options) - MAPLE: Maple syrup pools on Ethereum, syrupUSDC and syrupUSDT (see /maple_pools). Deposits mint shares directly from Maple at the pool exchange rate; the Earn Account is authorized with Maple automatically on its first deposit. Withdrawals are asynchronous: the response has settlement: \\\"async\\\", and the asset arrives in the Earn Account when Maple processes its withdrawal queue (typically within minutes, at most 30 days). Fees are not supported on MAPLE withdrawals. To exit immediately at market price, use /swap. Fees: A fee can be configured and deducted from the transaction amount (not supported for PENDLE_PT): - FIXED: A fixed token amount (e.g., 0.1 means 0.1 tokens) - PERCENTAGE: A percentage of the amount (e.g., 1.5 means 1.5%) - PERFORMANCE: A percentage of realized profit (withdrawals only) Gas sponsorship: Set gas_sponsorship=true to receive EIP-712 typed data. Owner signs the typed data, then submit to /gas_sponsorship/prepare.\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position\",\"mainEntityOfPage\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position#webpage\"},\"dateModified\":\"2026-11-05T13:11:30.309Z\",\"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\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Compass API Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/v2/api-reference/earn/manage-earn-position.md","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","description":"Transfer tokens between an owner's wallet and their Earn Account.\n\nUse `DEPOSIT` to move tokens from the owner's wallet into their Earn Account. Use `WITHDRAW` to move tokens from the Earn Account back to the owner's wallet.\n\n**Gas-sponsored deposits** require two steps:\n\n**Step 1 (once per token):** Set up Permit2 allowance\n1. Call [/gas_sponsorship/approve_transfer](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/approve-token-transfer) to get EIP-712 typed data\n2. Owner signs the typed data\n3. Submit signature + typed data to [/gas_sponsorship/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction)\n\n**Step 2 (each transfer):** Execute the gas-sponsored transfer\n1. Call this endpoint with `gas_sponsorship=true` to get EIP-712 typed data\n2. Owner signs the typed data\n3. Submit signature + typed data to [/gas_sponsorship/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction)\n\n**Note:** This endpoint moves tokens to/from the Earn Account itself—not into yield venues. To deposit into a vault or Aave market, use the [manage endpoint](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position).","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","description":"Swap one token for another inside an Earn Account.\n\nExchanges tokens the Earn Account already holds in a single atomic\ntransaction, so funds never leave it, and can be chained with other actions\nthrough the [bundle endpoint](https://docs.compasslabs.ai/v2/api-reference/earn/execute-multiple-earn-actions)\n(for example, swap ETH to USDC and deposit the USDC into a vault at once).\nReturns an unsigned transaction to sign and the expected output amount.","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","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","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":"Manage earn position - Compass API Docs","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}