К основному содержанию
правило

solana-wallet-aware — правило для Cursor: защита кошелька

Правило задаёт проверки безопасности для Solana-кода: от изоляции подписанта до симуляции транзакций перед запуском с реальными средствами.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/solana-wallet-aware.mdc
Открыть на GitHub

Что делает solana-wallet-aware

Правило применяется к файлам ts, tsx, js, jsx, py и rs. Оно запрещает хранить открытый приватный ключ в .env, конфигурации или исходниках и предлагает изолировать подписант в отдельном процессе: тот принимает готовую транзакцию и возвращает подпись, без доступа к сети и с разрешённым списком program ID.

Для защиты от MEV правило требует отправлять обмены через Jito bundles, сверять цену Jupiter с котировкой Pyth и пропускать токены, если TVL крупнейшего пула ниже $1M. Перед подписью нужно разбирать инструкции транзакции, ограничивать расход SOL и проверять свежесть blockhash. Выше 200k CU требуется явное разрешение.

Перевод автоматизации из симуляции к реальной подписи разрешён только после одобрения пользователя и fault-injection тестов. Ключ, который уже попадал в .env на машине разработчика, правило считает скомпрометированным навсегда.

Какие задачи решает

  • защитить приватный ключ от попадания в исходники
  • изолировать процесс подписания транзакций
  • отсеять обмены с ценой вне порога Pyth
  • запретить вызов program ID вне allowlist
  • проверить транзакцию и лимит расходов до подписи

Примеры запросов агенту

  • Проверь код Solana и примени правила защиты кошелька и подписания.
  • Добавь проверку allowlist program ID перед подписью этой транзакции.
  • Проверь, что автоматизация проходит симуляцию и fault-injection тесты до запуска с реальной подписью.

Как установить solana-wallet-aware

Вручную: положить файлы

.cursor/rules/solana-wallet-aware.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о solana-wallet-aware

Как установить solana-wallet-aware в Cursor?

Поместите файл правила по пути .cursor/rules/solana-wallet-aware.mdc.

Что делает solana-wallet-aware?

Задаёт правила безопасности кошельков и транзакций Solana: изоляцию подписанта, allowlist программ, ограничения расходов и проверки до подписи.

Когда можно переключать автоматизацию с симуляции на реальные подписи?

Только после явного одобрения пользователя и прохождения fault-injection тестов на сбой подписанта и RPC, устаревший blockhash, отклонение program ID и контроль лимита расходов.

Исходный текст

solana-wallet-aware.mdc · CC0-1.0
---
description: "Guidelines for writing Solana-native code with wallet-security awareness, isolated signer subprocesses, MEV defense, oracle gates, and transaction safety checks"
globs: **/*.{ts,tsx,js,jsx,py,rs}
alwaysApply: false
---
# Solana Wallet-Aware Coding

When writing Solana on-chain or off-chain code, apply these wallet-safety and transaction-safety rules.

## Wallet architecture

- Never store a raw private key in `.env`, config files, or source. Encrypt with a passphrase-derived key (HKDF-SHA256 + AES-256-GCM, or `eth-account`'s scrypt V3 keystore, or `libsodium`'s sealed-box).
- Use a three-tier wallet split at $1k+ scale: **hot** (bot-signing, ≤10% of AUM), **warm** (manual-top-up buffer on founder phone, ~30%), **cold** (hardware wallet or Squads 2-of-2 multisig, ~60%, untouchable ≥6 months).
- Treat the hot wallet as burnable. Any key that ever touched a `.env` file on a dev machine is compromised forever.
- Isolate the signer in a subprocess with only two capabilities: (a) receive a pre-built transaction over a local Unix socket / stdin, (b) return a signature. No network access, no program-scope escalation, explicit allowlist of program IDs.

## MEV defense on Solana

- Never broadcast swaps to the public mempool. Always use Jito bundles with a per-bundle tip (start at 10k lamports, scale with expected profit).
- Add an oracle gate: reject a trade if Jupiter's quoted price is > 0.5% off Pyth's spot price. Update threshold dynamically with 1-minute realized volatility.
- Maintain an illiquidity blocklist: skip any token where the deepest pool has < $1M TVL (use GeckoTerminal or Birdeye API to check).
- For limit-style orders, prefer Jupiter's limit-order program (built-in MEV protection) over composing your own.

## Program-ID allowlist pattern

When building a signer, hard-code the list of program IDs your bot may invoke. Reject any transaction whose instructions touch a program outside the allowlist. At minimum for a Solana trading bot:

```
const ALLOWED_PROGRAMS = new Set([
  "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",  // Jupiter v6
  "opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb",  // OpenBook v2
  "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",  // SPL Token
  "ComputeBudget111111111111111111111111111111",  // Compute budget
  // add your DEX IDs here — NEVER include unknown programs
]);
```

## Transaction-safety invariants

Before signing ANY transaction:
- Deserialize + inspect every instruction. No opaque "signTransaction(bytes)" without parsing.
- Enforce a max SOL outflow per transaction AND per rolling 24h window (spend-cap circuit breaker).
- Require a freshness check on the blockhash (slot age < 150 or transaction will likely expire).
- Compute budget ≤ 200k CU default; require explicit opt-in for higher.

## Simulation gate

Do not move wallet-automation code from simulation to live signing until the user has explicitly approved it and the implementation has passed fault-injection tests for signer failure, RPC failure, stale blockhashes, rejected allowlist entries, and spend-cap enforcement.

## Operational safety

- Keep deployment credentials, wallet keys, RPC credentials, and monitoring tokens out of source control.
- Add health checks for signer availability, stale blockhashes, RPC error rate, and transaction failure rate.
- Require an explicit manual approval path before raising spend caps, program allowlists, or compute-unit limits.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Всё по теме «Финансы и бизнес» →

Из того же набора234

Весь набор →
solidjs-basic-cursorrules-prompt-file Задаёт базовые стандарты разработки на Solid.js в Cursor: от реактивных сигналов и сторов до структуры каталогов и маршрутизации. ★ 41 024звёзд репо solidity-react-blockchain-apps-cursorrules-prompt- Правило задаёт Cursor рекомендации для Solidity-контрактов и React-приложений с блокчейн-интеграцией. Пригодится для ревью контрактов и Web3-кода. ★ 41 024звёзд репо solidity-hardhat-cursorrules-prompt-file Правило для Cursor, которое настраивает ИИ-ассистента на разработку смарт-контрактов на Solidity с проверками безопасности и работой через Hardhat. ★ 41 024звёзд репо solidity-foundry-cursorrules-prompt-file Настраивает ИИ-ассистента в Cursor на написание смарт-контрактов на Solidity и тестов для Foundry с учётом безопасности и экономии газа. ★ 41 024звёзд репо snowflake-snowpark-dbt-cursorrules-prompt-file Правило для Cursor, которое задаёт агенту контекст по Snowpark Python и dbt с адаптером Snowflake. Пригодится, когда пишете пайплайны трансформаций в этих двух инструментах. ★ 41 024звёзд репо snowflake-data-engineering-cursorrules-prompt-file Набор инструкций для Cursor по Snowflake: SQL, полуструктурированные данные в VARIANT, динамические таблицы и контроль расходов на виртуальные склады. ★ 41 024звёзд репо snowflake-cortex-ai-cursorrules-prompt-file Правило подсказывает Cursor, как работать с функциями Snowflake Cortex AI и Cortex Search. Пригодится для SQL-запросов с ИИ и RAG-поиска. ★ 41 024звёзд репо shopify-theme-dev-liquid Правило для Cursor с набором практик по темам Shopify: Liquid, JavaScript, CSS, доступность и производительность. Пригодится, если пишете тему и хотите, чтобы агент держал структуру. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой