Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf.
To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token’s own units, and the send is valued at the token’s market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds).
To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is $1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead.
Every send you make, on either network, counts against the account’s spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human.
Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending.
A Firebase callable. Callables wrap the request in {"data": ...} and the reply in {"result": ...}. Send the id_token from /auth as a Bearer token. Free.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Laso Finance API","colors":{"primary":"#3182CE","light":"#63B3ED","dark":"#2B6CB0"},"logo":{"light":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/light.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=bd9f84a4711475d24375fe444b276211","dark":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/dark.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=02b9e95a41760833955f02322dd28520"},"favicon":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/favicon.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=b77639351bc9249b59a562d4ce64ac18","navbar":{"links":[{"href":"mailto:support@laso.finance","label":"Support"},{"icon":"github","href":"https://github.com/LasoFinance/docs","label":"GitHub"}],"primary":{"type":"button","label":"laso.finance","href":"https://laso.finance"}},"footer":{"socials":{"x":"https://x.com/intent/follow?screen_name=lasofinance","github":"https://github.com/LasoFinance/docs"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lasofinance","hasAudioNarration":false,"actualSubdomain":"lasofinance","customDomains":["docs.laso.finance"],"gitSource":{"type":"github","owner":"lasofinance","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4c3c8e34cca49cc96a5f0","collectionId":"2fd8eac6-7cff-411c-894c-a997615a84dc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4c3c8e34cca49cc96a5f0"},"feedback":{"edits":true,"thumbs":true,"issues":true,"agentFeedback":true},"entitlements":{},"buildId":"6ae4c3c8e34cca49cc96a5f0","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":78},{"language":"default","tag":"Guides","count":36},{"language":"default","tag":"Cards","count":20},{"language":"default","tag":"Banking","count":19},{"language":"default","tag":"Agent Wallet","count":11},{"language":"default","tag":"Platform","count":8},{"language":"default","tag":"Spend","count":8},{"language":"default","tag":"Account","count":8},{"language":"default","tag":"Integrations","count":7},{"language":"default","tag":"How We Use","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet","slug":"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet","pageMetadata":{"title":"Send USDC or any token from the managed wallet","description":"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf.\n\nTo send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as `mint`, or `native` for SOL; `getAgentWallet` lists them under `tokens`. Other assets go to Solana addresses only. Their `amount` is in the token's own units, and the send is valued at the token's market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with `agentWalletSwap`, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds).\n\nTo send to Base, set `destinationNetwork` to `base` and pass a `0x` address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. `txHash` is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead.\n\nEvery send you make, on either network, counts against the account's spend limits: it must be under the per-payment limit (see `getAgentSpendLimit`) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with `failed-precondition` before anything is signed. Do not split it into smaller sends to get under a limit; tell your human.\n\nTakes an address, and deliberately **not** an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via `listAddressBook`, say the address back to them before sending.\n\nA Firebase callable. Callables wrap the request in `{\"data\": ...}` and the reply in `{\"result\": ...}`. Send the `id_token` from `/auth` as a Bearer token. Free.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentWalletTransfer","href":"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as \", _jsx(_components.code, {\n children: \"mint\"\n }), \", or \", _jsx(_components.code, {\n children: \"native\"\n }), \" for SOL; \", _jsx(_components.code, {\n children: \"getAgentWallet\"\n }), \" lists them under \", _jsx(_components.code, {\n children: \"tokens\"\n }), \". Other assets go to Solana addresses only. Their \", _jsx(_components.code, {\n children: \"amount\"\n }), \" is in the token’s own units, and the send is valued at the token’s market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with \", _jsx(_components.code, {\n children: \"agentWalletSwap\"\n }), \", or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To send to Base, set \", _jsx(_components.code, {\n children: \"destinationNetwork\"\n }), \" to \", _jsx(_components.code, {\n children: \"base\"\n }), \" and pass a \", _jsx(_components.code, {\n children: \"0x\"\n }), \" address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. \", _jsx(_components.code, {\n children: \"txHash\"\n }), \" is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is $1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every send you make, on either network, counts against the account’s spend limits: it must be under the per-payment limit (see \", _jsx(_components.code, {\n children: \"getAgentSpendLimit\"\n }), \") and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with \", _jsx(_components.code, {\n children: \"failed-precondition\"\n }), \" before anything is signed. Do not split it into smaller sends to get under a limit; tell your human.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Takes an address, and deliberately \", _jsx(_components.strong, {\n children: \"not\"\n }), \" an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via \", _jsx(_components.code, {\n children: \"listAddressBook\"\n }), \", say the address back to them before sending.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A Firebase callable. Callables wrap the request in \", _jsx(_components.code, {\n children: \"{\\\"data\\\": ...}\"\n }), \" and the reply in \", _jsx(_components.code, {\n children: \"{\\\"result\\\": ...}\"\n }), \". Send the \", _jsx(_components.code, {\n children: \"id_token\"\n }), \" from \", _jsx(_components.code, {\n children: \"/auth\"\n }), \" as a Bearer token. Free.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Send USDC or any token from the managed wallet","description":"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf.\n\nTo send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as `mint`, or `native` for SOL; `getAgentWallet` lists them under `tokens`. Other assets go to Solana addresses only. Their `amount` is in the token's own units, and the send is valued at the token's market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with `agentWalletSwap`, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds).\n\nTo send to Base, set `destinationNetwork` to `base` and pass a `0x` address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. `txHash` is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead.\n\nEvery send you make, on either network, counts against the account's spend limits: it must be under the per-payment limit (see `getAgentSpendLimit`) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with `failed-precondition` before anything is signed. Do not split it into smaller sends to get under a limit; tell your human.\n\nTakes an address, and deliberately **not** an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via `listAddressBook`, say the address back to them before sending.\n\nA Firebase callable. Callables wrap the request in `{\"data\": ...}` and the reply in `{\"result\": ...}`. Send the `id_token` from `/auth` as a Bearer token. Free.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentWalletTransfer","href":"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"agentWalletTransfer","summary":"Send USDC or any token from the managed wallet","tags":["Agent Wallet"],"description":"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf.\n\nTo send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as `mint`, or `native` for SOL; `getAgentWallet` lists them under `tokens`. Other assets go to Solana addresses only. Their `amount` is in the token's own units, and the send is valued at the token's market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with `agentWalletSwap`, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds).\n\nTo send to Base, set `destinationNetwork` to `base` and pass a `0x` address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. `txHash` is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead.\n\nEvery send you make, on either network, counts against the account's spend limits: it must be under the per-payment limit (see `getAgentSpendLimit`) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with `failed-precondition` before anything is signed. Do not split it into smaller sends to get under a limit; tell your human.\n\nTakes an address, and deliberately **not** an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via `listAddressBook`, say the address back to them before sending.\n\nA Firebase callable. Callables wrap the request in `{\"data\": ...}` and the reply in `{\"result\": ...}`. Send the `id_token` from `/auth` as a Bearer token. Free.","security":["23696e6f-5929-4ef5-8b6d-91905f0f0d05"],"requestBody":"320c5dca-4e99-4fb9-8617-8dd527cad38b","responses":{"200":"0fd60671-cd1c-4086-a567-aef6397a10fd","400":"b914dea0-67de-405d-a26c-6e0a1d84f1ed","401":"860f77e8-a0fb-4299-bb29-510bee2197bb"},"method":"post","type":"path","servers":["35507168-cc51-420d-af29-f8a3dff1b73b"],"path":"/agentWalletTransfer","baseUrlOptions":["https://laso.finance"],"title":"Send USDC or any token from the managed wallet","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["userId","destinationAddress","amount"],"properties":{"userId":{"type":"string","description":"The Laso user id (the `usr_...` value from /auth).","example":"usr_7aff81763cae58c936aa6de67dd5a95e","isRequired":true,"uniqueKey":"data.userId","typeLabel":"string"},"destinationAddress":{"type":"string","description":"The recipient's address: a Solana address, or a `0x` address when `destinationNetwork` is `base`.","example":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","isRequired":true,"uniqueKey":"data.destinationAddress","typeLabel":"string"},"amount":{"type":"string","description":"Decimal string in the asset's own units (USDC unless `mint` is set), not atomic units.","example":"5.50","isRequired":true,"uniqueKey":"data.amount","typeLabel":"string"},"destinationNetwork":{"type":"string","enum":["solana","base"],"default":"solana","description":"The chain `destinationAddress` is on. `base` is delivered by bridging over CCTP.","uniqueKey":"data.destinationNetwork","typeLabel":"enum\u003cstring>"},"mint":{"type":"string","description":"The asset to send: an SPL token mint address, or `native` for SOL. Omit for USDC. Solana destinations only.","example":"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","uniqueKey":"data.mint","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"userId":"usr_7aff81763cae58c936aa6de67dd5a95e","destinationAddress":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"5.50","destinationNetwork":"solana","mint":"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"0fd60671-cd1c-4086-a567-aef6397a10fd":{"description":"The `transferId`, `txHash`, `destinationAddress`, and `destinationNetwork`.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","uniqueKey":"result","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"result":{}}}},"exampleType":"generated"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"generated"},"b914dea0-67de-405d-a26c-6e0a1d84f1ed":{"description":"A required field is missing or invalid.","headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"860f77e8-a0fb-4299-bb29-510bee2197bb":{"description":"Missing, invalid, or expired Bearer token.","headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"23696e6f-5929-4ef5-8b6d-91905f0f0d05":{"BearerAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"35507168-cc51-420d-af29-f8a3dff1b73b":{"url":"https://laso.finance","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Authorization","type":"string","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"lasofinance","siteName":"Laso Finance API","title":"Send USDC or any token from the managed wallet - Laso Finance API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T16:21:32.296Z","originalFileLocation":"api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf. To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token\u0026#x27;s own units, and the send is valued at the token\u0026#x27;s market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds). To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead. Every send you make, on either network, counts against the account\u0026#x27;s spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human. Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending. A Firebase callable. Callables wrap the request in {\u0026quot;data\u0026quot;: ...} and the reply in {\u0026quot;result\u0026quot;: ...}. Send the id_token from /auth as a Bearer token. Free.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Laso Finance API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send USDC or any token from the managed wallet - Laso Finance API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf. To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token\u0026#x27;s own units, and the send is valued at the token\u0026#x27;s market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds). To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead. Every send you make, on either network, counts against the account\u0026#x27;s spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human. Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending. A Firebase callable. Callables wrap the request in {\u0026quot;data\u0026quot;: ...} and the reply in {\u0026quot;result\u0026quot;: ...}. Send the id_token from /auth as a Bearer token. Free.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Laso Finance API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lasofinance.mintlify.app/_mintlify/api/og/v2?division=Agent+Wallet\u0026amp;title=Send+USDC+or+any+token+from+the+managed+wallet\u0026amp;description=Moves+USDC+out+of+the+managed+wallet+to+any+Solana+address%2C+or+to+any+USDC+address+on+Base.+Laso+signs+on+your+behalf.%0A%0ATo+send+any+other+asset+the+wallet+holds\u0026amp;theme=98f9ba75e7b3eeb2c36a661c\u0026amp;signature=7c75667cfc8dd076f16bf949f33f5657c84fe8a80cc979abc78b4aea613de3bb\">\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=\"Send USDC or any token from the managed wallet - Laso Finance API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf. To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token\u0026#x27;s own units, and the send is valued at the token\u0026#x27;s market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds). To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead. Every send you make, on either network, counts against the account\u0026#x27;s spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human. Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending. A Firebase callable. Callables wrap the request in {\u0026quot;data\u0026quot;: ...} and the reply in {\u0026quot;result\u0026quot;: ...}. Send the id_token from /auth as a Bearer token. Free.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lasofinance.mintlify.app/_mintlify/api/og/v2?division=Agent+Wallet\u0026amp;title=Send+USDC+or+any+token+from+the+managed+wallet\u0026amp;description=Moves+USDC+out+of+the+managed+wallet+to+any+Solana+address%2C+or+to+any+USDC+address+on+Base.+Laso+signs+on+your+behalf.%0A%0ATo+send+any+other+asset+the+wallet+holds\u0026amp;theme=98f9ba75e7b3eeb2c36a661c\u0026amp;signature=7c75667cfc8dd076f16bf949f33f5657c84fe8a80cc979abc78b4aea613de3bb\">\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/lasofinance/BdNprig5jTangfgN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Laso Finance API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3182CE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.laso.finance/#organization\",\"name\":\"Laso Finance API\",\"url\":\"https://docs.laso.finance\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/light.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=bd9f84a4711475d24375fe444b276211\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.laso.finance#website\",\"name\":\"Laso Finance API\",\"url\":\"https://docs.laso.finance\",\"publisher\":{\"@id\":\"https://docs.laso.finance/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet#webpage\",\"url\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet\",\"name\":\"Send USDC or any token from the managed wallet\",\"description\":\"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf. To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token's own units, and the send is valued at the token's market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds). To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\\\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead. Every send you make, on either network, counts against the account's spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human. Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending. A Firebase callable. Callables wrap the request in {\\\"data\\\": ...} and the reply in {\\\"result\\\": ...}. Send the id_token from /auth as a Bearer token. Free.\",\"dateModified\":\"2026-10-30T16:21:32.296Z\",\"isPartOf\":{\"@id\":\"https://docs.laso.finance#website\"},\"breadcrumb\":{\"@id\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agent Wallet\",\"item\":\"https://docs.laso.finance/api-reference/agent-wallet/exchange-an-api-key-for-a-session\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Send USDC or any token from the managed wallet\",\"item\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet#apireference\",\"headline\":\"Send USDC or any token from the managed wallet\",\"name\":\"Send USDC or any token from the managed wallet\",\"description\":\"Moves USDC out of the managed wallet to any Solana address, or to any USDC address on Base. Laso signs on your behalf. To send any other asset the wallet holds on Solana (USDT, SOL, any SPL or Token-2022 token), pass its mint as mint, or native for SOL; getAgentWallet lists them under tokens. Other assets go to Solana addresses only. Their amount is in the token's own units, and the send is valued at the token's market price for your spend limits; a token with no price cannot be sent by an agent (swap it to USDC with agentWalletSwap, or ask your human). If the recipient has no account for the token yet, creating one costs a small rent fee charged in USDC on top, so the wallet needs that much USDC. It draws on the whole balance: if the Solana side is short, the difference is pulled back from Base first (usually about 15 seconds). To send to Base, set destinationNetwork to base and pass a 0x address. The managed wallet is a Solana wallet, so Laso bridges the USDC over CCTP and it lands as native USDC on Base, usually within a minute. txHash is the Solana transaction out of the managed wallet, not the Base delivery. The minimum is \\\\$1. The recipient receives the amount less a 0.01% bridge fee. If the bridge fails, nothing is burned and the amount is credited to your Laso account balance instead. Every send you make, on either network, counts against the account's spend limits: it must be under the per-payment limit (see getAgentSpendLimit) and fit in what is left of the rolling 24-hour limit, which payments, sends, and withdrawals all draw on. A send over either is refused with failed-precondition before anything is signed. Do not split it into smaller sends to get under a limit; tell your human. Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending. A Firebase callable. Callables wrap the request in {\\\"data\\\": ...} and the reply in {\\\"result\\\": ...}. Send the id_token from /auth as a Bearer token. Free.\",\"url\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet\",\"mainEntityOfPage\":{\"@id\":\"https://docs.laso.finance/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet#webpage\"},\"dateModified\":\"2026-10-30T16:21:32.296Z\",\"publisher\":{\"@id\":\"https://docs.laso.finance/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.laso.finance#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Laso Finance API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Laso Finance API","nav":{"global":{},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/what-is-laso"}]},{"tab":"API Reference","groups":[{"group":"Account","pages":[{"title":"Start a signup for a human with no Laso account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /signup","href":"/api-reference/start-a-signup-for-a-human-with-no-laso-account"},{"title":"Wait for your human to finish the signup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /signup-status","href":"/api-reference/wait-for-your-human-to-finish-the-signup"},{"title":"Get auth credentials","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /auth","href":"/api-reference/get-auth-credentials"},{"title":"Refresh an ID token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /auth","href":"/api-reference/refresh-an-id-token"},{"title":"Refresh an ID token (deprecated)","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /refresh","href":"/api-reference/refresh-an-id-token-deprecated"},{"title":"Get account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-account-balance","href":"/api-reference/get-account-balance"},{"title":"Get a login link for the web dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-auth-link","href":"/api-reference/get-a-login-link-for-the-web-dashboard"},{"title":"Send feedback about the API","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /feedback","href":"/api-reference/send-feedback-about-the-api"}]},{"group":"Cards","pages":[{"title":"Order a USA prepaid card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card","href":"/api-reference/order-a-usa-prepaid-card"},{"title":"Get card details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-data","href":"/api-reference/get-card-details"},{"title":"Create a reloadable card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /create-reloadable-card","href":"/api-reference/cards/create-a-reloadable-card"},{"title":"List reloadable card transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /list-card-transactions","href":"/api-reference/cards/list-reloadable-card-transactions"},{"title":"Get the reloadable card deposit address","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-deposit-address","href":"/api-reference/cards/get-the-reloadable-card-deposit-address"},{"title":"Check the card issuer link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-issuer-status","href":"/api-reference/cards/check-the-card-issuer-link"},{"title":"Send the account holder a code to link the card issuer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /start-card-issuer-link","href":"/api-reference/cards/send-the-account-holder-a-code-to-link-the-card-issuer"},{"title":"Complete the card issuer link with the account holder's code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /verify-card-issuer-link","href":"/api-reference/cards/complete-the-card-issuer-link-with-the-account-holders-code"},{"title":"Unlink the card issuer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /disconnect-card-issuer","href":"/api-reference/cards/unlink-the-card-issuer"},{"title":"List the holder's saved cards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-saved-cards","href":"/api-reference/cards/list-the-holders-saved-cards"},{"title":"Get a link for the holder to save their own card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /create-saved-card-link","href":"/api-reference/cards/get-a-link-for-the-holder-to-save-their-own-card"},{"title":"Shop and pay with the holder's saved card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /buy-with-saved-card","href":"/api-reference/cards/shop-and-pay-with-the-holders-saved-card"},{"title":"Read a purchase turn that was still running","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-purchase-turn","href":"/api-reference/cards/read-a-purchase-turn-that-was-still-running"},{"title":"Read a purchase conversation's orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-purchase-conversation","href":"/api-reference/cards/read-a-purchase-conversations-orders"},{"title":"Load a reloadable card balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /fund-card-balance","href":"/api-reference/load-a-reloadable-card-balance"},{"title":"Top up a reloadable card from the account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /fund-card-from-account-balance","href":"/api-reference/cards/top-up-a-reloadable-card-from-the-account-balance"},{"title":"Withdraw from a reloadable card balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw-card-balance","href":"/api-reference/cards/withdraw-from-a-reloadable-card-balance"},{"title":"Trigger a card data refresh","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /refresh-card-data","href":"/api-reference/trigger-a-card-data-refresh"},{"title":"Order an international prepaid card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /order-intl-card","href":"/api-reference/order-an-international-prepaid-card"},{"title":"Cancel a queued international card order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /cancel-intl-order","href":"/api-reference/cancel-a-queued-international-card-order"}]},{"group":"Gift Cards","pages":[{"title":"Search the gift card catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /search-gift-cards","href":"/api-reference/search-the-gift-card-catalog"},{"title":"Order a gift card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /order-gift-card","href":"/api-reference/order-a-gift-card"}]},{"group":"Push to Card","pages":[{"title":"Send money to a debit card (USD, EUR, GBP)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-push-to-card","href":"/api-reference/send-money-to-a-debit-card-usd-eur-gbp"}]},{"group":"Payments","pages":[{"title":"Send a payment via Venmo or PayPal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /send-payment","href":"/api-reference/send-a-payment-via-venmo-or-paypal"},{"title":"Check Venmo and PayPal payout status (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-payment-status","href":"/api-reference/check-venmo-and-paypal-payout-status-free"},{"title":"List saved Venmo and PayPal recipients (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /payment-recipients","href":"/api-reference/list-saved-venmo-and-paypal-recipients-free"},{"title":"Rename or archive a saved recipient (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /payment-recipients","href":"/api-reference/rename-or-archive-a-saved-recipient-free"},{"title":"Remove a saved recipient (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /payment-recipients","href":"/api-reference/remove-a-saved-recipient-free"}]},{"group":"Address Book","pages":[{"title":"List saved recipients","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /listAddressBook","href":"/api-reference/list-saved-recipients"},{"title":"Save or rename a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /saveAddressBookEntry","href":"/api-reference/save-or-rename-a-recipient"},{"title":"Remove a saved recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /deleteAddressBookEntry","href":"/api-reference/remove-a-saved-recipient"}]},{"group":"Banking","pages":[{"title":"Send dollars to a bank account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /send-bank-payment","href":"/api-reference/send-dollars-to-a-bank-account"},{"title":"List bank payout recipients (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /bank-recipients","href":"/api-reference/list-bank-payout-recipients-free"},{"title":"Create the banking profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingProfile","href":"/api-reference/banking/create-the-banking-profile"},{"title":"Check the banking profile status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingProfileStatus","href":"/api-reference/banking/check-the-banking-profile-status"},{"title":"Read the banking application","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingApplication","href":"/api-reference/banking/read-the-banking-application"},{"title":"Answer application questions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /updateBankingApplicationDetails","href":"/api-reference/banking/answer-application-questions"},{"title":"Upload a proof-of-address document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /uploadBankingDocument","href":"/api-reference/banking/upload-a-proof-of-address-document"},{"title":"Submit the application","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /submitBankingApplication","href":"/api-reference/banking/submit-the-application"},{"title":"Open an on-ramp or off-ramp account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingAccount","href":"/api-reference/banking/open-an-on-ramp-or-off-ramp-account"},{"title":"List banking accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingAccounts","href":"/api-reference/banking/list-banking-accounts"},{"title":"Create a payout recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingRecipient","href":"/api-reference/banking/create-a-payout-recipient"},{"title":"Attach bank details to a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /addBankingDestination","href":"/api-reference/banking/attach-bank-details-to-a-recipient"},{"title":"List recipients and destinations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingRecipients","href":"/api-reference/banking/list-recipients-and-destinations"},{"title":"Rename a destination","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /updateBankingDestination","href":"/api-reference/banking/rename-a-destination"},{"title":"Delete a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /deleteBankingRecipient","href":"/api-reference/banking/delete-a-recipient"},{"title":"Read one transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingTransaction","href":"/api-reference/banking/read-one-transaction"},{"title":"List transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingTransactions","href":"/api-reference/banking/list-transactions"}]},{"group":"Agent Wallet","pages":[{"title":"Exchange an API key for a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentAuth","href":"/api-reference/agent-wallet/exchange-an-api-key-for-a-session"},{"title":"Announce that you connected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /announceAgentConnection","href":"/api-reference/agent-wallet/announce-that-you-connected"},{"title":"Read the managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /getAgentWallet","href":"/api-reference/agent-wallet/read-the-managed-wallet"},{"title":"Pay an x402 endpoint from the managed wallet","description":"Settles an x402 payment on your behalf, so you never build a payment header or hold a private key. Takes either a Laso `route` name or the full `url` of any external x402 endpoint on the open web.\n\nFor an external `url`, pin `maxAmountUsdc` plus optionally `expectedAsset` / `expectedNetwork` / `expectedPayTo`; a challenge that exceeds or does not match them is refused.\n\nAn external endpoint can settle in USDC on Solana or on Base mainnet (`eip155:8453`), and both are paid from the same balance with nothing to set up. When the Base side cannot cover a Base payment, Laso moves what is needed over from Solana just before signing (usually under 10 seconds, 0.075% of the amount moved). No ETH is needed for gas. Other EVM networks are refused. If an endpoint offers both, pin `expectedNetwork` to choose. Laso routes are paid on Solana; if the Solana side cannot cover one, the difference is pulled back from Base first, so USDC on either side pays for them.\n\nThe call succeeds as long as the request went out, so check the returned `status` — it is the endpoint's status, not the callable's.\n\nA Firebase callable. Callables wrap the request in `{\"data\": ...}` and the reply in `{\"result\": ...}`. Send the `id_token` from `/auth` as a Bearer token. Free.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentX402Pay","href":"/api-reference/agent-wallet/pay-an-x402-endpoint-from-the-managed-wallet"},{"title":"Send USDC or any token from the managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentWalletTransfer","href":"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet"},{"title":"Read the spend limits","description":"Returns the account owner's two limits and where the rolling 24-hour window stands: `maxPerPaymentUsdc` with the `min`, `max`, and `default` bounds it can be set within, `maxPerDayUsdc`, what has been spent and is left of the 24 hours, and `maxPaymentNowUsdc`, the most one payment may cost right now. The limit defaults to \\$1,000 and ranges from \\$1 to \\$50,000. It applies to every payment `agentX402Pay` makes, Laso routes and external `url` endpoints alike.\n\nCheck an amount against `maxPaymentNowUsdc` **before** attempting a payment rather than waiting to be refused. Compare the fee-inclusive total, since fees are added on top of the amount you request. Read-only to an agent: only the account owner can change the limit, from the dashboard. If a payment would exceed it, do not split it into smaller payments. Stop and tell your human.\n\nA Firebase callable. Callables wrap the request in `{\"data\": ...}` and the reply in `{\"result\": ...}`. Send the `id_token` from `/auth` as a Bearer token. Free.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getAgentSpendLimit","href":"/api-reference/agent-wallet/read-the-spend-limits"},{"title":"Provision a managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createAgentWallet","href":"/api-reference/agent-wallet/provision-a-managed-wallet"},{"title":"Issue an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createAgentApiKey","href":"/api-reference/agent-wallet/issue-an-api-key"},{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listAgentApiKeys","href":"/api-reference/agent-wallet/list-api-keys"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /revokeAgentApiKey","href":"/api-reference/agent-wallet/revoke-an-api-key"},{"title":"Revoke all unused API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /revokeUnusedAgentApiKeys","href":"/api-reference/agent-wallet/revoke-all-unused-api-keys"}]},{"group":"Merchants","pages":[{"title":"Search merchant spend data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /search-merchants","href":"/api-reference/search-merchant-spend-data"}]},{"group":"Pricing and coverage","pages":[{"title":"Get the fee schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-pricing","href":"/api-reference/get-the-fee-schedule"},{"title":"Get supported countries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-supported-countries","href":"/api-reference/get-supported-countries"}]},{"group":"Verification (optional)","pages":[{"title":"Get KYC verification status (optional)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-kyc-status","href":"/api-reference/verification-optional/get-kyc-verification-status-optional"},{"title":"Get a KYC verification link (optional)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-kyc-link","href":"/api-reference/verification-optional/get-a-kyc-verification-link-optional"}]},{"group":"Notifications","pages":[{"title":"Register a notification webhook (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /register-webhook","href":"/api-reference/notifications/register-a-notification-webhook-free"},{"title":"Get webhook registration \u0026 delivery health (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-webhook","href":"/api-reference/notifications/get-webhook-registration-\u0026-delivery-health-free"},{"title":"Delete the notification webhook (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /delete-webhook","href":"/api-reference/notifications/delete-the-notification-webhook-free"}]},{"group":"Withdrawals","pages":[{"title":"Withdraw from account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw","href":"/api-reference/withdraw-from-account-balance"},{"title":"Get withdrawal statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-withdrawal-status","href":"/api-reference/get-withdrawal-statuses"}]},{"group":"Discovery","pages":[{"title":"Get the current docs version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /version","href":"/api-reference/get-the-current-docs-version"}]}]},{"tab":"How We Use","pages":[{"title":"How We Use","href":"/how-we-use/automated-payroll"}]},{"tab":"Starter Template (Reference)","hidden":true,"pages":[{"title":"Starter Template (Reference)","href":"/quickstart"}]}]},"basePath":"","title":"Send USDC or any token from the managed wallet - Laso Finance API","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}