Delete
Delete removes the encrypted keyshare file from the device. That's it — no server call, no on-chain action.
How the example does it
- Android
- iOS / macOS
vault/.../session/VaultSessionManager.kt
suspend fun deleteKey(keyId: String) {
store.delete(keyId)
}
Vault/Session/VaultSessionManager.swift
func deleteKey(keyId: String) {
store.delete(keyId: keyId)
}
What delete does NOT do
- Tell the server. The cloud party still holds its share until its own GC runs.
- Touch the blockchain. The address, balance, and transaction history are unaffected.
- Prevent recovery. If you create a new wallet of the same
KeyType, it gets a differentkeyIdand a different address — the old address is frozen from this device's perspective (no device share → no 2-of-2 signature possible), but the server share still exists.
If the goal is "this device should not be able to sign for this address anymore," deleteKey is sufficient. If the goal is "no party anywhere holds material for this address," that requires coordinating with whoever runs the server.