DocsAPI Reference
Log In
Docs

White Label Widget Experience

Example

You can see Meld's white label widget experience being used here by Metamask. Metamask asks the user what they would like to buy and how they would like to pay, then hits Meld's quote API for a list of quotes, then displays the quotes to the user, then once the user selects a quote Metamask calls Meld's API to launch that onramp's widget for the user to complete the purchase. Finally, Metamask hits Meld's API to get back transaction details.

Launching a Crypto Ramp Widget

You can request a widget session, which launches the selected service provider for your customer to interact with. To do so, see the create crypto widget endpoint. We return a fully formatted URL for you to route your customer to.

Before you launch a crypto widget, make sure you have whitelisted Meld's urls and IP addresses.

Setup

Buying Crypto

Pictured below is a sample widget flow for purchasing crypto:

Sample On-Ramp Widget

Sample Onramp Widget

The typical purchase widget flow contains a quote screen, which allows the user to see and edit their quote, followed by a screen where the user can enter their payment information or verify their wallet address, followed by a payment submission screen, as shown above. After payment is complete, the cryptocurrency will be sent by the service provider to the user, and this completes the flow.

Selling Crypto

Pictured below is a sample widget flow for selling crypto:

Sample Offramp Widget

Sample Offramp Widget

The typical sell flow contains a quote screen, which allows the user to see and edit their quote, followed by a screen to connect their bank account or enter their card information, followed by a screen showing where to send the cryptocurrency to, as shown above. After the service provider receives the cryptocurrency, they inform the user that the bank transfer has been initiated, and this completes the flow.

If you subscribe to webhooks you will get alerts whenever any transaction status changes for all service providers. You may also poll our transaction status endpoint.

Information on how to test the crypto wizard can be found in the crypto testing guide.

Locking fields

Some service providers support locking the cryptocurrency and wallet address fields within their widgets. To do this, simply pass in the lockFields param to the widget endpoint with the values of destinationCurrencyCode/sourceCurrencyCode (depending on buy vs sell flow), walletAddress, or both. Here are the service providers that support locking those fields in their widgets:

Locking cryptocurrency
Locking wallet address
Banxa
Not supported
Not supported
BTC Direct
Supported
Supported
Onramp Money
Not supported
Always locked when passed in
Ramp.Network
Supported
Not supported
Simplex
Supported
Supported
Transak
Supported
Supported
Sardine
Always locked
Always locked
TransFi
Always locked when passed in
Always locked when passed in
Unlimit
Supported
Supported
Paybis
Not supported
Not supported
Fonbnk
Not supported
Supported
Koywe
Always locked when passed in
Always locked when passed in
Robinhood
Always locked when passed in
Always locked when passed in
Coinbase
Not supported
Not supported
Blockchain
Always locked when passed in
Always locked when passed in
Topper
Supported
Supported
Guardarian
Not supported
Supported
Alchemypay
Always locked when passed in
Always locked when passed in
Yellowcard
Always locked when passed in
Always locked when passed in
Meso
Not supported
Not supported
Mesh
Not supported
Not supported
Bilira
Not supported
Not supported
SkrillCrypto
Not supported
Not supported
Robinhood
Always locked when passed in
Not supported
Coinbase
Not supported
Not supported
Binance
Not supported
Not supported

Here's a sample buy request with both the cryptoCurrency and walletAddress fields locked:

{
    "sessionData": {
        "walletAddress": "2N3oefVeg6stiTb5Kh3ozCSkaqmx91FDbsm",
        "countryCode": "US",
        "sourceCurrencyCode": "USD",
        "sourceAmount": "70",
        "destinationCurrencyCode": "BTC",
        "serviceProvider": "TRANSAK",
        "lockFields": ["destinationCurrencyCode","walletAddress"]
    },
    "externalCustomerId": "test1",
    "externalSessionId": "test1"
}

Embedding the Widget

Meld supports embedding the crypto widget within an iframe. For information on the recommended iframe size, see Embedding the Wizard.