# sumsub-resolve-currency

This skill works out which currency values a Sumsub transaction needs and stops you from guessing a chain for a token that exists on several networks.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 446 installs · ★ 7
- Author: sumsub
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-resolve-currency/SKILL.md
- Updated: 2026-10-02
- HTML: https://affpapa.org/en/nevibecode/skills/sumsub-resolve-currency

## What it does

The skill covers the currency fields of a transaction: `info.currencyCode`, `info.currencyType`, `info.cryptoParams.cryptoChain`, plus the `amountInDefaultCurrency` and `defaultCurrencyCode` pair. The catalogue comes from `GET /resources/kyt/currency?type=crypto|fiat`. Fiat is a membership test against ISO 4217 codes. Crypto is the hard part: the same ticker appears on different networks, so an asset is identified by symbol, chain and contract together.

Two scripts do the work. `scripts/get_currencies.sh` fetches the catalogue, and `scripts/resolve_currency.py` trims and uppercases the query, expands chain aliases such as `TRC20` or `BEP20`, and returns exactly one asset. When several rows match, the script stops and hands you the candidate list — the choice stays yours. An empty chain is a value too: it means the native coin of its own network.

You need `SUMSUB_APP_TOKEN` and `SUMSUB_SECRET_KEY`. The script rejects tokens without the `sbx:` prefix unless `SUMSUB_ALLOW_PROD=1` is set, so a sandbox key pair is not optional. `amountInDefaultCurrency` looks skippable, yet Travel Rule threshold comparison depends on it: leave it out and the check is skipped altogether. The value is frozen when the transaction is created, so a wrong rate stays on the record until you backfill it.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-resolve-currency -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/sumsub-resolve-currency/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/sumsub-resolve-currency/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-resolve-currency -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/sumsub-resolve-currency/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-resolve-currency -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/sumsub-resolve-currency/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install sumsub/agent-skills sumsub-resolve-currency
```

2. **Manually: put the files in place**
- File: `.github/skills/sumsub-resolve-currency/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-resolve-currency -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/sumsub/agent-skills --path skills/sumsub-resolve-currency
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/sumsub-resolve-currency/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-resolve-currency -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-resolve-currency/SKILL.md

## When to use it
- find out which currency codes and chains Sumsub supports
- check whether USDT on TRON is supported
- fill in `cryptoChain` for a token that lives on several networks
- debug a currency that is not recognised on submission
- trace where `amountInDefaultCurrency` comes from

## Example prompts
- Which currency code and chain should I send for USDT on TRON?
- Check the Sumsub catalogue for this token
- My currency is not recognised — compare the symbol and chain

## Similar
- [mcp-builder](https://affpapa.org/en/nevibecode/skills/mcp-builder.md) — skill · 130949 installs
- [claude-api](https://affpapa.org/en/nevibecode/skills/claude-api.md) — skill · 74198 installs
- [lark-im](https://affpapa.org/en/nevibecode/skills/lark-im.md) — skill · 472900 installs
- [lark-event](https://affpapa.org/en/nevibecode/skills/lark-event.md) — skill · 466800 installs
- [caveman-discover](https://affpapa.org/en/nevibecode/skills/caveman-discover.md) — skill · 104400 installs
- [migration](https://affpapa.org/en/nevibecode/skills/migration.md) — skill · 103900 installs

From the same set: [sumsub/agent-skills](https://affpapa.org/en/nevibecode/by/sumsub/agent-skills.md) — 20 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
