Creating an MPC wallet
MPC Wallet
To generate a new MPC wallet using the createMpcWallet() method, This process generates shards, including:
name: The name of master walletMnemonic: The mnemonic phrase generated by the mobile app.numPartieschild wallet keyswallets: A list of MpcKeyGenWallet to perform keygen. Each item requires:derivationPath: The derivation Path of Wallet.ChainId: The chain name (e.g., ethereum, solana).ecType: The cryptographic algorithm type (eddsa, ecdsa).
Additional Notes:
- Use Trust Wallet Core to derive the `secret` using the Derivation Path.
- CoinType.ethereum
- CoinType.solana
- CoinType.arbitrum
- More coins : https://trustwallet.github.io/docc/documentation/walletcore/cointype/
- Refer to the Trust Wallet Registry for `ChainId` and `ecType`: https://github.com/trustwallet/wallet-core/blob/master/registry.jsonExample:
let walletResponse = client.createMpcWallet(
name: "KeyGenGroupID123",
numParties: 2,
mnemonicPhrase: "your mnemonic phrase here",
wallets: [
MpcKeyGenWallet(
derivationPath: "m/84/0/0/0/0",
chainId: "ethereum",
ecType: "ecdsa"
)
]
)
for masterWallet in walletResponse.masterWallets {
for wallet in masterWallet {
// Assuming wallet has properties: keyIdentity, ecType, and address
print("keyIdentity: \(wallet.keyIdentity) - ecType: \(wallet.ecType) - address: \(wallet.address)")
}
}
Mnemonic Compatible MPC Wallet
To generate a new MPC wallet using the createMnemonicWallet() method, This process generates shards, including:
name: The name of master walletMnemonic: The mnemonic phrase generated by the mobile app.numPartieschild wallet keyswallets: A list of KeyGenWallet to perform keygen. Each item requires:secret: The private key of the Child Wallet (derived from the mnemonic phrase).walletAddress: The public address or public key of the Child Wallet.ChainId: The chain name (e.g., ethereum, solana).ecType: The cryptographic algorithm type (eddsa, ecdsa).
Additional Notes:
- When receiving the backup from `createMpcWallet()`, please ensure that the server shards of the newly created Paillier group and Keygen group are stored in a safe and secure location.
- Use Trust Wallet Core to derive the `secret` using the Derivation Path.
- CoinType.ethereum
- CoinType.solana
- CoinType.arbitrum
- More coins : https://trustwallet.github.io/docc/documentation/walletcore/cointype/
- Refer to the Trust Wallet Registry for `ChainId` and `ecType`: https://github.com/trustwallet/wallet-core/blob/master/registry.jsonExample:
let walletResponse = client.createMnemonicWallet(
name: "KeyGenGroupID123",
numParties: 2,
mnemonicPhrase: "your mnemonic phrase here",
wallets: [
KeyGenWallet(
secret: "derived private key",
walletAddress: "0xYourWalletAddress",
chainId: "ethereum",
ecType: "ecdsa"
)
]
)
for masterWallet in walletResponse.masterWallets {
for wallet in masterWallet {
// Assuming wallet has properties: keyIdentity, ecType, and address
print("keyIdentity: \(wallet.keyIdentity) - ecType: \(wallet.ecType) - address: \(wallet.address)")
}
}
Last updated