Setting up your developer dashboard (team members, API keys, and Link customization)
- Go to Account > Team to add team members. New team members can be invited with varying permission sets to ensure you control access to only what’s needed on a per-member basis.

- Go to Account > API keys to add callback URLs (where the Mesh SDK will be allowed to render) and to generate your production or sandbox API keys (you’ll have to complete a business verification check before being able to generate production keys).

- Go to Account > Link configuration to customize the Link SDK for your branding and other needs.

Create Link Token (Backend)
This first step is a mandatory server-side operation and is the same for all client platforms. The Link UI is always initialized with a linkToken, which must be generated from your backend to protect your apiSecret. 🔒 Security First Never expose yourX-Client-Secret
in a client-side application. The /api/v1/linktoken
endpoint must always be called from a secure server environment.
Make a POST
request from your backend to the appropriate Mesh API endpoint:
Sandbox: https://sandbox-integration-api.meshconnect.com
Production: https://integration-api.meshconnect.com
Example cURL
request from your backend
Configuring the Link Token
ThelinkToken
is a powerful tool that allows you to tailor the Link UI for your specific use case. By passing different parameters in the body of your POST /api/v1/linktoken
request, you can control the entire user journey.
Setting up a Transfer
If you want the user to transfer assets, you must include thetransferOptions
object in your request body. This object contains all the necessary details for the transaction.
Finding the networkId
The networkId
is a required field that tells Mesh which blockchain to use for the transfer. You can retrieve a complete list of all supported networks and their corresponding networkId
values by making a GET
request to our transfers/managed/networks endpoint.
Configuring Destination Addresses (toAddresses
)
This array tells Mesh where the user can send their funds.
- Single Address (Streamlined UX): If your user has already selected a token and network in your app, or if you only accept one specific asset, you can pass a single object in the
toAddresses
array. This provides the most direct user experience, as Link will skip the asset and network selection screens. - Multiple Addresses (Recommended for Flexibility): For greater flexibility and potentially higher conversion, we recommend passing an array of all possible tokens and networks that you accept. This allows the user to choose their preferred asset within the Link UI.
Enabling SmartFunding
To maximize conversion and increase average transfer size, you should always enable SmartFunding.- How to Enable: Set
enabled: true
within thefundingOptions
object insidetransferOptions
. - Why it’s important: SmartFunding allows users to complete a payment even if they don’t have enough of the target asset by auto-converting their other available tokens. This is a key feature for ensuring a successful transaction.
Controlling the User Flow
You can control where the user lands when the Link UI opens.- Go to Catalog: By default, if you only provide a
userId
, the user will see the full catalog of supported exchanges and wallets. - Go Straight to an Integration: To bypass the catalog and send the user directly to a specific institution (e.g., Coinbase), include the
integrationId
in yourlinkToken
request.
Using Paylinks
If you want to simplify your integration and avoid using the client-side SDKs, you can use Paylinks. This feature generates a unique, Mesh-hosted URL that you can redirect your customers to.- How to Enable: Set
"generatePayLink": true
inside yourtransferOptions
. - Learn More: For a detailed guide on this feature, please see our Paylinks Documentation.
Open Link UI (Client-Side)
Once your client application receives the linkToken, you can use it to initialize and open the Link UI. InstallationHandle Events
Your application needs to respond to events to know the outcome of a user’s session. This happens in two places: on the client-side from the SDK, and on the server-side from webhooks. From Link UI (Client-Side) The client-side SDK provides immediate feedback about the user’s interaction. Please see the Mesh Link SDK events guide for full details on callback functions and events emitted from Mesh’s SDKs.The
createLink
function takes callbacks as arguments:onIntegrationConnected
: Called on a successful account connection. The payload contains the accessToken.onTransferFinished
: Called when a transfer is complete (either success or failure).onExit
: Called when the user closes the UI.
GET /v1/transfers/managed/mesh
endpoint. This is useful for reconciliation or auditing purposes after a transfer has already completed. You can find the API reference for this endpoint here.
➡️ Learn More
For detailed information on webhook security, payload structure, and how to respond to events, see the webhooks guide.
To get more information about our SDKs, refer to the respective Github repository:
Web | Android | iOS | React Native |
---|