L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

transak

transak

Transak fiat-to-crypto on-ramp for Web3. Buy and sell crypto with 100+ payment methods across 170+ countries.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: transak description: Transak fiat-to-crypto on-ramp for Web3. Buy and sell crypto with 100+ payment methods across 170+ countries. metadata: {"clawdbot":{"emoji":"🚀","always":true,"requires":{"bins":["curl","jq"]}}}

Transak 🚀

Web3 payment infrastructure. Fiat on/off-ramp trusted by 600+ DeFi, NFT, and wallet projects.

Environment Variables

VariableDescriptionRequired
TRANSAK_API_KEYAPI KeyYes
TRANSAK_SECRETSecret for webhooksNo
TRANSAK_ENVSTAGING or PRODUCTIONNo

Features

  • 🌍 170+ Countries - Global coverage
  • 💳 100+ Payment Methods - Cards, bank, mobile
  • ⛓️ 75+ Blockchains - EVM, Solana, Bitcoin, etc.
  • 🔄 Off-Ramp - Sell crypto to fiat
  • 🎨 NFT Checkout - Direct NFT purchases
  • 🔌 Widget SDK - Easy integration

API Base URLs

  • Staging: https://api-stg.transak.com
  • Production: https://api.transak.com

Get Supported Cryptocurrencies

API_KEY="${TRANSAK_API_KEY}"
ENV="${TRANSAK_ENV:-STAGING}"
[[ "$ENV" == "PRODUCTION" ]] && BASE_URL="https://api.transak.com" || BASE_URL="https://api-stg.transak.com"

curl -s "${BASE_URL}/api/v2/currencies/crypto-currencies" | jq '.response[:10] | .[] | {symbol: .symbol, name: .name, network: .network.name}'

Get Supported Fiat Currencies

curl -s "${BASE_URL}/api/v2/currencies/fiat-currencies" | jq '.response[:10] | .[] | {symbol: .symbol, name: .name, paymentOptions: .paymentOptions}'

Get Price Quote

FIAT="USD"
CRYPTO="ETH"
FIAT_AMOUNT="100"
NETWORK="ethereum"
PAYMENT_METHOD="credit_debit_card"

curl -s "${BASE_URL}/api/v2/currencies/price" \
  -G \
  --data-urlencode "fiatCurrency=${FIAT}" \
  --data-urlencode "cryptoCurrency=${CRYPTO}" \
  --data-urlencode "fiatAmount=${FIAT_AMOUNT}" \
  --data-urlencode "network=${NETWORK}" \
  --data-urlencode "paymentMethod=${PAYMENT_METHOD}" \
  --data-urlencode "isBuyOrSell=BUY" | jq '{
    cryptoAmount: .response.cryptoAmount,
    fiatAmount: .response.fiatAmount,
    totalFee: .response.totalFee,
    conversionPrice: .response.conversionPrice
  }'

Generate Widget URL

API_KEY="${TRANSAK_API_KEY}"
WALLET_ADDRESS="<USER_WALLET>"
CRYPTO="ETH"
NETWORK="ethereum"
FIAT_AMOUNT="100"
FIAT_CURRENCY="USD"

# Build widget URL
WIDGET_URL="https://global.transak.com/?apiKey=${API_KEY}"
WIDGET_URL+="&walletAddress=${WALLET_ADDRESS}"
WIDGET_URL+="&cryptoCurrencyCode=${CRYPTO}"
WIDGET_URL+="&network=${NETWORK}"
WIDGET_URL+="&fiatAmount=${FIAT_AMOUNT}"
WIDGET_URL+="&fiatCurrency=${FIAT_CURRENCY}"
WIDGET_URL+="&productsAvailed=BUY"

echo "Widget URL: $WIDGET_URL"

Get Order Status

ORDER_ID="<ORDER_ID>"

curl -s "${BASE_URL}/api/v2/partners/order/${ORDER_ID}" \
  -H "api-key: ${API_KEY}" | jq '{
    status: .response.status,
    cryptoAmount: .response.cryptoAmount,
    transactionHash: .response.transactionHash,
    walletAddress: .response.walletAddress
  }'

Supported Networks

NetworkIDTokens
EthereumethereumETH, USDT, USDC, DAI
PolygonpolygonMATIC, USDT, USDC
ArbitrumarbitrumETH, ARB, USDC
OptimismoptimismETH, OP, USDC
BSCbscBNB, BUSD, USDT
SolanasolanaSOL, USDC
AvalancheavaxcchainAVAX, USDC
BasebaseETH, USDC
BitcoinbitcoinBTC

Payment Methods

MethodRegionsSpeed
Credit/Debit CardGlobalInstant
Apple PayGlobalInstant
Google PayGlobalInstant
Bank TransferGlobal1-3 days
SEPAEurope1-2 days
PIXBrazilInstant
UPIIndiaInstant
GCashPhilippinesInstant
GrabPaySEAInstant

Order Status Codes

StatusDescription
AWAITING_PAYMENT_FROM_USERWaiting for payment
PAYMENT_DONE_MARKED_BY_USERPayment submitted
PROCESSINGProcessing order
PENDING_DELIVERY_FROM_TRANSAKSending crypto
COMPLETEDOrder completed
CANCELLEDOrder cancelled
FAILEDOrder failed
REFUNDEDPayment refunded
EXPIREDOrder expired

Webhook Events

# Webhook payload
{
  "eventID": "ORDER_COMPLETED",
  "webhookData": {
    "id": "order-123",
    "status": "COMPLETED",
    "cryptoAmount": 0.05,
    "cryptoCurrency": "ETH",
    "transactionHash": "0x...",
    "walletAddress": "0x..."
  }
}

Verify Webhook

verify_webhook() {
  local payload="$1"
  local signature="$2"
  
  local expected=$(echo -n "$payload" | openssl dgst -sha256 -hmac "$TRANSAK_SECRET" | cut -d' ' -f2)
  
  [[ "$signature" == "$expected" ]]
}

Widget Customization

# Additional widget parameters
WIDGET_URL+="&themeColor=0066FF"           # Custom color
WIDGET_URL+="&hideMenu=true"               # Hide menu
WIDGET_URL+="&disableWalletAddressForm=true"  # Lock wallet
WIDGET_URL+="&exchangeScreenTitle=Buy%20Crypto"  # Custom title
WIDGET_URL+="&defaultPaymentMethod=credit_debit_card"

Safety Rules

  1. VERIFY webhook signatures
  2. NEVER expose API keys client-side
  3. CHECK order status before fulfilling
  4. VALIDATE wallet addresses

Error Handling

ErrorCauseSolution
INVALID_API_KEYBad API keyCheck credentials
UNSUPPORTED_CRYPTOCurrency unavailableCheck supported list
AMOUNT_TOO_LOWBelow minimumIncrease amount
AMOUNT_TOO_HIGHAbove maximumDecrease amount

Links

Skills enregistrées