Security for Developers
Build safer dApps by validating inputs, minimizing permissions, and handling errors carefully.
Input Validation
- Validate addresses, amounts, and message sizes before sending to the wallet.
- Sanitize user inputs to prevent injection attacks in your UI.
Permission Scope
- Request only required capabilities (read, sign, transact).
- Explain clearly why you need each permission.
Error Handling
- Handle common wallet errors (4001, 4100, 4200, 4900, 4901).
- Do not leak sensitive details in error messages or logs.
Rate Limiting
- Throttle high-frequency requests (polling, balance checks).
- Debounce user-triggered actions where appropriate.
Security-first UI Components
Keythings Wallet uses a custom UI component library for critical actions instead of relying solely on generic UI kits. The extension includes runtime checks for button tampering, overlays, and unsafe input.
For a full, non-developer explanation of these protections (including why this benefits everyday users), see theSecurity-first UI Components page under the main Security docs.
As an integrator or extension contributor, prefer the provided primitives (Button,ActionButton, BackButton, Tabs, Toggle, Input, etc.) for security-sensitive actions instead of raw HTML elements.