Security
Wallet security, transaction review, and Canton transaction safety.
Grofty is designed so users remain responsible for their wallet credentials. Your private keys and recovery phrase never leave your device. Grofty cannot recover a lost recovery phrase.
✅ DO:
- Store your recovery phrase offline — written on paper in a secure location
- Never share your private keys or recovery phrase with anyone
- Verify Party IDs before sending assets
- Confirm transaction previews before signing
- Use the latest extension version
- Use a strong, unique PIN
❌ DON'T:
- Share your recovery phrase with anyone — not even Grofty support
- Store your recovery phrase in email, cloud storage, or screenshots
- Enter your phrase on any site other than the official Grofty extension
- Send before verifying the full receiver Party ID
Before signing, always review every field in the transaction preview. Grofty displays all relevant details before you sign.
Check before signing:
- Recipient Party ID — confirm the full string matches
- Token symbol — CC or USDCx
- Gross amount entered
- Receiver amount (after fee)
- Fee amount
- Memo or description
- Transaction type (transfer / swap / bridge)
Canton transactions are irreversible once submitted.
Take time to review all fields before clicking confirm. There is no undo on Canton.
Your recovery phrase is encrypted using industry-standard cryptography and stored only on your device:
- Argon2id — memory-hard key derivation from your PIN, resists brute-force
- AES-256-GCM — authenticated encryption with unique random IV per session
- Ed25519 signatures — all Canton transactions are signed locally
- Local storage only — recovery phrase and private keys never transmitted
Grofty uses Canton-aware backend logic for transaction preparation and execution. This includes handling:
- Canton Party ID verification
- Transfer preapproval checks before sending
- CC and USDCx asset state validation
- Bridge and swap transaction flow construction
- Fee-aware normal CC transfer handling via DAML
Key Point
Your private key exists in memory for milliseconds only during local signing — then is cleared immediately. The backend never receives your private key.