Files

47 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Generate a pseudo devnet key pair for blockchain components."""
from __future__ import annotations
import argparse
import json
import secrets
from pathlib import Path
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Generate a devnet key pair")
parser.add_argument(
"--output",
type=Path,
help="Optional path to write the keypair JSON (prints to stdout if omitted)",
)
return parser.parse_args()
def generate_keypair() -> dict:
private_key = secrets.token_hex(32)
public_key = secrets.token_hex(32)
address = "ait1" + secrets.token_hex(20)
return {
"private_key": private_key,
"public_key": public_key,
"address": address,
}
def main() -> None:
args = parse_args()
keypair = generate_keypair()
payload = json.dumps(keypair, indent=2)
if args.output:
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(payload + "\n", encoding="utf-8")
print(f"[keygen] wrote keypair to {args.output}")
else:
print(payload)
if __name__ == "__main__":
main()