⬇️ Transak Stream

❓What is Transak Off-Ramp Stream?

Transak Off-Ramp Stream is the latest innovation in crypto off-ramping, allowing users to receive fiat directly into their bank accounts/cards with just one click. As simple as sending crypto from one wallet to another, Transak Stream makes moving between crypto and fiat seamless and intuitive.
With Transak's APIs, apps and platforms can build Streams into their workflows, enabling smooth, one-click flows for their users. From remittances to payroll and e-commerce payouts, Transak Stream simplifies crypto-to-fiat automation for both businesses and users.

Example: A user with a Web3 wallet wants to withdraw $1000 USDC. All they have to do is tap the "withdraw to bank" button directly within their wallet. Just like transferring funds between wallets, the USDC is seamlessly sent to their dedicated Transak wallet address. Within minutes, the equivalent fiat is deposited into their bank account—no need to open additional apps or deal with the Transak interface. This smooth, hassle-free process redefines the off-ramp experience, making it incredibly user-friendly while giving wallet partners a competitive advantage.

🔑 Key Features

🔗 Quick Configuration: Quickly set up your Transak Off-Ramp Stream flow by using just query parameters.
⬇️ Your Wallet, Your Control: Each user receives a dedicated Multi-Stream-Wallet for simplified maintenance.
⬆️ Send transactions now meet Off-Ramps: Send crypto from any wallet to your user's dedicated wallet address to Off-Ramp in under one minute.
💵 Fiat Currency and Payment Method Compatibility: Supports SEPA, FPS, and card withdrawals.
🌐 Crypto Currency and Network: Users can set a default crypto and network that are currently supported with Off Ramp .
🏳️ Countries Coverage: Supports all the countries supported for Off Ramp

🔄 Product Flow

Transak Off-Ramp Stream consists of three main flows and can be configured to your apps in 3 easy steps.

Step 1️⃣Step 2️⃣Step 3️⃣
IntegrationWallet SetupCrypto Transfer

Wallet Setup Flow



Crypto Transfer Flow


How to integrate Transak Off-Ramp Stream?

Step 1: Choose your Integration Type that are supported by Transak.

Step 2: Pass the Mandatory Query Params

Step 3: Transak Stream flow will be loaded and ready to setup. Please refer the Code Samples and Flow Demo

Mandatory Query Params:

Partners should provide the following mandatory query parameters to enable the Transak Off-Ramp Stream feature during integration.

📝 Code Samples

import { Transak } from "@transak/transak-sdk";
import { useEffect } from "react";

const InstantOffRampEventsSDK = () => {
  const globalStagingAPIKey = "a2374be4-c59a-400e-809b-72c226c74b8f";

  useEffect(() => {
    const transak = new Transak({
      apiKey: globalStagingAPIKey,
      environment: Transak.ENVIRONMENTS.STAGING,
      isTransakStreamOffRamp: true,
      cryptoCurrencyCode: "USDT",
      network: "ethereum",
    });

    transak.init();

    // The .close() method contains the callback data for the Transak Stream for a user.
    Transak.on(Transak.EVENTS.TRANSAK_WIDGET_CLOSE, (eventData) => {
      console.log(Transak.EVENTS.TRANSAK_WIDGET_CLOSE, eventData);
      transak.close();
    });

    return () => {
      transak.cleanup();
    };
  }, []);

  return <div id="transakMount" />;
};

export default InstantOffRampEventsSDK;
https://global.transak.com/?apiKey=<YOUR_API_KEY>&isTransakStreamOffRamp=true&cryptoCurrencyCode=ETH&network=ethereum&redirectURL=https%3A%2F%2Ftransak.com
  <body>
    <div>
      <iframe
        id="transak-iframe"
        title="Transak"
        src="https://global-stg.transak.com/?apiKey=YOUR_API_KEY&isTransakStreamOffRamp=true&cryptoCurrencyCode=ETH&network=ethereum&redirectURL=https://transak.com"
        allow="camera;microphone;fullscreen;payment"
        style="height: 650px; width: 400px; border: none"/>
    </div>
    <script>
      const iframe = document.getElementById("transak-iframe");
      const handleMessage = (event) => {
        if (!iframe || event.source !== iframe.contentWindow || !event.data?.event_id) 
          return;
        if (event.data.event_id === "TRANSAK_WIDGET_CLOSE") {
          console.log("TRANSAK_WIDGET_CLOSE", event.data.data);
        }
      };
      window.addEventListener("message", handleMessage);
      window.addEventListener("unload", () => {
        window.removeEventListener("message", handleMessage);
     });
    </script>
  </body>

!Transak Stream callbacks:

Integration TypeCallbackMessage
Browser RedirectionRedirection URLThe callbacks that are received for the Browser Redirection type in the form of Redirection URL.
SDK & iFrame{ "crypto": "ETH", "isTransakStreamOffRamp": "true", "network": "ethereum", "offRampStreamWalletAddress": "0x617d4XXXXXXXXXXXXXXXXXXXXDEE4F4", "withdrawalInstrument": "6V27", "withdrawalMethod": "BANK_ACCOUNT" }The callback data can be fetched from the Transak.EVENTS.TRANSAK_WIDGET_CLOSE events for SDK and event listener for iFrame method. Refer here for the code samples.

Callback Parameters:

FieldValue (Eg)Message
cryptoETHThe crypto currency code
isTransakStreamOffRamptrueBoolean to define the Transak Stream flow
networkethereumThe network of a token
offRampStreamWalletAddress0x617d4XXXXXXXXXXXXXXXXXXXXDEE4F4Dedicated wallet address of the user created for Transak Stream
withdrawalInstrument6V27Last four digits of the selected payment method
withdrawalMethodBANK_ACCOUNTSelected Payment method type.

🗒️ Feature Checklists


🧪 Live Demo - In Transak Widget

This feature is currently live in Transak Widget - Link, and it is accessible to Level 2 (Standard) KYC users in following ways:

Hamburger MenuThe Transak Off-Ramp Stream flow wallets can be configured on clicking Transak Off-Ramp Stream option from the menu.
Exchange Screen BannerThe Transak Off-Ramp Stream flow wallets can be configured on clicking Try Now option from the banner.

Flow Demo

Video Tutorial