eli5
無料Explain a topic like I'm a 5 year old. Use when the user types /eli5 <topic> or asks for a dead-simple picture explainer of how something works.
日本語の概要は準備中です。原文の説明を表示しています。
Upload and onboard multiple on-chain wallets or exchange accounts into Tres Finance. Use this skill whenever the user wants to add wallets, onboard wallets, import wallets, upload wallet addresses, ingest wallets, or connect exchanges into Tres — whether from a file (CSV/Excel) or by typing them manually. This skill guides Claude through the full flow: wallet type selection → input collection → validation → preview with editable HTML table → exchange credential collection (if exchange) → user confirmation → batch creation via the TRES MCP API. Always trigger this skill for wallet onboarding, wallet data ingestion, or any request to "add wallets to Tres".
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Onboard on-chain wallets and exchange accounts into Tres Finance with validation, preview, and confirmation.
⚠️ EXECUTION RULE — READ BEFORE STARTING: This skill is a strict sequential checklist. You MUST follow every step in the exact order written — do not skip, merge, or reorder steps. Before moving to the next step, verify the current step is fully complete. Steps that involve API calls (schema fetch, existing-wallet check, batch mutation) are mandatory — never skip them to save time or because results seem obvious. If you catch yourself about to skip a step, stop and execute it first.
Before doing anything else, ask the user what kind of wallet they want to add using ask_user_input_v0:
question: "What would you like to add to Tres?"
options:
- "On-Chain Wallets (Ethereum, Solana, Bitcoin, etc.)"
- "Exchange Accounts (Binance, Coinbase, Kraken, etc.)"
type: single_select
Ask the user how they want to provide their on-chain wallets using ask_user_input_v0:
question: "How would you like to add your wallets?"
options:
- "Upload a file (CSV or Excel)"
- "Enter manually in a table"
type: single_select
Wait for the user's response, then proceed to the matching option in Step OC-2.
If the user selects "Upload a file" (or uploads a CSV or Excel file directly):
/mnt/user-data/uploads/name, address (or identifier), network (or platform), tags (optional), description (optional)If the user selects "Enter manually in a table":
Name | Address | Network | Tags (optional)
Example:
Treasury Hot | 0xABCD...1234 | ETHEREUM | defi,treasury
Cold Storage | bc1q...xyz | BITCOIN |
ParentPlatform value.Always fetch the ParentPlatform enum values live from the TRES MCP schema — never hardcode them. Use:
# Via TRES MCP introspect tool:
introspect("ParentPlatform")
This returns the full list of valid enum values to use in the network dropdown and for validation.
To filter the ParentPlatform list to on-chain platforms only, exclude any value that matches a known exchange/custodian. The authoritative live list of supported exchanges is fetched in the Exchange Flow (Step EX-1). As a local heuristic for the on-chain filter, exclude these:
ANCHORAGE, AQUANOW, ASCENDEX, B2C2, BACKPACK, BINANCE_EXCHANGE, BINANCE_EXCHANGE_TR,
BITCOIN_SUISSE, BITFINEX, BITGET, BITGO, BITMEX, BITSO, BITSTAMP, BITVAVO, BREX,
BTC_MARKETS, BTCTURK, BULLISH, BYBIT, CEFFU, CIRCLE, COBO, COINBASE, COINBASE_COMMERCE,
COINBASE_EXCHANGE, COINBASE_INTERNATIONAL, COINBASE_PRIME, COINEX, COPPER, CRYPTOCOM,
CRYPTOCOM_EXCHANGE, CUSTOMERS_BANK, DERIBIT, EQUALSMONEY, FALCONX, FIDELITY,
FIFTH_THIRD_BANK, FIREBLOCKS, FORDEFI_UTXO, FTX, FTXUS, GATEIO, GEMINI, HITBTC, HTX,
KRAKEN, KRAKEN_CUSTODY, KRAKEN_FUTURES, KUCOIN, LAYERONE, LEDGER_ENTERPRISE, LMAX,
LUKKA, M2, MERCADO, MERCURY, MERCURY_TREASURY, MEOW, MEOW_TREASURY, MESH_PAYMENTS,
MORGAN_STANLEY, NONCO, OKX, PAXFUL, PARADEX, QONTO, QREDO, REVOLUT_FR, REVOLUT_UK,
SVB_GO, SVB_ONLINE, SYGNUM, TALOS, VERTEX, WHITEBIT, WINTERMUTE, WISE_US,
BANK_HAPOALIM_BIZ, BANK_HAPOALIM_INTERNATIONAL, BANK_OF_AMERICA,
BANQUE_POPULAIRE_RIVES_DE_PARIS, CHASE, CHECKOUT
Any platform NOT in this list is treated as an on-chain wallet requiring a standard blockchain address.
Run ALL checks below. Collect errors per-row; do NOT abort early.
| Field | Rule |
|---|---|
name | Non-empty string |
identifier | Non-empty string |
parentPlatform | Must be a valid ParentPlatform enum value (from live schema) |
If a network name from a CSV is lowercase or mixed-case (e.g. tezos, Ethereum), uppercase it and fuzzy-match to the nearest valid ParentPlatform enum value. Show a warning banner in the preview noting the normalisation and asking the user to confirm.
Apply these regex rules for on-chain wallets. Skip for exchanges.
| Network(s) | Rule |
|---|---|
| ETHEREUM, BNB, POLYGON, AVALANCHE_*, ARBITRUM, OPTIMISM, BASE, FANTOM, MOONBEAM, and other EVM chains | ^0x[0-9a-fA-F]{40}$ |
| BITCOIN | P2PKH 1..., P2SH 3..., or Bech32 bc1... — 25–62 chars |
| SOLANA | Base58, 32–44 chars: ^[1-9A-HJ-NP-Za-km-z]{32,44}$ |
| TRON | ^T[1-9A-HJ-NP-Za-km-z]{33}$ |
| TEZOS | ^tz[123][1-9A-HJ-NP-Za-km-z]{33}$ |
| SUI, APTOS | ^0x[0-9a-fA-F]{62,64}$ |
| STELLAR | Starts with G, 56 chars |
| RIPPLE | Starts with r, 25–34 chars |
| CARDANO | Starts with addr1, length > 50 |
| NEAR | Ends in .near OR 64-char hex |
| TON | Starts with EQ or UQ, 48 chars |
| ALGORAND | 58-char Base32 uppercase |
Flag obvious mismatches (e.g. 0x... address on SOLANA network, or Bitcoin address on ETHEREUM).
Within-batch duplicates:
Flag rows sharing the same (identifier, parentPlatform) pair. Mark both as errors.
Existing-wallet check against Tres (batches ≤ 200 wallets):
{
internalAccount(identifier_In: ["addr1", "addr2", ...]) {
results { id name identifier parentPlatform }
}
}
Build a lookup: key = identifier.toLowerCase() + "|" + parentPlatform.toUpperCase()
"Exists (ID: XXXXX)" — API will update, not duplicateX new | Y already exist | Z errorsFor batches > 200: skip the API check, show a note in the preview.
🚫 HARD GATE: Do NOT render this preview until Step OC-4 (validation) AND the existing-wallet Tres API check are both fully complete. Showing the preview without the API check is a violation of this skill.
Do NOT render an HTML widget. Instead, present the wallet data as a clean markdown table in plain text so the user can review it:
| # | Name | Address | Network | Tags | Status |
|---|------|---------|---------|------|--------|
| 1 | Treasury Hot | 0xABCD...1234 | ETHEREUM | defi | ✅ New |
| 2 | Cold Wallet | bc1q...xyz | BITCOIN | | ⚠️ Exists (ID: 12345) |
| 3 | Bad Wallet | invalid-addr | SOLANA | | ❌ Invalid address |
X new | Y already exist | Z errorsErrors:
- Row 3 (Bad Wallet): Invalid SOLANA address format
When the user confirms → proceed to Step OC-6.
When Claude receives TRES_WALLET_UPLOAD_CONFIRMED::
About to upload N wallets to Tres Finance:
- 3 ETHEREUM wallets
- 2 SOLANA wallets
- 1 TEZOS wallet (will update existing)
Shall I proceed?
Call updateBatchInternalAccounts via TRES MCP:
mutation UpdateBatchInternalAccounts($internalAccounts: [InternalAccountInput]) {
updateBatchInternalAccounts(internalAccounts: $internalAccounts) {
internalAccounts {
id
name
identifier
parentPlatform
status
}
validationResults {
iaIdentifier
validationResult {
issueType
errorMessage
}
}
}
}
Variables per wallet:
{
"name": "Treasury Hot",
"identifier": "0xABCD...",
"parentPlatform": "ETHEREUM",
"tags": ["defi", "treasury"],
"enforceCollectTransactions": true
}
Note: platformKeys is not included for on-chain wallets.
If batch > 100 wallets, split into chunks of 50 and call sequentially.
validationResults — surface any issueType / errorMessage to the userShow the user the integration guide link:
Before connecting an exchange, please review the Tres Finance Exchange Integration Guide: 👉 https://help.tres.finance/article/integrating-your-exchange-accounts-with-tres-finance
Then fetch the live validated exchange list from TRES MCP — never hardcode it:
query GetAllValidatedExchanges {
ledgerFilters {
allValidatedExchanges {
id
displayName
}
}
}
This returns the authoritative list of supported exchanges (47 as of writing, but always fetch live). Sort A-Z by displayName. Present as a native <select> dropdown using ask_user_input_v0 or inline in a show_widget form, mirroring the Tres UI with a "Connection Guidelines ↗" link alongside the label.
Once the user selects an exchange, fetch its credential fields. Use the id value (lowercase) as the exchangeName:
query ExchangeRequiredFields {
exchangeRequiredFields {
requiredFields(exchangeName: "<exchange_id_lowercase>") {
name
type
description
mapping
}
}
}
Important: Skip any field where mapping starts with https:// — these are integration guide links, not credential inputs. Show them as a clickable link instead.
Store the remaining fields. Each field has:
name — the credential field keydescription — the human-readable label to show the usermapping — the key used when constructing platformKeys (e.g. platform_keys.api_key)type — use to determine input typeDo NOT render an HTML widget. Instead, ask the user for credentials in plain conversational steps.
First, show the integration guide link:
📖 Before connecting, review the guide: https://help.tres.finance/article/integrating-your-exchange-accounts-with-tres-finance
Then ask for the fields one by one (or all at once in a single prompt), clearly listing what is needed:
To connect <Exchange Name>, I need the following:
**Account Name** (required) — a friendly name for this account in Tres
**API Key** (required)
**API Secret** (required, will be stored securely)
**Tags** (optional) — comma-separated tags
Please provide these values. Keep API secrets private — do not share them in public channels.
field.name contains "secret", "private", "signing", or "passphrase" — note they will be stored securely(optional)mapping starts with https:// — show it as a link insteadBefore accepting the credentials, ask:
Only proceed once both are confirmed.
Once all credentials and confirmations are collected, store them in the queue format and proceed to Step EX-4.
After collecting credentials for an exchange:
✅ <accountName> (<exchange>) added to queueQueued accounts:
1. My Binance Account (BINANCE_EXCHANGE)
If user wants to add another → loop back to Step EX-1 (queued accounts are preserved). If user wants to proceed → go to Step EX-5.
Present a plain-text summary of all queued accounts:
Ready to connect the following exchange accounts to Tres Finance:
1. My Binance Account (BINANCE_EXCHANGE)
2. Kraken Main (KRAKEN)
Shall I proceed?
Wait for explicit user confirmation ("yes", "confirm", "go ahead", etc.)
Call updateBatchInternalAccounts via TRES MCP for all queued accounts:
mutation UpdateBatchInternalAccounts($internalAccounts: [InternalAccountInput]) {
updateBatchInternalAccounts(internalAccounts: $internalAccounts) {
internalAccounts {
id
name
identifier
parentPlatform
status
}
validationResults {
iaIdentifier
validationResult {
issueType
errorMessage
}
}
}
}
Variables per exchange account:
{
"name": "<accountName>",
"identifier": "<accountName>",
"parentPlatform": "<EXCHANGE_ID_UPPERCASE>",
"tags": ["<tag1>"],
"enforceCollectTransactions": true,
"platformKeys": "{\"api_key\": \"...\", \"api_secret\": \"...\"}"
}
Important:
identifier = account name (no blockchain address for exchanges)platformKeys = a JSON string (not an object), built from field.mapping → value pairs collected in the formparentPlatform = exchange id uppercased (e.g. binance_exchange → BINANCE_EXCHANGE)issueType and errorMessage for failures| Situation | What to do |
|---|---|
CSV has no address column | Ask user to map which column contains the wallet address |
| Unknown network name | Fuzzy-match to nearest ParentPlatform enum value, show warning banner, ask user to confirm |
| Address format invalid | Mark as error in preview; user must fix or remove the row before upload |
| Duplicate in batch | Mark both rows as errors; user must remove or fix one |
| Wallet already exists in Tres | Mark as ⚠️ warning (yellow); proceed — API will update it |
| No file and no wallets typed | Prompt user to either upload a file or use the manual table |
| Batch > 200 wallets | Skip existing-wallet API check; show informational note |
| MCP mutation returns error | Show error per wallet; offer retry |
| Exchange credentials rejected | Show the validation error and prompt user to re-enter credentials |
exchangeRequiredFields returns empty | Inform user that this exchange may need manual setup; link to the guide |
allValidatedExchanges returns empty | Fall back to informing user and linking to https://help.tres.finance |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Explain a topic like I'm a 5 year old. Use when the user types /eli5 <topic> or asks for a dead-simple picture explainer of how something works.
日本語の概要は準備中です。原文の説明を表示しています。
Write an implementation plan as one interactive HTML page - a tree of claims (why › what › how › where), each proved by one exhibit (UI mockup, state machine, call stack, schema or code), with the decisions the user has to make placed on the claim they change. Use when the user types /html-plan, or asks for a plan, RFC or design before building something that touches more than a couple of files.
日本語の概要は準備中です。原文の説明を表示しています。
Use the `quickdesign` CLI to generate AI media — UGC promo videos, image edits, product creatives, video upscales — through Seedance, Kling, Sora2, Nano Banana, and GPT Image. Invoke this skill whenever the user asks for a talking-avatar video, multi-segment ad / promo / explainer, image edit (object swap, angle change, state change), product photoshoot, or video upscale via QuickDesign.
日本語の概要は準備中です。原文の説明を表示しています。
Use only when the user explicitly asks for a TestDino audit of Playwright automated test code. Routes through the audit tools the TestDino MCP server exposes (get_audit_report + submit_audit_report, or the legacy test_audit). For generic code review or non-Playwright targets, do a normal review instead.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user wants to check TestDino connection status, validate their PAT, discover available organizations and projects, or find the right projectId. Always call this first when the project context is ambiguous before any other TestDino tool.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user wants to manage a manual execution run or update case-level results inside a run — listing runs, creating runs for a release, inspecting a run, assigning cases, or marking case results (passed/failed/blocked/skipped/retest/untested). Accepts counter-style IDs like RUN-12 and TC-156.
日本語の概要は準備中です。原文の説明を表示しています。