Keygen
This distributed key generation forms the basis for all subsequent MPC operations, providing a secure foundation for the wallet with enhanced privacy and security guarantees.
Step 1 : Create Session
- Create TrioSession if you haven't already.
Step 2 : Perform Keygen
- Call trioSession.keygen() which returns Result of Success with Keyshare ByteArray or Failure with exception.
Example
Example.kt
suspend fun performKeygen(trioSession: TrioSession): ByteArray {
return withContext(Dispatchers.IO) {
trioSession.keygen().getOrThrow()
}
}
- trioSession.keygen() performs message exchange between mobile and server to generate a new MPC wallet.
- Three new "shares" are generated: one for the client(on mobile) and two for the respective servers(on server). All of the shares together form the MPC wallet.
- Result of trioSession.keygen() could be a
SuccesswithByteArray(client's keyshare) orFailurewithException - SilentShard.ECDSA.deriveChildPublicKey() or SilentShard.EdDSA.deriveChildPublicKey() could be used to get the compressed public key of the MPC wallet. Refer to SDK-Reference for additional Info and Utils.