Keys
Generate a new key pair
Generate ECDSA secp256k1 or Ed25519 key pairs with the Hiero SDKs to sign Hedera transactions, derive public keys, and set EVM-compatible account addresses.
Was this page helpful?
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Generate ECDSA secp256k1 or Ed25519 key pairs with the Hiero SDKs to sign Hedera transactions, derive public keys, and set EVM-compatible account addresses.
msg.sender resolution in Solidity. See Keys and Signatures for the full comparison.| Method | Type | Description |
|---|---|---|
PrivateKey.generateECDSA() | PrivateKey | Generates an ECSDA private key |
PrivateKey.generateECDSA().getPublicKey() | PublicKey | Derive a public key from this ECDSA private key |
PrivateKey.generateECDSA().publicKey() | PublicKey | Derive a public key from this ECDSA private key |
PrivateKey.generateECDSA().publicKey().toAccountId(<shard>, <realm>) | long, long | Constructs an account ID from a public key |
PrivateKey privateKey = PrivateKey.generateECDSA();
PublicKey publicKey = privateKey.getPublicKey();
System.out.println("private key = " + privateKey);
System.out.println("public key = " + publicKey);
System.out.println("evm address = " + publicKey.toEvmAddress());
const privateKey = await PrivateKey.generateECDSAAsync();
const publicKey = privateKey.publicKey;
console.log("private key = " + privateKey);
console.log("public key = " + publicKey);
console.log("evm address = " + publicKey.toEvmAddress());
privateKey, err := hedera.GenerateEcdsaPrivateKey()
if err != nil {
panic(err)
}
publicKey := privateKey.PublicKey()
fmt.Printf("private key = %v\n", privateKey)
fmt.Printf("public key = %v\n", publicKey)
fmt.Printf("evm address = %v\n", publicKey.ToEvmAddress())
// Generate ECDSA key pair
let private_key = PrivateKey::generate_ecdsa()?;
let public_key = private_key.public_key();
println!("private key = {:?}", private_key);
println!("public key = {:?}", public_key);
println!("evm address = {:?}", public_key.to_evm_address());
// v0.34.0
from hiero_sdk_python.crypto.private_key import PrivateKey
private_key = PrivateKey.generate_ecdsa()
public_key = private_key.public_key()
print(f"private key = {private_key}")
print(f"public key = {public_key}")
print(f"evm address = {public_key.to_evm_address()}")
private key = 3030020100300706052b8104000a042204205edee337f333dbf6ae3e0b1e1298cbe1fe37faf47b9faed326a3917b0e828891
public key = 302d300706052b8104000a03220002e1f3b3bad1e0d97ed129725efaa4fc0289735a9f355438d2619676f1ff3f30dd
PrivateKey.generate() is deprecated and silently generates an ED25519 key. Use PrivateKey.generateECDSA() for new accounts (recommended) or PrivateKey.generateED25519() if ED25519 is required.| Method | Type | Description |
|---|---|---|
PrivateKey.generateED25519() | PrivateKey | Generates an Ed25519 private key |
PrivateKey.generateED25519().getPublicKey() | PublicKey | Derive a public key from this Ed25519 private key |
PrivateKey.generateED25519().publicKey() | PublicKey | Derive a public key from this Ed25519 private key |
PrivateKey.generateED25519().publicKey().toAccountId(<shard>,<realm>) | long, long | Contruct an alias account ID from a alias public key address |
PrivateKey privateKey = PrivateKey.generateED25519();
PublicKey publicKey = privateKey.getPublicKey();
System.out.println("private key = " + privateKey);
System.out.println("public key = " + publicKey);
const privateKey = await PrivateKey.generateED25519Async();
const publicKey = privateKey.publicKey;
console.log("private key = " + privateKey);
console.log("public key = " + publicKey);
privateKey, err := hedera.GenerateEd25519PrivateKey()
if err != nil {
panic(err)
}
publicKey := privateKey.PublicKey()
fmt.Printf("private key = %v\n", privateKey)
fmt.Printf("public key = %v\n", publicKey)
// Generate ED25519 key pair
let private_key = PrivateKey::generate_ed25519()?;
let public_key = private_key.public_key();
println!("private key = {:?}", private_key);
println!("public key = {:?}", public_key);
// Generate ECDSA key pair
let private_key = PrivateKey::generate_ecdsa()?;
let public_key = private_key.public_key();
println!("private key = {:?}", private_key);
println!("public key = {:?}", public_key);
// v0.34.0
private key = 302e020100300506032b657004220420b9c3ebac81a72aafa5490cc78111643d016d311e60869436fbb91c73307ed35a
public key = 302a300506032b65700321001a5a62bb9f35990d3fea1a5bb7ef6f1df0a297697adef1e04510c9d4ecc5db3f
Was this page helpful?