Solana Wallet Aware
Cursor-Regel für Solana-dApps: robuste Wallet-Connect- und Transaktions-Flows im Frontend.
Cursor-Regel für Solana-dApps: robuste Wallet-Connect- und Transaktions-Flows im Frontend.
Original-Beschreibung der Autoren: Guidelines for writing Solana-native code with wallet-security awareness, isolated signer subprocesses, MEV defense, oracle gates, and transaction safety checks
Die Regel
---
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.
So nutzt du sie
Die Regel kopieren (Button oben) oder als Datei herunterladen und im Projekt unter .cursor/rules/ ablegen — Cursor lädt sie beim nächsten Start automatisch. Ältere Cursor-Versionen lesen alternativ eine einzelne .cursorrules-Datei im Projektstamm; dort einfach den Regel-Text ohne den Kopfblock zwischen den ----Zeilen einfügen.
Der Regel-Text ist englisch — Cursor versteht ihn unabhängig von der Sprache, in der Sie mit dem Editor chatten.
Im Detail
Regel für Solana-dApp-Entwicklung mit Wallet-Integration: Konventionen für den Umgang mit Wallet-Adaptern (Connect/Disconnect-Flows, Transaktionssignierung, Fehlerbehandlung bei abgelehnten Signaturen) und sicheren Umgang mit Public Keys im Frontend. Cursor generiert damit Wallet-bezogenen Code, der gängige Solana-Wallet-Adapter-Patterns respektiert, statt naive Implementierungen vorzuschlagen, die z. B. Transaktionsfehler nicht abfangen. Nützlich für Frontend-Entwickler, die Solana-dApps mit echter Wallet-Anbindung (Phantom, Solflare etc.) bauen und robuste UX bei Verbindungsabbrüchen oder abgelehnten Transaktionen wollen. Für reine Backend- oder Smart-Contract-Entwicklung ohne Wallet-UI ist die Regel weniger relevant.
Praxis-Tipp
Beispiel-Prompt: „Baue eine React-Komponente, die den Wallet-Connect-Status anzeigt und bei abgelehnter Signatur eine Fehlermeldung zeigt” — die Regel erzwingt sauberes Error-Handling.
Lizenz & Quelle
- Lizenz: CC0 1.0
- Quelle: PatrickJS/awesome-cursorrules (GitHub)
Inhalt ansehen (solana-wallet-aware.mdc)
Lade …
Erfahrungen & Kommentare.
Funktioniert der Regel bei Ihnen? Tipps, Stolperfallen, Varianten — teilen Sie es mit der Community.
Lade Kommentare …
Passt dazu.
AI Agent Specialist
Cursor-Regel, die den KI-Editor auf diszipliniertes, spezialisiertes Agenten-Verhalten trimmt.
Alpha Skills Quant Factor Research
Cursor-Regel für quantitative Faktor-Recherche im Trading/Finance-Bereich — leitet die KI zu methodisch sauberer Analyse an.
Android Jetpack Compose
Cursor-Regel für Android-Entwicklung mit Jetpack Compose — sorgt für idiomatischen, deklarativen Kotlin-UI-Code.
