public/skills/0xterrybit/transak/SKILL.md
Transak fiat-to-crypto on-ramp for Web3. Buy and sell crypto with 100+ payment methods across 170+ countries.
npx skillsauth add demerzels-lab/elsamultiskillagent transakInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Web3 payment infrastructure. Fiat on/off-ramp trusted by 600+ DeFi, NFT, and wallet projects.
| Variable | Description | Required |
|----------|-------------|----------|
| TRANSAK_API_KEY | API Key | Yes |
| TRANSAK_SECRET | Secret for webhooks | No |
| TRANSAK_ENV | STAGING or PRODUCTION | No |
https://api-stg.transak.comhttps://api.transak.comAPI_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}'
curl -s "${BASE_URL}/api/v2/currencies/fiat-currencies" | jq '.response[:10] | .[] | {symbol: .symbol, name: .name, paymentOptions: .paymentOptions}'
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
}'
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"
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
}'
| Network | ID | Tokens | |---------|-----|--------| | Ethereum | ethereum | ETH, USDT, USDC, DAI | | Polygon | polygon | MATIC, USDT, USDC | | Arbitrum | arbitrum | ETH, ARB, USDC | | Optimism | optimism | ETH, OP, USDC | | BSC | bsc | BNB, BUSD, USDT | | Solana | solana | SOL, USDC | | Avalanche | avaxcchain | AVAX, USDC | | Base | base | ETH, USDC | | Bitcoin | bitcoin | BTC |
| Method | Regions | Speed | |--------|---------|-------| | Credit/Debit Card | Global | Instant | | Apple Pay | Global | Instant | | Google Pay | Global | Instant | | Bank Transfer | Global | 1-3 days | | SEPA | Europe | 1-2 days | | PIX | Brazil | Instant | | UPI | India | Instant | | GCash | Philippines | Instant | | GrabPay | SEA | Instant |
| Status | Description |
|--------|-------------|
| AWAITING_PAYMENT_FROM_USER | Waiting for payment |
| PAYMENT_DONE_MARKED_BY_USER | Payment submitted |
| PROCESSING | Processing order |
| PENDING_DELIVERY_FROM_TRANSAK | Sending crypto |
| COMPLETED | Order completed |
| CANCELLED | Order cancelled |
| FAILED | Order failed |
| REFUNDED | Payment refunded |
| EXPIRED | Order expired |
# Webhook payload
{
"eventID": "ORDER_COMPLETED",
"webhookData": {
"id": "order-123",
"status": "COMPLETED",
"cryptoAmount": 0.05,
"cryptoCurrency": "ETH",
"transactionHash": "0x...",
"walletAddress": "0x..."
}
}
verify_webhook() {
local payload="$1"
local signature="$2"
local expected=$(echo -n "$payload" | openssl dgst -sha256 -hmac "$TRANSAK_SECRET" | cut -d' ' -f2)
[[ "$signature" == "$expected" ]]
}
# 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"
| Error | Cause | Solution |
|-------|-------|----------|
| INVALID_API_KEY | Bad API key | Check credentials |
| UNSUPPORTED_CRYPTO | Currency unavailable | Check supported list |
| AMOUNT_TOO_LOW | Below minimum | Increase amount |
| AMOUNT_TOO_HIGH | Above maximum | Decrease amount |
testing
Query real-time and historical financial data across equities and crypto—prices, market moves, metrics, and trends for analysis, alerts, and reporting.
data-ai
YouTube SERP Scout for agents. Search top-ranking videos, channels, and trends for content research and competitor tracking.
development
Search X (Twitter) in real time, extract relevant posts, and publish tweets/replies instantly—perfect for social listening, engagement, and rapid content ops.
development
Intelligent search for agents. Multi-source retrieval with confidence scoring - web, academic, and Tavily in one unified API.