Use this endpoint to show users expected costs before they confirm a transfer. It quotes exactly
what the program will charge: the tier comes from the on-chain fee schedule and the Raydium pool price
the program reads, applied to the post-fee hop amount. See Pricing & revenue share.
The estimate includes the compliance screening fee. On networks where the compliance gate is
enabled (mainnet today), /prepare collects 0.002 SOL for each wallet the route screens. The
estimate returns that amount as sol.breakdown.screeningFeeLamports, and it is already counted in
requiredSolUpFrontLamports. Pass the transfer’s arrivalSeconds so payouts that run late, and are
screened again, are priced too. It is not refunded. See Compliance & screening.
The arrivalSeconds you will create the transfer with (60 to 2,592,000, i.e. 30 days). It prices
the screening of payouts that run more than about 6 hours after the route starts, which are
screened again. Omitted, the estimate assumes they run within that window. Not with route.
Price, and check, a custom route: the same route you will send to create.
Every rule that does not need the sender’s, recipient’s or destinations’ addresses is checked here,
so this is a free dry run (MH_018 lists every problem at once). Add destinationCount for a route
paying several destinations.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MultiHopper","colors":{"primary":"#7E7F83","light":"#FBFF69","dark":"#7E7F83"},"logo":{"light":"https://mintcdn.com/multihopper/KSAYi9GJphQC0KJt/logo/wordmark-dark-alt.png?fit=max\u0026auto=format\u0026n=KSAYi9GJphQC0KJt\u0026q=85\u0026s=9e4e3c017c9067cd8d58f31d419afd03","dark":"https://mintcdn.com/multihopper/KSAYi9GJphQC0KJt/logo/dark.png?fit=max\u0026auto=format\u0026n=KSAYi9GJphQC0KJt\u0026q=85\u0026s=bf3cf9d38d1c0c7684e0331bf5b87b1a"},"favicon":"https://mintcdn.com/multihopper/KSAYi9GJphQC0KJt/favicon.png?fit=max\u0026auto=format\u0026n=KSAYi9GJphQC0KJt\u0026q=85\u0026s=306ab6d5602b40d14c095c527f43901d","navbar":{"links":[{"href":"mailto:support@multihopper.com","label":"Support"}],"primary":{"type":"button","label":"Launch App","href":"https://multihopper.com"}},"footer":{"socials":{"github":"https://github.com/MultiHopper1"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"App","icon":"arrow-up-right-from-square","href":"https://multihopper.com"},{"anchor":"GitHub","icon":"github","href":"https://github.com/MultiHopper1"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"multihopper","hasAudioNarration":false,"actualSubdomain":"multihopper","customDomains":["dev-docs.multihopper.com"],"gitSource":{"type":"github","owner":"multihopper1","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae18c27a5bfb7f192864578","collectionId":"58fbc54c-92d4-49fc-9ea7-34908b5cde8a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae18c27a5bfb7f192864578"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae18c27a5bfb7f192864578","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Overview","count":17},{"language":"default","tag":"API Reference","count":14},{"language":"default","tag":"Concepts","count":7},{"language":"default","tag":"Transfers","count":6},{"language":"default","tag":"Webhooks","count":4},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Protocol","count":3},{"language":"default","tag":"Custom routes","count":2},{"language":"default","tag":"API documentation","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/transfers/estimate","slug":"/api-reference/transfers/estimate","pageMetadata":{"title":"Estimate Fees","description":"Estimate fees for a potential transfer without creating one","api":"POST /api/v1/transfers/estimate","href":"/api-reference/transfers/estimate"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Estimate fees for a potential transfer without creating one\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Note,ParamField,ResponseField}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this endpoint to show users expected costs before they confirm a transfer. It quotes exactly\nwhat the program will charge: the tier comes from the on-chain fee schedule and the Raydium pool price\nthe program reads, applied to the post-fee hop amount. See `,_jsx(_components.a,{href:`/concepts/pricing`,children:`Pricing \u0026 revenue share`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The estimate includes the compliance screening fee.`}),` On networks where the compliance gate is\nenabled (mainnet today), `,_jsx(_components.code,{children:`/prepare`}),` collects 0.002 SOL for each wallet the route screens. The\nestimate returns that amount as `,_jsx(_components.code,{children:`sol.breakdown.screeningFeeLamports`}),`, and it is already counted in\n`,_jsx(_components.code,{children:`requiredSolUpFrontLamports`}),`. Pass the transfer’s `,_jsx(_components.code,{children:`arrivalSeconds`}),` so payouts that run late, and are\nscreened again, are priced too. It is not refunded. See `,_jsx(_components.a,{href:`/concepts/compliance`,children:`Compliance \u0026 screening`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request body`}),`\n`,_jsx(ParamField,{body:`tokenMint`,type:`string`,required:true,id:`param-token-mint`,children:_jsx(_components.p,{children:`The Solana mint address of the token to transfer.`})}),`\n`,_jsx(ParamField,{body:`amountRaw`,type:`string`,required:true,id:`param-amount-raw`,children:_jsxs(_components.p,{children:[`Raw token amount as a string (e.g. `,_jsx(_components.code,{children:`\"1000000000\"`}),` for 1 SOL).`]})}),`\n`,_jsx(ParamField,{body:`tokenDecimals`,type:`integer`,default:`6`,id:`param-token-decimals`,children:_jsx(_components.p,{children:`Decimal precision of the token. Defaults to 6.`})}),`\n`,_jsx(ParamField,{body:`hops`,type:`integer`,default:`7`,id:`param-hops`,children:_jsxs(_components.p,{children:[`Number of intermediate abstraction hops. Range: 3–10. Defaults to your integration setting (7). Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`destinationCount`,type:`integer`,id:`param-destination-count`,children:_jsxs(_components.p,{children:[`Price a `,_jsx(_components.a,{href:`/guides/multi-destination`,children:`multi-destination`}),` transfer to this many destinations (1–20).\nAdds the payout accounts’ rent and transactions to `,_jsx(_components.code,{children:`sol`}),`.`]})}),`\n`,_jsx(ParamField,{body:`arrivalSeconds`,type:`integer`,id:`param-arrival-seconds`,children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`arrivalSeconds`}),` you will create the transfer with (60 to 2,592,000, i.e. 30 days). It prices\nthe screening of payouts that run more than about 6 hours after the route starts, which are\nscreened again. Omitted, the estimate assumes they run within that window. Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`route`,type:`object`,id:`param-route`,children:_jsxs(_components.p,{children:[`Price, and check, a `,_jsx(_components.a,{href:`/guides/custom-routes`,children:`custom route`}),`: the same `,_jsx(_components.code,{children:`route`}),` you will send to create.\nEvery rule that does not need the sender’s, recipient’s or destinations’ addresses is checked here,\nso this is a free dry run (`,_jsx(_components.code,{children:`MH_018`}),` lists every problem at once). Add `,_jsx(_components.code,{children:`destinationCount`}),` for a route\npaying several destinations.`]})}),`\n`,_jsx(ParamField,{body:`routeTemplateId`,type:`integer`,id:`param-route-template-id`,children:_jsxs(_components.p,{children:[`Price, and check, a saved `,_jsx(_components.a,{href:`/api-reference/route-templates`,children:`route template`}),` as if its hops were sent\nas `,_jsx(_components.code,{children:`route`}),`. Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`tokenPriceUsd`,type:`number`,id:`param-token-price-usd`,children:_jsxs(_components.p,{children:[`Fallback USD price, used `,_jsx(_components.strong,{children:`only`}),` when the on-chain pool price can’t be read (`,_jsx(_components.code,{children:`priceSource`}),` tells\nyou which was used). The chain never uses it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`tier`,type:`string`,id:`param-tier`,children:[`Fee tier the chain will apply (e.g. `,_jsx(_components.code,{children:`\"tier_2\"`}),`).`]}),`\n`,_jsx(ResponseField,{name:`tierIndex`,type:`integer`,id:`param-tier-index`,children:`Index into the on-chain fee schedule.`}),`\n`,_jsx(ResponseField,{name:`percentFeeBps`,type:`integer`,id:`param-percent-fee-bps`,children:`Percent fee in basis points.`}),`\n`,_jsxs(ResponseField,{name:`percentFeeRaw`,type:`string`,id:`param-percent-fee-raw`,children:[_jsx(_components.code,{children:`floor(hopAmountRaw × percentFeeBps / 10000)`}),`, in token base units.`]}),`\n`,_jsx(ResponseField,{name:`flatFeeLamportsPerHop`,type:`integer`,id:`param-flat-fee-lamports-per-hop`,children:`The tier’s per-hop charge, in lamports.`}),`\n`,_jsx(ResponseField,{name:`flatFeeLamportsPerRoute`,type:`integer`,id:`param-flat-fee-lamports-per-route`,children:`The tier’s once-per-route charge, in lamports.`}),`\n`,_jsxs(ResponseField,{name:`totalFlatFeeLamports`,type:`integer`,id:`param-total-flat-fee-lamports`,children:[_jsx(_components.code,{children:`flatFeeLamportsPerRoute + flatFeeLamportsPerHop × hops`}),`.`]}),`\n`,_jsx(ResponseField,{name:`integratorPercentShare`,type:`string`,id:`param-integrator-percent-share`,children:`Your half of the percent fee, paid to your rewards wallet on chain.`}),`\n`,_jsxs(ResponseField,{name:`integratorFlatShare`,type:`integer`,id:`param-integrator-flat-share`,children:[`Always `,_jsx(_components.code,{children:`0`}),`: the per-hop charge is not shared with integrators.`]}),`\n`,_jsx(ResponseField,{name:`hopAmountRaw`,type:`string`,id:`param-hop-amount-raw`,children:`What the recipient (or all destinations together) receives.`}),`\n`,_jsxs(ResponseField,{name:`usdEquivalent`,type:`number`,id:`param-usd-equivalent`,children:[`USD value of `,_jsx(_components.code,{children:`amountRaw`}),`, for display.`]}),`\n`,_jsx(ResponseField,{name:`usdValueMicros`,type:`string`,id:`param-usd-value-micros`,children:`The program’s USD value of the hop amount (× 10⁶): what selects the tier.`}),`\n`,_jsxs(ResponseField,{name:`priceSource`,type:`string`,id:`param-price-source`,children:[_jsx(_components.code,{children:`onchain_pool`}),` (exact), or `,_jsx(_components.code,{children:`override`}),` / `,_jsx(_components.code,{children:`oracle`}),` (estimate; re-checked at `,_jsx(_components.code,{children:`/prepare`}),`).`]}),`\n`,_jsxs(ResponseField,{name:`cappedAtTierBoundary`,type:`boolean`,id:`param-capped-at-tier-boundary`,children:[_jsx(_components.code,{children:`true`}),` when the hop was capped at a tier boundary; the wallet spends slightly less than `,_jsx(_components.code,{children:`amountRaw`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`tokens`,type:`object`,id:`param-tokens`,children:[_jsx(_components.code,{children:`amountRaw`}),`, `,_jsx(_components.code,{children:`feeRaw`}),`, `,_jsx(_components.code,{children:`netDeliveredRaw`}),` (= `,_jsx(_components.code,{children:`hopAmountRaw`}),`), `,_jsx(_components.code,{children:`decimals`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`sol`,type:`object`,id:`param-sol`,children:[_jsx(_components.code,{children:`requiredSolUpFrontLamports`}),`, `,_jsx(_components.code,{children:`minTransferAmountLamports`}),`, `,_jsx(_components.code,{children:`breakdown`}),` (incl. `,_jsx(_components.code,{children:`dispersionRentLamports`}),`), `,_jsx(_components.code,{children:`refundableLamports`}),`, `,_jsx(_components.code,{children:`netCostLamports`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`route`,type:`object`,id:`param-route-1`,children:[`With `,_jsx(_components.code,{children:`route`}),` only: `,_jsx(_components.code,{children:`hopCount`}),` (hops on chain, the recipient included) and `,_jsx(_components.code,{children:`arrivalSeconds`}),` (the sum of the waits).`]}),`\n`,_jsx(ResponseField,{name:`isTestMode`,type:`boolean`,id:`param-is-test-mode`,children:`Whether this estimate was made with a test-mode API key.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Estimate Fees","description":"Estimate fees for a potential transfer without creating one","api":"POST /api/v1/transfers/estimate","href":"/api-reference/transfers/estimate"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,ParamField,RequestExample,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this endpoint to show users expected costs before they confirm a transfer. It quotes exactly\nwhat the program will charge: the tier comes from the on-chain fee schedule and the Raydium pool price\nthe program reads, applied to the post-fee hop amount. See `,_jsx(_components.a,{href:`/concepts/pricing`,children:`Pricing \u0026 revenue share`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The estimate includes the compliance screening fee.`}),` On networks where the compliance gate is\nenabled (mainnet today), `,_jsx(_components.code,{children:`/prepare`}),` collects 0.002 SOL for each wallet the route screens. The\nestimate returns that amount as `,_jsx(_components.code,{children:`sol.breakdown.screeningFeeLamports`}),`, and it is already counted in\n`,_jsx(_components.code,{children:`requiredSolUpFrontLamports`}),`. Pass the transfer’s `,_jsx(_components.code,{children:`arrivalSeconds`}),` so payouts that run late, and are\nscreened again, are priced too. It is not refunded. See `,_jsx(_components.a,{href:`/concepts/compliance`,children:`Compliance \u0026 screening`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request body`}),`\n`,_jsx(ParamField,{body:`tokenMint`,type:`string`,required:true,id:`param-token-mint`,children:_jsx(_components.p,{children:`The Solana mint address of the token to transfer.`})}),`\n`,_jsx(ParamField,{body:`amountRaw`,type:`string`,required:true,id:`param-amount-raw`,children:_jsxs(_components.p,{children:[`Raw token amount as a string (e.g. `,_jsx(_components.code,{children:`\"1000000000\"`}),` for 1 SOL).`]})}),`\n`,_jsx(ParamField,{body:`tokenDecimals`,type:`integer`,default:`6`,id:`param-token-decimals`,children:_jsx(_components.p,{children:`Decimal precision of the token. Defaults to 6.`})}),`\n`,_jsx(ParamField,{body:`hops`,type:`integer`,default:`7`,id:`param-hops`,children:_jsxs(_components.p,{children:[`Number of intermediate abstraction hops. Range: 3–10. Defaults to your integration setting (7). Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`destinationCount`,type:`integer`,id:`param-destination-count`,children:_jsxs(_components.p,{children:[`Price a `,_jsx(_components.a,{href:`/guides/multi-destination`,children:`multi-destination`}),` transfer to this many destinations (1–20).\nAdds the payout accounts’ rent and transactions to `,_jsx(_components.code,{children:`sol`}),`.`]})}),`\n`,_jsx(ParamField,{body:`arrivalSeconds`,type:`integer`,id:`param-arrival-seconds`,children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`arrivalSeconds`}),` you will create the transfer with (60 to 2,592,000, i.e. 30 days). It prices\nthe screening of payouts that run more than about 6 hours after the route starts, which are\nscreened again. Omitted, the estimate assumes they run within that window. Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`route`,type:`object`,id:`param-route`,children:_jsxs(_components.p,{children:[`Price, and check, a `,_jsx(_components.a,{href:`/guides/custom-routes`,children:`custom route`}),`: the same `,_jsx(_components.code,{children:`route`}),` you will send to create.\nEvery rule that does not need the sender’s, recipient’s or destinations’ addresses is checked here,\nso this is a free dry run (`,_jsx(_components.code,{children:`MH_018`}),` lists every problem at once). Add `,_jsx(_components.code,{children:`destinationCount`}),` for a route\npaying several destinations.`]})}),`\n`,_jsx(ParamField,{body:`routeTemplateId`,type:`integer`,id:`param-route-template-id`,children:_jsxs(_components.p,{children:[`Price, and check, a saved `,_jsx(_components.a,{href:`/api-reference/route-templates`,children:`route template`}),` as if its hops were sent\nas `,_jsx(_components.code,{children:`route`}),`. Not with `,_jsx(_components.code,{children:`route`}),`.`]})}),`\n`,_jsx(ParamField,{body:`tokenPriceUsd`,type:`number`,id:`param-token-price-usd`,children:_jsxs(_components.p,{children:[`Fallback USD price, used `,_jsx(_components.strong,{children:`only`}),` when the on-chain pool price can’t be read (`,_jsx(_components.code,{children:`priceSource`}),` tells\nyou which was used). The chain never uses it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`tier`,type:`string`,id:`param-tier`,children:[`Fee tier the chain will apply (e.g. `,_jsx(_components.code,{children:`\"tier_2\"`}),`).`]}),`\n`,_jsx(ResponseField,{name:`tierIndex`,type:`integer`,id:`param-tier-index`,children:`Index into the on-chain fee schedule.`}),`\n`,_jsx(ResponseField,{name:`percentFeeBps`,type:`integer`,id:`param-percent-fee-bps`,children:`Percent fee in basis points.`}),`\n`,_jsxs(ResponseField,{name:`percentFeeRaw`,type:`string`,id:`param-percent-fee-raw`,children:[_jsx(_components.code,{children:`floor(hopAmountRaw × percentFeeBps / 10000)`}),`, in token base units.`]}),`\n`,_jsx(ResponseField,{name:`flatFeeLamportsPerHop`,type:`integer`,id:`param-flat-fee-lamports-per-hop`,children:`The tier’s per-hop charge, in lamports.`}),`\n`,_jsx(ResponseField,{name:`flatFeeLamportsPerRoute`,type:`integer`,id:`param-flat-fee-lamports-per-route`,children:`The tier’s once-per-route charge, in lamports.`}),`\n`,_jsxs(ResponseField,{name:`totalFlatFeeLamports`,type:`integer`,id:`param-total-flat-fee-lamports`,children:[_jsx(_components.code,{children:`flatFeeLamportsPerRoute + flatFeeLamportsPerHop × hops`}),`.`]}),`\n`,_jsx(ResponseField,{name:`integratorPercentShare`,type:`string`,id:`param-integrator-percent-share`,children:`Your half of the percent fee, paid to your rewards wallet on chain.`}),`\n`,_jsxs(ResponseField,{name:`integratorFlatShare`,type:`integer`,id:`param-integrator-flat-share`,children:[`Always `,_jsx(_components.code,{children:`0`}),`: the per-hop charge is not shared with integrators.`]}),`\n`,_jsx(ResponseField,{name:`hopAmountRaw`,type:`string`,id:`param-hop-amount-raw`,children:`What the recipient (or all destinations together) receives.`}),`\n`,_jsxs(ResponseField,{name:`usdEquivalent`,type:`number`,id:`param-usd-equivalent`,children:[`USD value of `,_jsx(_components.code,{children:`amountRaw`}),`, for display.`]}),`\n`,_jsx(ResponseField,{name:`usdValueMicros`,type:`string`,id:`param-usd-value-micros`,children:`The program’s USD value of the hop amount (× 10⁶): what selects the tier.`}),`\n`,_jsxs(ResponseField,{name:`priceSource`,type:`string`,id:`param-price-source`,children:[_jsx(_components.code,{children:`onchain_pool`}),` (exact), or `,_jsx(_components.code,{children:`override`}),` / `,_jsx(_components.code,{children:`oracle`}),` (estimate; re-checked at `,_jsx(_components.code,{children:`/prepare`}),`).`]}),`\n`,_jsxs(ResponseField,{name:`cappedAtTierBoundary`,type:`boolean`,id:`param-capped-at-tier-boundary`,children:[_jsx(_components.code,{children:`true`}),` when the hop was capped at a tier boundary; the wallet spends slightly less than `,_jsx(_components.code,{children:`amountRaw`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`tokens`,type:`object`,id:`param-tokens`,children:[_jsx(_components.code,{children:`amountRaw`}),`, `,_jsx(_components.code,{children:`feeRaw`}),`, `,_jsx(_components.code,{children:`netDeliveredRaw`}),` (= `,_jsx(_components.code,{children:`hopAmountRaw`}),`), `,_jsx(_components.code,{children:`decimals`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`sol`,type:`object`,id:`param-sol`,children:[_jsx(_components.code,{children:`requiredSolUpFrontLamports`}),`, `,_jsx(_components.code,{children:`minTransferAmountLamports`}),`, `,_jsx(_components.code,{children:`breakdown`}),` (incl. `,_jsx(_components.code,{children:`dispersionRentLamports`}),`), `,_jsx(_components.code,{children:`refundableLamports`}),`, `,_jsx(_components.code,{children:`netCostLamports`}),`.`]}),`\n`,_jsxs(ResponseField,{name:`route`,type:`object`,id:`param-route-1`,children:[`With `,_jsx(_components.code,{children:`route`}),` only: `,_jsx(_components.code,{children:`hopCount`}),` (hops on chain, the recipient included) and `,_jsx(_components.code,{children:`arrivalSeconds`}),` (the sum of the waits).`]}),`\n`,_jsx(ResponseField,{name:`isTestMode`,type:`boolean`,id:`param-is-test-mode`,children:`Whether this estimate was made with a test-mode API key.`}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /api/v1/transfers/estimate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: mh_live_abc123...\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tokenMint\": \"So11111111111111111111111111111111111111112\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amountRaw\": \"1000000000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tokenDecimals\": 9,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"hops\": 3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200 (devnet, SOL at $120)`,numberOfLines:`35`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`35`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tier_2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tierIndex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"percentFeeBps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`50`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"percentFeeRaw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4969527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"flatFeeLamportsPerHop\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`375000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"flatFeeLamportsPerRoute\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totalFlatFeeLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1125000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"integratorPercentShare\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2484763\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"integratorFlatShare\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usdEquivalent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`120`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usdValueMicros\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"119268656\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"priceSource\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"onchain_pool\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hopAmountRaw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"993905472\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cappedAtTierBoundary\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"destinationCount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isTestMode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amountRaw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1000000000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"feeRaw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4969527\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"netDeliveredRaw\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"993905472\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"decimals\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`9`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"requiredSolUpFrontLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1048210313`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"minTransferAmountLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2039280`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"breakdown\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"routeInitRentLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`15407640`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"orchestratorRentLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`13655040`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ataRentLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2428240`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"transactionFeesLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"priorityFeesLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"protocolFlatFeeLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1125000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"screeningFeeLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"dispersionRentLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"refundableLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`16083280`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"netCostLamports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1032127033`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Estimate Fees","description":"Estimate fees for a potential transfer without creating one","api":"POST /api/v1/transfers/estimate","href":"/api-reference/transfers/estimate"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Request body","slug":"request-body","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"cURL","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"9\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> /api/v1/transfers/estimate\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"x-api-key: mh_live_abc123...\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"tokenMint\": \"So11111111111111111111111111111111111111112\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amountRaw\": \"1000000000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"tokenDecimals\": 9,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"hops\": 3\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"200 (devnet, SOL at $120)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"35\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"tier\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"tier_2\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"tierIndex\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"percentFeeBps\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">50\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"percentFeeRaw\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"4969527\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"flatFeeLamportsPerHop\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">375000\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"flatFeeLamportsPerRoute\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"totalFlatFeeLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1125000\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"integratorPercentShare\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2484763\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"integratorFlatShare\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"usdEquivalent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">120\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"usdValueMicros\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"119268656\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"priceSource\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"onchain_pool\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hopAmountRaw\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"993905472\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"cappedAtTierBoundary\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"destinationCount\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"isTestMode\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"tokens\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"amountRaw\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"1000000000\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"feeRaw\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"4969527\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"netDeliveredRaw\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"993905472\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"decimals\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">9\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"sol\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"requiredSolUpFrontLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1048210313\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"minTransferAmountLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2039280\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"breakdown\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"routeInitRentLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">15407640\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"orchestratorRentLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">13655040\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ataRentLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2428240\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"transactionFeesLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">45000\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"priorityFeesLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"protocolFlatFeeLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1125000\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"screeningFeeLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"dispersionRentLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"refundableLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">16083280\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"netCostLamports\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1032127033\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Estimate Fees","path":"/api/v1/transfers/estimate","method":"post","request":{"security":[],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"tokenMint":[{"type":"string","description":"The Solana mint address of the token to transfer.","required":true}],"amountRaw":[{"type":"string","description":"Raw token amount as a string (e.g. `\"1000000000\"` for 1 SOL).","required":true}],"tokenDecimals":[{"type":"integer","description":"Decimal precision of the token. Defaults to 6."}],"hops":[{"type":"integer","description":"Number of intermediate abstraction hops. Range: 3–10. Defaults to your integration setting (7). Not with `route` ."}],"destinationCount":[{"type":"integer","description":"Price a multi-destination transfer to this many destinations (1–20). Adds the payout accounts’ rent and transactions to `sol` ."}],"arrivalSeconds":[{"type":"integer","description":"The `arrivalSeconds` you will create the transfer with (60 to 2,592,000, i.e. 30 days). It prices the screening of payouts that run more than about 6 hours after the route starts, which are screened again. Omitted, the estimate assumes they run within that window. Not with `route` ."}],"route":[{"type":"object","properties":{},"description":"Price, and check, a custom route : the same `route` you will send to create. Every rule that does not need the sender’s, recipient’s or destinations’ addresses is checked here, so this is a free dry run ( `MH_018` lists every problem at once). Add `destinationCount` for a route paying several destinations."}],"routeTemplateId":[{"type":"integer","description":"Price, and check, a saved route template as if its hops were sent as `route` . Not with `route` ."}],"tokenPriceUsd":[{"type":"number","description":"Fallback USD price, used only when the on-chain pool price can’t be read ( `priceSource` tells you which was used). The chain never uses it."}]}}],"examples":{"example":{"value":{"tokenMint":"\u003cstring>","amountRaw":"\u003cstring>","tokenDecimals":123,"hops":123,"destinationCount":123,"arrivalSeconds":123,"route":{},"routeTemplateId":123,"tokenPriceUsd":123}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"tier":[{"type":"string","description":"Fee tier the chain will apply (e.g. `\"tier_2\"` )."}],"tierIndex":[{"type":"integer","description":"Index into the on-chain fee schedule."}],"percentFeeBps":[{"type":"integer","description":"Percent fee in basis points."}],"percentFeeRaw":[{"type":"string","description":"`floor(hopAmountRaw × percentFeeBps / 10000)` , in token base units."}],"flatFeeLamportsPerHop":[{"type":"integer","description":"The tier’s per-hop charge, in lamports."}],"flatFeeLamportsPerRoute":[{"type":"integer","description":"The tier’s once-per-route charge, in lamports."}],"totalFlatFeeLamports":[{"type":"integer","description":"`flatFeeLamportsPerRoute + flatFeeLamportsPerHop × hops` ."}],"integratorPercentShare":[{"type":"string","description":"Your half of the percent fee, paid to your rewards wallet on chain."}],"integratorFlatShare":[{"type":"integer","description":"Always `0` : the per-hop charge is not shared with integrators."}],"hopAmountRaw":[{"type":"string","description":"What the recipient (or all destinations together) receives."}],"usdEquivalent":[{"type":"number","description":"USD value of `amountRaw` , for display."}],"usdValueMicros":[{"type":"string","description":"The program’s USD value of the hop amount (× 10⁶): what selects the tier."}],"priceSource":[{"type":"string","description":"`onchain_pool` (exact), or `override` / `oracle` (estimate; re-checked at `/prepare` )."}],"cappedAtTierBoundary":[{"type":"boolean","description":"`true` when the hop was capped at a tier boundary; the wallet spends slightly less than `amountRaw` ."}],"tokens":[{"type":"object","properties":{},"description":"`amountRaw` , `feeRaw` , `netDeliveredRaw` (= `hopAmountRaw` ), `decimals` ."}],"sol":[{"type":"object","properties":{},"description":"`requiredSolUpFrontLamports` , `minTransferAmountLamports` , `breakdown` (incl. `dispersionRentLamports` ), `refundableLamports` , `netCostLamports` ."}],"route":[{"type":"object","properties":{},"description":"With `route` only: `hopCount` (hops on chain, the recipient included) and `arrivalSeconds` (the sum of the waits)."}],"isTestMode":[{"type":"boolean","description":"Whether this estimate was made with a test-mode API key."}]}}],"examples":{"example":{"value":{"tier":"\u003cstring>","tierIndex":123,"percentFeeBps":123,"percentFeeRaw":"\u003cstring>","flatFeeLamportsPerHop":123,"flatFeeLamportsPerRoute":123,"totalFlatFeeLamports":123,"integratorPercentShare":"\u003cstring>","integratorFlatShare":123,"hopAmountRaw":"\u003cstring>","usdEquivalent":123,"usdValueMicros":"\u003cstring>","priceSource":"\u003cstring>","cappedAtTierBoundary":true,"tokens":{},"sol":{},"route":{},"isTestMode":true}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"multihopper","siteName":"MultiHopper","title":"Estimate Fees - MultiHopper","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T05:46:20.894Z","originalFileLocation":"api-reference/transfers/estimate.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=\"Estimate fees for a potential transfer without creating one\">\u003cmeta data-mint-head name=\"application-name\" content=\"MultiHopper\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_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/multihopper/zo6ZBJbJjZJ2ee37/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Estimate Fees - MultiHopper\">\u003cmeta data-mint-head property=\"og:description\" content=\"Estimate fees for a potential transfer without creating one\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MultiHopper\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dev-docs.multihopper.com/api-reference/transfers/estimate\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://multihopper.mintlify.app/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Estimate+Fees\u0026amp;description=Estimate+fees+for+a+potential+transfer+without+creating+one\u0026amp;theme=dac4d2d79cbdb562c7a6e11b\u0026amp;signature=a9974a5bfd29626cd1ba90223cdd7895879d63c04dd594e3ff174f6cf3891e58\">\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=\"Estimate Fees - MultiHopper\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Estimate fees for a potential transfer without creating one\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://multihopper.mintlify.app/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Estimate+Fees\u0026amp;description=Estimate+fees+for+a+potential+transfer+without+creating+one\u0026amp;theme=dac4d2d79cbdb562c7a6e11b\u0026amp;signature=a9974a5bfd29626cd1ba90223cdd7895879d63c04dd594e3ff174f6cf3891e58\">\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/multihopper/zo6ZBJbJjZJ2ee37/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MultiHopper\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7E7F83\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dev-docs.multihopper.com/api-reference/transfers/estimate\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/transfers/estimate.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dev-docs.multihopper.com/#organization\",\"name\":\"MultiHopper\",\"url\":\"https://dev-docs.multihopper.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/multihopper/KSAYi9GJphQC0KJt/logo/wordmark-dark-alt.png?fit=max\u0026auto=format\u0026n=KSAYi9GJphQC0KJt\u0026q=85\u0026s=9e4e3c017c9067cd8d58f31d419afd03\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dev-docs.multihopper.com#website\",\"name\":\"MultiHopper\",\"url\":\"https://dev-docs.multihopper.com\",\"publisher\":{\"@id\":\"https://dev-docs.multihopper.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate#webpage\",\"url\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate\",\"name\":\"Estimate Fees\",\"description\":\"Estimate fees for a potential transfer without creating one\",\"dateModified\":\"2026-10-28T05:46:20.894Z\",\"isPartOf\":{\"@id\":\"https://dev-docs.multihopper.com#website\"},\"breadcrumb\":{\"@id\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"MultiHopper\",\"item\":\"https://dev-docs.multihopper.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Estimate Fees\",\"item\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate#apireference\",\"headline\":\"Estimate Fees\",\"name\":\"Estimate Fees\",\"description\":\"Estimate fees for a potential transfer without creating one\",\"url\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate\",\"mainEntityOfPage\":{\"@id\":\"https://dev-docs.multihopper.com/api-reference/transfers/estimate#webpage\"},\"dateModified\":\"2026-10-28T05:46:20.894Z\",\"publisher\":{\"@id\":\"https://dev-docs.multihopper.com/#organization\"},\"isPartOf\":{\"@id\":\"https://dev-docs.multihopper.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MultiHopper\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MultiHopper","nav":{"global":{"anchors":[{"anchor":"App","icon":"arrow-up-right-from-square","href":"https://multihopper.com"},{"anchor":"GitHub","icon":"github","href":"https://github.com/MultiHopper1"}]},"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":""}]},{"tab":"API Reference","groups":[{"group":"API documentation","pages":[{"title":"API Introduction","description":"Integrate with MultiHopper programmatically via the REST API","icon":"terminal","href":"/api-reference/introduction"}]},{"group":"Transfers","pages":[{"title":"Estimate Fees","api":"POST /api/v1/transfers/estimate","href":"/api-reference/transfers/estimate"},{"title":"Create Transfer","description":"Create a new transfer quote","api":"POST /api/v1/transfers","href":"/api-reference/transfers/create"},{"title":"Prepare Transactions","api":"POST /api/v1/transfers/{transferId}/prepare","href":"/api-reference/transfers/prepare"},{"title":"Confirm Broadcast","api":"POST /api/v1/transfers/{transferId}/confirm-broadcast","href":"/api-reference/transfers/confirm-broadcast"},{"title":"Get Transfer","api":"GET /api/v1/transfers/{transferId}","href":"/api-reference/transfers/get"},{"title":"List Transfers","api":"GET /api/v1/transfers","href":"/api-reference/transfers/list"}]},{"group":"Custom routes","pages":[{"title":"Hop Library","api":"GET /api/v1/hop-library","href":"/api-reference/hop-library"},{"title":"Route Templates","href":"/api-reference/route-templates"}]},{"group":"Webhooks","pages":[{"title":"Register Webhook","api":"POST /api/v1/webhooks","href":"/api-reference/webhooks/create"},{"title":"List Webhooks","api":"GET /api/v1/webhooks","href":"/api-reference/webhooks/list"},{"title":"Delete Webhook","api":"DELETE /api/v1/webhooks/{endpointId}","href":"/api-reference/webhooks/delete"},{"title":"Webhook Events","icon":"bell","href":"/api-reference/webhooks/events"}]},{"group":"Integration","pages":[{"title":"Usage","api":"GET /api/v1/usage","href":"/api-reference/usage"}]}]}]},"basePath":"","title":"Estimate Fees - MultiHopper","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js"]}