Onramp to Any Token from 160+ Countries
Universal Bridge now supports extended onramping via Transak

We've added Transak to our suite of supported onramp providers in the Universal Bridge. Along with Coinbase and Stripe, Transak brings the total supported countries to over 160, and supported direct onramp tokens to over 170. Explore all the countries and tokens Transak supports.
When used with Universal Bridge, our onchain routing allows you to onramp to thousands of tokens. Some of the notable countries the Universal Bridge now supports:
- Philippines
- South Korea
- Brazil
- Japan
- Indonesia
- Hong Kong
Onramping with the API
To get an onramp link and quote using the Universal Bridge API, use the following:
const res = await fetch('https://bridge.thirdweb.com/v1/onramp/prepare', {
method : 'POST',
headers: {
'Content-Type': 'application/json',
'x-secret-key': process.env.THIRDWEB_SECRET_KEY,
},
body: JSON.stringify({
onramp: 'transak',
chainId: 4337,
tokenAddress:'0xAFf7314Bc869f4AB265ec7EfA8E442F1D978d7a',
maxSteps: 2,
amount: '200000000000000000',
currency: 'USD',
receiver: '0x2a4f24f935eb178e3e7ba9b53a5ee6d8407c0709',
}),
});
const data = await res.json();
The returned quote will look something like this:
{
"data": {
"id": "3179cf89-e915-4103-b61e-991bf3a33e93",
"link": "https://global.transak.com/...",
"destinationAmount": "2000010000000000",
"timestamp": 1747165958956,
"expiration": 1747169558945,
"intent": {
"chainId": 4337,
"tokenAddress": "0xAff7314Bc869ff4AB265ec7Efa8E442F1D978d7a",
"amount": "2000010000000000",
"receiver": "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
"onramp": "transak",
"currency": "USD",
"maxSteps": 2
},
"steps": [
{
"originToken": {
"chainId": 4337,
"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"symbol": "BEAM",
"name": "Beam",
"decimals": 18,
"priceUsd": 0.00974066,
"iconUri": "https://coin-images.coingecko.com/coins/images/32417/large/chain-logo.png?1698114384"
},
"destinationToken": {
"chainId": 4337,
"address": "0xAff7314Bc869ff4AB265ec7Efa8E442F1D978d7a",
"symbol": "FP",
"name": "Forgotten Playland",
"decimals": 18,
"priceUsd": 0.0006662,
"iconUri": "https://coin-images.coingecko.com/coins/images/35339/small/FP-Token-Icon_%281%29.png?1744266332"
},
"transactions": [
{
"type": "eip1559",
"to": "0xF8Ab2dBE6c43bf1a856471182290f91D621Ba76d",
"from": "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709",
"value": "142478928995176",
"data": "...",
"chainId": 4337,
"action": "buy",
"id": "0xb15a4e9999fc5504e64085dd812b33090e33e3b3b84f4d1adbaf52e6587af8f1",
"spender": "0x965B104e250648d01d4B3b72BaC751Cde809D29E"
}
],
"originAmount": "142478928995176",
"destinationAmount": "2000010000000000",
"estimatedExecutionTimeMs": 12000
}
],
"currency": "USD",
"currencyAmount": 1.06
}
}
You can then use the top-level id
to get the onramp's status:
const res = await fetch('https://bridge.thirdweb.com/v1/onramp/status?id=3179cf89-e915-4103-b61e-991bf3a33e93', {
method : 'GET',
headers: {
'Content-Type': 'application/json',
'x-secret-key': process.env.THIRDWEB_SECRET_KEY,
},
});
const data = await res.json();
The returned status:
{
"data": {
"status": "COMPLETED",
"transactions": [
{
"chainId": 4337,
"transactionHash": "0xd36a649a23044e980446a3183c6cfe9016d539a6ff88f31b611a1614b1d265aa"
}
],
"purchaseData": null
}
}
To learn more about how to use thirdweb's Universal Bridge for onramping, bridging, or swapping, check out the API reference or docs.