Prepare a gas-sponsored transaction from signed EIP-712 typed data.
Submit the owner’s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast.
{"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":"6af5b5300b3858d5ef253beb","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/gas-sponsorship/prepare-gas-sponsored-transaction","slug":"/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction","pageMetadata":{"title":"Prepare gas-sponsored transaction","description":"Prepare a gas-sponsored transaction from signed EIP-712 typed data.\n\nSubmit the `owner`'s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the `sender` to sign and broadcast.\n\n**How gas sponsorship works:**\n1. Call an endpoint with `gas_sponsorship=true` (e.g., [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account), [/earn/manage](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position), [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account)) to get EIP-712 typed data\n2. Owner signs the typed data off-chain\n3. Submit signature + typed data to this endpoint\n4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner\n\n**Note:** For gas-sponsored deposits via [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account) or [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account), the owner must first set up a Permit2 allowance using [/approve_transfer](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/approve-token-transfer) (once per token).","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/gas_sponsorship/prepare","href":"/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction","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 ol: \"ol\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Prepare a gas-sponsored transaction from signed EIP-712 typed data.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Submit the \", _jsx(_components.code, {\n children: \"owner\"\n }), \"’s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the \", _jsx(_components.code, {\n children: \"sender\"\n }), \" to sign and broadcast.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"How gas sponsorship works:\"\n })\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Call an endpoint with \", _jsx(_components.code, {\n children: \"gas_sponsorship=true\"\n }), \" (e.g., \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account\",\n children: \"/earn/transfer\"\n }), \", \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position\",\n children: \"/earn/manage\"\n }), \", \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account\",\n children: \"/credit/transfer\"\n }), \") to get EIP-712 typed data\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Owner signs the typed data off-chain\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Submit signature + typed data to this endpoint\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Note:\"\n }), \" For gas-sponsored deposits via \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account\",\n children: \"/earn/transfer\"\n }), \" or \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account\",\n children: \"/credit/transfer\"\n }), \", the owner must first set up a Permit2 allowance using \", _jsx(_components.a, {\n href: \"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/approve-token-transfer\",\n children: \"/approve_transfer\"\n }), \" (once per token).\"]\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":"Prepare gas-sponsored transaction","description":"Prepare a gas-sponsored transaction from signed EIP-712 typed data.\n\nSubmit the `owner`'s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the `sender` to sign and broadcast.\n\n**How gas sponsorship works:**\n1. Call an endpoint with `gas_sponsorship=true` (e.g., [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account), [/earn/manage](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position), [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account)) to get EIP-712 typed data\n2. Owner signs the typed data off-chain\n3. Submit signature + typed data to this endpoint\n4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner\n\n**Note:** For gas-sponsored deposits via [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account) or [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account), the owner must first set up a Permit2 allowance using [/approve_transfer](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/approve-token-transfer) (once per token).","deprecated":null,"version":null,"openapi":"/v2/combined_spec.json post /v2/gas_sponsorship/prepare","href":"/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction","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":["Gas Sponsorship"],"summary":"Prepare gas-sponsored transaction","description":"Prepare a gas-sponsored transaction from signed EIP-712 typed data.\n\nSubmit the `owner`'s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the `sender` to sign and broadcast.\n\n**How gas sponsorship works:**\n1. Call an endpoint with `gas_sponsorship=true` (e.g., [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account), [/earn/manage](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position), [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account)) to get EIP-712 typed data\n2. Owner signs the typed data off-chain\n3. Submit signature + typed data to this endpoint\n4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner\n\n**Note:** For gas-sponsored deposits via [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account) or [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account), the owner must first set up a Permit2 allowance using [/approve_transfer](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/approve-token-transfer) (once per token).","operationId":"v2_gas_sponsorship_prepare","requestBody":"e955f432-c492-4b37-a73b-79f5058c3c57","responses":{"200":"1b6d94ec-daa6-41ce-a09c-d003632e6bb7","422":"864526ae-65e4-4c83-b025-60ea86e62fc7"},"x-speakeasy-name-override":"gas_sponsorship_prepare","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.gas_sponsorship.gas_sponsorship_prepare(owner=\"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\", chain=models.Chain.ARBITRUM, eip_712={\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chain_id\": 42161,\n \"verifying_contract\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n },\n \"types\": {\n \"eip712_domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n },\n {\n \"name\": \"version\",\n \"type\": \"string\",\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\",\n },\n ],\n \"permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\",\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n },\n ],\n },\n \"primary_type\": \"Permit\",\n \"message\": {\n \"owner\": \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n \"spender\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n \"value\": \"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n \"nonce\": \"0\",\n \"deadline\": \"1762269774\",\n },\n }, signature=\"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c\", sender=\"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d\", product=models.Product.EARN)\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.gasSponsorship.gasSponsorshipPrepare({\n owner: \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n chain: \"arbitrum\",\n eip712: {\n domain: {\n name: \"USD Coin\",\n version: \"2\",\n chainId: 42161,\n verifyingContract: \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n },\n types: {\n eip712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"version\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n permit: [\n {\n name: \"owner\",\n type: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"value\",\n type: \"uint256\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n ],\n },\n primaryType: \"Permit\",\n message: {\n owner: \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n spender: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n value: \"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n nonce: \"0\",\n deadline: \"1762269774\",\n },\n },\n signature: \"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c\",\n sender: \"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d\",\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/gas_sponsorship/prepare","baseUrlOptions":["https://api.compasslabs.ai"],"title":"Prepare gas-sponsored transaction","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.gas_sponsorship.gas_sponsorship_prepare(owner=\"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\", chain=models.Chain.ARBITRUM, eip_712={\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chain_id\": 42161,\n \"verifying_contract\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n },\n \"types\": {\n \"eip712_domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n },\n {\n \"name\": \"version\",\n \"type\": \"string\",\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\",\n },\n ],\n \"permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\",\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\",\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\",\n },\n ],\n },\n \"primary_type\": \"Permit\",\n \"message\": {\n \"owner\": \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n \"spender\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n \"value\": \"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n \"nonce\": \"0\",\n \"deadline\": \"1762269774\",\n },\n }, signature=\"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c\", sender=\"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d\", product=models.Product.EARN)\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.gasSponsorship.gasSponsorshipPrepare({\n owner: \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n chain: \"arbitrum\",\n eip712: {\n domain: {\n name: \"USD Coin\",\n version: \"2\",\n chainId: 42161,\n verifyingContract: \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n },\n types: {\n eip712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"version\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n permit: [\n {\n name: \"owner\",\n type: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"value\",\n type: \"uint256\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n ],\n },\n primaryType: \"Permit\",\n message: {\n owner: \"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40\",\n spender: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n value: \"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n nonce: \"0\",\n deadline: \"1762269774\",\n },\n },\n signature: \"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c\",\n sender: \"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d\",\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 wallet address that owns the Product Account.","default":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","examples":["0xCE1A77F0abff993d6d3D04d44b70831c6924fb40"],"isRequired":true,"uniqueKey":"owner","typeLabel":"string"},"chain":{"type":"string","enum":["base","ethereum","arbitrum","hyperevm","tempo","bsc","robinhood","ethereum_sepolia"],"title":"Chain","description":"Blockchain network","default":"arbitrum","examples":["arbitrum"],"isRequired":true,"uniqueKey":"chain","typeLabel":"enum\u003cstring>"},"eip_712":{"oneOf":[{"type":"object","title":"BatchedSafeOperationsResponse","description":"Response containing EIP-712 typed data for Safe transaction signing.","default":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"required":["domain","types","primaryType","message"],"example":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","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"}},"isRequired":true,"uniqueKey":"eip_712.oneOf.0","typeLabel":"BatchedSafeOperationsResponse · object"},{"type":"object","title":"PermitTypedDataResponse","description":"Response containing EIP-712 typed data for ERC-20 Permit signing.","default":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"required":["domain","types","primaryType","message"],"example":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"properties":{"domain":{"properties":{"name":{"type":"string","title":"Name","description":"Token name","isRequired":true,"uniqueKey":"eip_712.oneOf.1.domain.name","typeLabel":"string"},"version":{"type":"string","title":"Version","description":"Token version (usually '1' or '2')","isRequired":true,"uniqueKey":"eip_712.oneOf.1.domain.version","typeLabel":"string"},"chainId":{"type":"integer","title":"Chainid","description":"Chain ID","isRequired":true,"uniqueKey":"eip_712.oneOf.1.domain.chainId","typeLabel":"integer"},"verifyingContract":{"type":"string","title":"Verifyingcontract","description":"Token contract address","isRequired":true,"uniqueKey":"eip_712.oneOf.1.domain.verifyingContract","typeLabel":"string"}},"type":"object","required":["name","version","chainId","verifyingContract"],"title":"EIP712Domain","description":"EIP-712 domain separator","isRequired":true,"uniqueKey":"eip_712.oneOf.1.domain","typeLabel":"EIP712Domain · object"},"types":{"properties":{"EIP712Domain":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types.EIP712Domain.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","isRequired":true,"uniqueKey":"eip_712.oneOf.1.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.1.types.EIP712Domain.items.[INDEX]","typeLabel":"EIP712DomainField · object"},"type":"array","title":"Eip712Domain","description":"EIP712Domain type definition","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types.EIP712Domain","typeLabel":"EIP712DomainField · object[]"},"Permit":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types.Permit.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types.Permit.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"PermitField","description":"A field in the Permit type definition.","uniqueKey":"eip_712.oneOf.1.types.Permit.items.[INDEX]","typeLabel":"PermitField · object"},"type":"array","title":"Permit","description":"Permit type definition","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types.Permit","typeLabel":"PermitField · object[]"}},"type":"object","required":["EIP712Domain","Permit"],"title":"EIP712Types","description":"EIP-712 type definitions","isRequired":true,"uniqueKey":"eip_712.oneOf.1.types","typeLabel":"EIP712Types · object"},"primaryType":{"type":"string","const":"Permit","title":"Primarytype","description":"Primary type for the structured data","isRequired":true,"uniqueKey":"eip_712.oneOf.1.primaryType","typeLabel":"string"},"message":{"properties":{"owner":{"type":"string","title":"Owner","description":"Token owner address","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message.owner","typeLabel":"string"},"spender":{"type":"string","title":"Spender","description":"Address authorized to spend tokens","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message.spender","typeLabel":"string"},"value":{"type":"string","title":"Value","description":"Amount to approve (as string)","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message.value","typeLabel":"string"},"nonce":{"type":"string","title":"Nonce","description":"Current permit nonce for the owner","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message.nonce","typeLabel":"string"},"deadline":{"type":"string","title":"Deadline","description":"Permit expiry timestamp","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message.deadline","typeLabel":"string"}},"type":"object","required":["owner","spender","value","nonce","deadline"],"title":"PermitMessage","description":"Permit message data","isRequired":true,"uniqueKey":"eip_712.oneOf.1.message","typeLabel":"PermitMessage · object"}},"isRequired":true,"uniqueKey":"eip_712.oneOf.1","typeLabel":"PermitTypedDataResponse · object"},{"type":"object","title":"Permit2TypedData","description":"The EIP-712 typed data that was signed.","default":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"required":["types","domain","message"],"example":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"properties":{"types":{"properties":{"EIP712Domain":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Field name in the struct","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.EIP712Domain.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"EVM type (e.g., address, uint256, TokenPermissions)","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.EIP712Domain.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"EIP712Field","uniqueKey":"eip_712.oneOf.2.types.EIP712Domain.items.[INDEX]","typeLabel":"EIP712Field · object"},"type":"array","title":"Eip712Domain","description":"Standard EIP-712 domain type","default":[{"name":"name","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"uniqueKey":"eip_712.oneOf.2.types.EIP712Domain","typeLabel":"EIP712Field · object[]"},"TokenPermissions":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Field name in the struct","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.TokenPermissions.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"EVM type (e.g., address, uint256, TokenPermissions)","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.TokenPermissions.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"EIP712Field","uniqueKey":"eip_712.oneOf.2.types.TokenPermissions.items.[INDEX]","typeLabel":"EIP712Field · object"},"type":"array","title":"Tokenpermissions","description":"TokenPermissions struct","default":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"uniqueKey":"eip_712.oneOf.2.types.TokenPermissions","typeLabel":"EIP712Field · object[]"},"PermitTransferFrom":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Field name in the struct","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.PermitTransferFrom.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"EVM type (e.g., address, uint256, TokenPermissions)","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types.PermitTransferFrom.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["name","type"],"title":"EIP712Field","uniqueKey":"eip_712.oneOf.2.types.PermitTransferFrom.items.[INDEX]","typeLabel":"EIP712Field · object"},"type":"array","title":"Permittransferfrom","description":"Main permit message type","default":[{"name":"permitted","type":"TokenPermissions"},{"name":"spender","type":"address"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}],"uniqueKey":"eip_712.oneOf.2.types.PermitTransferFrom","typeLabel":"EIP712Field · object[]"}},"type":"object","title":"EIP712Types","description":"All type definitions","isRequired":true,"uniqueKey":"eip_712.oneOf.2.types","typeLabel":"EIP712Types · object"},"domain":{"properties":{"chainId":{"type":"integer","title":"Chainid","description":"EVM chain ID","isRequired":true,"uniqueKey":"eip_712.oneOf.2.domain.chainId","typeLabel":"integer"},"verifyingContract":{"type":"string","title":"Verifyingcontract","description":"Permit2 contract address","isRequired":true,"uniqueKey":"eip_712.oneOf.2.domain.verifyingContract","typeLabel":"string"},"name":{"type":"string","const":"Permit2","title":"Name","description":"Must be 'Permit2'","default":"Permit2","uniqueKey":"eip_712.oneOf.2.domain.name","typeLabel":"string"}},"type":"object","required":["chainId","verifyingContract"],"title":"EIP712Domain","description":"EIP-712 domain separator","isRequired":true,"uniqueKey":"eip_712.oneOf.2.domain","typeLabel":"EIP712Domain · object"},"message":{"properties":{"permitted":{"properties":{"token":{"type":"string","title":"Token","description":"ERC-20 token address","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.permitted.token","typeLabel":"string"},"amount":{"type":"integer","minimum":0,"title":"Amount","description":"Maximum amount allowed to transfer","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.permitted.amount","typeLabel":"integer"}},"type":"object","required":["token","amount"],"title":"TokenPermissions","description":"Token and max amount","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.permitted","typeLabel":"TokenPermissions · object"},"spender":{"type":"string","title":"Spender","description":"Address allowed to transfer (caller of permitTransferFrom)","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.spender","typeLabel":"string"},"nonce":{"type":"integer","minimum":0,"title":"Nonce","description":"Unique nonce to prevent replay","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.nonce","typeLabel":"integer"},"deadline":{"type":"integer","minimum":0,"title":"Deadline","description":"Unix timestamp after which signature expires","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message.deadline","typeLabel":"integer"}},"type":"object","required":["permitted","spender","nonce","deadline"],"title":"PermitTransferFromMessage","description":"The permit data to sign","isRequired":true,"uniqueKey":"eip_712.oneOf.2.message","typeLabel":"PermitTransferFromMessage · object"},"primaryType":{"type":"string","const":"PermitTransferFrom","title":"Primarytype","description":"Root type for signing","default":"PermitTransferFrom","uniqueKey":"eip_712.oneOf.2.primaryType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"eip_712.oneOf.2","typeLabel":"Permit2TypedData · object"}],"isRequired":true,"uniqueKey":"eip_712","typeLabel":"BatchedSafeOperationsResponse · object | PermitTypedDataResponse · object | Permit2TypedData · object"},"signature":{"type":"string","title":"Signature","description":"The EIP-712 signed typed data signature.","default":"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c","examples":["0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c"],"isRequired":true,"uniqueKey":"signature","typeLabel":"string"},"sender":{"type":"string","title":"Sender","description":"The address of the wallet which will send the transaction.","default":"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d","examples":["0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d"],"isRequired":true,"uniqueKey":"sender","typeLabel":"string"},"product":{"type":"string","enum":["earn","credit","tokenized_assets"],"title":"Product","description":"Which product the gas sponsorship is for. Determines which Product Account (Safe) address to use.","default":"earn","uniqueKey":"product","typeLabel":"enum\u003cstring>"}},"type":"object","required":["owner","chain","eip_712","signature","sender"],"title":"SponsorGasRequest","default":{"owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","chain":"arbitrum","eip_712":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"signature":"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c","sender":"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d"},"uniqueKey":"","typeLabel":"SponsorGasRequest · object"},"examples":{"Example":{"title":"Example","value":{"owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","chain":"arbitrum","eip_712":{"domain":{"chainId":42161,"name":"USD Coin","verifyingContract":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","version":"2"},"message":{"deadline":"1762269774","nonce":"0","owner":"0xCE1A77F0abff993d6d3D04d44b70831c6924fb40","spender":"0x000000000022D473030F116dDEE9F6B43aC78BA3","value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"primaryType":"Permit","types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]}},"signature":"0x160d2709ae195f591daa33ad6ab1fb18b8762a39d8c4466c4cbe95cf6881fc3d54d469710ef0e7fd64ecff47c1ba5741d7254903bfaebdacea5aa8289f81ba9a1c","sender":"0x02122Ac49b0Be2e0eAD957F2D080805A0127Aa9d"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"1b6d94ec-daa6-41ce-a09c-d003632e6bb7":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"transaction":{"properties":{"chainId":{"type":"string","title":"Chainid","description":"The chain id of the transaction","isRequired":true,"uniqueKey":"transaction.chainId","typeLabel":"string"},"data":{"type":"string","title":"Data","description":"The data of the transaction","isRequired":true,"uniqueKey":"transaction.data","typeLabel":"string"},"from":{"type":"string","title":"From","description":"The sender of the transaction","isRequired":true,"uniqueKey":"transaction.from","typeLabel":"string"},"gas":{"oneOf":[{"type":"string","title":"Gas","description":"The gas of the transaction","isRequired":true,"uniqueKey":"transaction.gas.oneOf.0","typeLabel":"string"},{"type":"null","title":"Gas","description":"The gas of the transaction","isRequired":true,"uniqueKey":"transaction.gas.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"transaction.gas","typeLabel":"string | null"},"to":{"type":"string","title":"To","description":"The recipient of the transaction","isRequired":true,"uniqueKey":"transaction.to","typeLabel":"string"},"value":{"type":"string","title":"Value","description":"The value of the transaction","isRequired":true,"uniqueKey":"transaction.value","typeLabel":"string"},"nonce":{"type":"string","title":"Nonce","description":"The nonce of the address","isRequired":true,"uniqueKey":"transaction.nonce","typeLabel":"string"},"maxFeePerGas":{"type":"string","title":"Maxfeepergas","description":"The max fee per gas of the transaction","isRequired":true,"uniqueKey":"transaction.maxFeePerGas","typeLabel":"string"},"maxPriorityFeePerGas":{"type":"string","title":"Maxpriorityfeepergas","description":"The max priority fee per gas of the transaction","isRequired":true,"uniqueKey":"transaction.maxPriorityFeePerGas","typeLabel":"string"}},"type":"object","required":["chainId","data","from","gas","to","value","nonce","maxFeePerGas","maxPriorityFeePerGas"],"title":"UnsignedTransaction","example":{"chainId":"0x2105","data":"0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d","from":"0x4A83b4413CF41C3244027e1590E35a0F48403F0c","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x5","to":"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67","value":"0x0"},"description":"Transaction to be signed \u0026 submitted via the `sender` to the network.","isRequired":true,"uniqueKey":"transaction","typeLabel":"UnsignedTransaction · object"}},"type":"object","required":["transaction"],"title":"SponsorGasResponse","example":{"transaction":{"chainId":"0x2105","data":"0x6a761202000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100","from":"0x7B3B1F28a30276A21bE8e68E4C829972c7e641E7","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x12","to":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1","value":"0x0"}},"uniqueKey":"","typeLabel":"SponsorGasResponse · object"},"examples":{"Example":{"title":"Example","value":{"transaction":{"chainId":"0x2105","data":"0x6a761202000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100","from":"0x7B3B1F28a30276A21bE8e68E4C829972c7e641E7","gas":"0x7a120","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","nonce":"0x12","to":"0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1","value":"0x0"}}}},"exampleType":"generated"}},"exampleType":"generated"},"864526ae-65e4-4c83-b025-60ea86e62fc7":{"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":"Prepare gas-sponsored transaction - Compass API Docs","navMaps":{"firstHrefInVersion":{"V2":{"href":"/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction","matchLevel":0},"V1":{"href":"/v1/api-reference/aave-v3/aave-supported-tokens","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T13:11:30.156Z","originalFileLocation":"v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction.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=\"Prepare a gas-sponsored transaction from signed EIP-712 typed data. Submit the owner\u0026#x27;s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast. How gas sponsorship works: 1. Call an endpoint with gas_sponsorship=true (e.g., /earn/transfer, /earn/manage, /credit/transfer) to get EIP-712 typed data 2. Owner signs the typed data off-chain 3. Submit signature + typed data to this endpoint 4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner Note: For gas-sponsored deposits via /earn/transfer or /credit/transfer, the owner must first set up a Permit2 allowance using /approve_transfer (once per token).\">\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=\"Prepare gas-sponsored transaction - Compass API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Prepare a gas-sponsored transaction from signed EIP-712 typed data. Submit the owner\u0026#x27;s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast. How gas sponsorship works: 1. Call an endpoint with gas_sponsorship=true (e.g., /earn/transfer, /earn/manage, /credit/transfer) to get EIP-712 typed data 2. Owner signs the typed data off-chain 3. Submit signature + typed data to this endpoint 4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner Note: For gas-sponsored deposits via /earn/transfer or /credit/transfer, the owner must first set up a Permit2 allowance using /approve_transfer (once per token).\">\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/gas-sponsorship/prepare-gas-sponsored-transaction\">\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=Gas+Sponsorship\u0026amp;title=Prepare+gas-sponsored+transaction\u0026amp;description=Prepare+a+gas-sponsored+transaction+from+signed+EIP-712+typed+data.%0A%0ASubmit+the+%60owner%60%27s+off-chain+signature+along+with+the+EIP-712+typed+data+that+was+signed.\u0026amp;theme=3dbf73b4b3dd364abd493b9c\u0026amp;signature=082ea2c9c071be568cf16e0397e118aeb004b171f3c6b62771e185755c8681fc\">\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=\"Prepare gas-sponsored transaction - Compass API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Prepare a gas-sponsored transaction from signed EIP-712 typed data. Submit the owner\u0026#x27;s off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast. How gas sponsorship works: 1. Call an endpoint with gas_sponsorship=true (e.g., /earn/transfer, /earn/manage, /credit/transfer) to get EIP-712 typed data 2. Owner signs the typed data off-chain 3. Submit signature + typed data to this endpoint 4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner Note: For gas-sponsored deposits via /earn/transfer or /credit/transfer, the owner must first set up a Permit2 allowance using /approve_transfer (once per token).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://compasslabs-f07467e0.mintlify.site/_mintlify/api/og/v2?division=Gas+Sponsorship\u0026amp;title=Prepare+gas-sponsored+transaction\u0026amp;description=Prepare+a+gas-sponsored+transaction+from+signed+EIP-712+typed+data.%0A%0ASubmit+the+%60owner%60%27s+off-chain+signature+along+with+the+EIP-712+typed+data+that+was+signed.\u0026amp;theme=3dbf73b4b3dd364abd493b9c\u0026amp;signature=082ea2c9c071be568cf16e0397e118aeb004b171f3c6b62771e185755c8681fc\">\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/gas-sponsorship/prepare-gas-sponsored-transaction\">\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/gas-sponsorship/prepare-gas-sponsored-transaction.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/gas-sponsorship/prepare-gas-sponsored-transaction#webpage\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction\",\"name\":\"Prepare gas-sponsored transaction\",\"description\":\"Prepare a gas-sponsored transaction from signed EIP-712 typed data. Submit the owner's off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast. How gas sponsorship works: 1. Call an endpoint with gas_sponsorship=true (e.g., /earn/transfer, /earn/manage, /credit/transfer) to get EIP-712 typed data 2. Owner signs the typed data off-chain 3. Submit signature + typed data to this endpoint 4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner Note: For gas-sponsored deposits via /earn/transfer or /credit/transfer, the owner must first set up a Permit2 allowance using /approve_transfer (once per token).\",\"dateModified\":\"2026-11-05T13:11:30.156Z\",\"isPartOf\":{\"@id\":\"https://docs.compasslabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Compass API Docs\",\"item\":\"https://docs.compasslabs.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prepare gas-sponsored transaction\",\"item\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction#apireference\",\"headline\":\"Prepare gas-sponsored transaction\",\"name\":\"Prepare gas-sponsored transaction\",\"description\":\"Prepare a gas-sponsored transaction from signed EIP-712 typed data. Submit the owner's off-chain signature along with the EIP-712 typed data that was signed. Returns an unsigned transaction for the sender to sign and broadcast. How gas sponsorship works: 1. Call an endpoint with gas_sponsorship=true (e.g., /earn/transfer, /earn/manage, /credit/transfer) to get EIP-712 typed data 2. Owner signs the typed data off-chain 3. Submit signature + typed data to this endpoint 4. Sender signs and broadcasts the returned transaction, paying gas on behalf of the owner Note: For gas-sponsored deposits via /earn/transfer or /credit/transfer, the owner must first set up a Permit2 allowance using /approve_transfer (once per token).\",\"url\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction#webpage\"},\"dateModified\":\"2026-11-05T13:11:30.156Z\",\"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/gas-sponsorship/prepare-gas-sponsored-transaction.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","description":"Set up a one-time Permit2 allowance for gas-sponsored token transfers.\n\nRequired when using [/earn/transfer](https://docs.compasslabs.ai/v2/api-reference/earn/transfer-tokens-tofrom-account) or [/credit/transfer](https://docs.compasslabs.ai/v2/api-reference/credit/transfer-tokens-tofrom-account) with `gas_sponsorship=true`. This allowance only needs to be set up once per token.\n\n**With gas sponsorship (`gas_sponsorship=true`):**\n- Returns EIP-712 typed data for the owner to sign off-chain\n- Submit signature + typed data to [/prepare](https://docs.compasslabs.ai/v2/api-reference/gas-sponsorship/prepare-gas-sponsored-transaction)\n- Only works for tokens that support EIP-2612 permit (e.g., USDC)\n\nSome tokens, like USDT and WETH, do not support EIP-2612 permit. For these tokens, set `gas_sponsorship=false` to receive an unsigned transaction that the owner must sign, submit, and pay gas for.","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","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":"Prepare gas-sponsored transaction - 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"]}