FB thetanuts
Торговля криптоопционами на Thetanuts Finance — исполнение ордеров, жизненный цикл RFQ, многострайковые структуры, WebSocket в реальном времени, управление кошельком, досрочное урегулирование, реферальные комиссии.
машинный переводПоказать оригиналСкрыть оригинал«Trade crypto options on Thetanuts Finance - orderbook fills, RFQ lifec…»
Trade crypto options on Thetanuts Finance - orderbook fills, RFQ lifecycle, multi-strike structures, real-time WebSocket, wallet management, early settlement, referrer fees
Торговля криптоопционами на Thetanuts Finance — исполнение ордеров, жизненный цикл RFQ, многострайковые структуры, WebSocket в реальном времени, управление…
Как процесс B 65/100 · Почти готов — слабые места: входы и предусловия, стоимость исполнения, отчётность по ходу
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Назначение скилла само по себе рискованное: работа с кошельками, паролями браузера, наступательная безопасность. Даже честная реализация даёт агенту доступ к тому, что стоит денег.
Объясните в description, зачем нужен доступ и как он ограничен; добавьте тесты, которые показывают отказ на опасных запросах.
Как улучшить
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 55
✓ Критических и высоких находок нет
Средние и низкие: 55
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:73Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров**⚠️ IMPORTANT**: Use a DEDICATED wallet for this integration. Never reuse your primary wallet seed phrase. Write your seed phrase on paper and store it offline (not in a text file, not in a chat, not
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:120Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров`wallet-import.js`). The scripts intentionally refuse to accept a seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:193Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров| `import-wallet.ts` | Import existing wallet from seed phrase |
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:202Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров(loaded from `~/.openclaw/wdk-mcp/.env`). Passing a seed phrase as a CLI
-
средняя Рискованное назначение
intent-wallet-secretsscripts/import-wallet.ts:3Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Import an existing wallet using seed phrase.
-
средняя Рискованное назначение
intent-wallet-secretsscripts/import-wallet.ts:113Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// NOTE: We do NOT include the seed phrase in the output for import
-
средняя Рискованное назначение
intent-wallet-secretsscripts/onboard.sh:70Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров# Wallet seed phrase (set by wallet-create.js or wallet-import.js)
-
средняя Рискованное назначение
intent-wallet-secretsscripts/sign-message.ts:3Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Sign a message with wallet private key.
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-create.js:3Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Create a new wallet with fresh BIP-39 seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-create.js:6Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Generates a new seed phrase and configures the wallet runtime
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-create.js:80Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// Generate new seed phrase (128 bits = 12 words)
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-import.js:3Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Import existing wallet from seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-import.js:7Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Validates and imports an existing BIP-39 seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-import.js:110Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// Read seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsscripts/wallet-import.js:134Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// Validate seed phrase
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:116Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров- **LOCAL CUSTODY**: Your seed phrase stays on your machine. The agent never sends it anywhere.
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:137Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров- Wallet custody stays LOCAL - your seed phrase never leaves your machine
-
низкая Секреты в коде
secret-high-entropy-tokenpackage-lock.json:87Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…cAz+ivBu…Lvw==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenpackage-lock.json:172Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…IxX/wd5n…MGF+pv6g…i2Z+Wnj9/KjGz…4Eg==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenpackage-lock.json:206Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…BQM/qZ3R+9TEU…es4+qu1b…BFA==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenpackage-lock.json:223Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha512-8mL/vh8q…uJP+ZcVY…AJW+m0Et…WzA==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenpackage-lock.json:240Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…NES+HiD4…TOe+/2rdn…PWn/r/aAw==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenREADME.md:89Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)- **USDC** (for PUT options) - `0x83…913`
детектор -
низкая Секреты в коде
secret-high-entropy-tokenREADME.md:174Строка, похожая на токен (может быть id, хеш или секрет)node scripts/wallet-balance.js --chain base-mainnet --index 0 --tokens 0x83…913
-
низкая Секреты в коде
secret-high-entropy-tokenREADME.md:208Строка, похожая на токен (может быть id, хеш или секрет)npx tsx scripts/approve-token.ts --token 0x83…913 \
-
низкая Секреты в коде
secret-high-entropy-tokenREADME.md:209Строка, похожая на токен (может быть id, хеш или секрет)--spender 0x1a…6e5 --amount 100 --wait
-
низкая Секреты в коде
secret-high-entropy-tokenREADME.md:214Строка, похожая на токен (может быть id, хеш или секрет)npx tsx scripts/approve-token.ts --token 0x83…913 \
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/approve-token.ts:112Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)example: 'WDK_SEED="word1 word2 ... word12" npx tsx approve-token.ts --token 0x83…913 --spender 0x1a…6e5 --amount 100 --wait',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/approve-token.ts:114Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)USDC: '0x83…913',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/approve-token.ts:116Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)cbBTC: '0xcb…3Bf',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/approve-token.ts:119Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'Thetanuts RFQ': '0x1a…6e5',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/create-wallet.ts:121Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)warning: 'SAVE YOUR SEED PHRASE SECURELY. Anyone with this phrase can access your funds.',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/create-wallet.ts:124Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)'Never share your seed phrase with anyone',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/create-wallet.ts:125Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)'Never enter your seed phrase on websites or apps you do not trust',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/fill-order.ts:21Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0x83…913': { symbol: 'USDC', decimals: 6 },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/fill-order.ts:23Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0xcb…3Bf': { symbol: 'cbBTC', decimals: 8 },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/get-balance.ts:19Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0x83…913': { symbol: 'USDC', decimals: 6 },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/get-balance.ts:21Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0xcb…3Bf': { symbol: 'cbBTC', decimals: 8 },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/get-balance.ts:63Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)USDC: '0x83…913',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/get-balance.ts:65Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)cbBTC: '0xcb…3Bf',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/onboard.sh:186Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)echo -e "${YELLOW} Do NOT reuse your primary or personal wallet seed phrase.${NC}"в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/send-transaction.ts:73Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)example: 'WDK_SEED="word1 word2 ... word12" npx tsx send-transaction.ts --to 0x1a…6e5 --data 0xb5…... --wait',
заглушка -
низкая Секреты в коде
secret-high-entropy-tokenscripts/wallet-balance.js:29Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0x83…913': { symbol: 'USDC', decimals: 6, chains: ['base-mainnet'] },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/wallet-balance.js:31Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0xcb…3Bf': { symbol: 'cbBTC', decimals: 8, chains: ['base-mainnet'] },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/wallet-balance.js:33Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0xA0…B48': { symbol: 'USDC', decimals: 6, chains: ['ethereum-mainnet'] },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/wallet-balance.js:34Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0xdA…ec7': { symbol: 'USDT', decimals: 6, chains: ['ethereum-mainnet'] },в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/wallet-balance.js:111Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)example: 'node wallet-balance.js --chain base-mainnet --tokens 0x83…913',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/wallet-create.js:135Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)'⚠️ SAVE THIS SEED PHRASE SECURELY!',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/wallet-create.js:137Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)' - NEVER share this seed phrase with anyone',
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsscripts/wallet-import.js:138Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)message: 'Empty seed phrase provided',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:675Строка, похожая на токен (может быть id, хеш или секрет)└─> node scripts/wallet-balance.js --chain base-mainnet --tokens 0x83…913
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:699Строка, похожая на токен (может быть id, хеш или секрет)└─> npx tsx scripts/approve-token.ts --token 0x83…913 --spender 0x81…B94 --amount <exact> --wait
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:942Строка, похожая на токен (может быть id, хеш или секрет)node scripts/wallet-balance.js --chain base-mainnet --tokens 0x83…913
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:1111Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)referrer: '0x92…567',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:1124Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'0x92…567'
в кавычках
Просканировано файлов: 30. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 18749 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 65/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 10Стоимость исполнения. Тело инструкции 18749 токенов: вытесняет саму задачу из окна
- 60Инструменты и файлы. Используются инструменты (bash, web, node), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 100Шаги. Шагов: 146
- 100Ошибки и развилки. Развилок: 11, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 23. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (4 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- -35 из 22 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 172 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 109 заголовков
- +3Пошаговые инструкции: 146 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (51 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 73.