Skip to main content

Best Practices

Follow these guidelines when building confidential Solana programs with Inco Lightning.

1. Use e_select for Conditional Logic

Never branch on decrypted values in your program. Use e_select to keep logic encrypted:

2. Check Handle Initialization

Always verify handles are initialized before performing operations:

3. Grant Minimal Decryption Permissions

Only allow specific addresses to decrypt values they need:

4. Store Handles, Not Ciphertext

Handles are 16 bytes. Store them on-chain; ciphertext lives off-chain:

5. Handle Edge Cases with e_select

Use e_select to handle edge cases without revealing them:

Summary