Before we begin, ensure you have the following:
- Node.js (v16 or later recommended)
- AWS Account with Secrets Manager permissions
- IAM User or Role with access to AWS Secrets Manager
- AWS SDK for JavaScript (@aws-sdk/client-secrets-manager)
- ethers.js for Ethereum wallet creation
Step 1: Setting Up the Project
First, create a new Node.js project and install the necessary dependencies:
mkdir eth-wallet-secrets && cd eth-wallet-secrets
npm init -y
npm install ethers dotenv @aws-sdk/client-secrets-manager
Then, create a .env file to store your AWS configuration:
Step 2: Writing the Wallet Generation Script
import { Wallet } from "ethers";
import { SecretsManagerClient, CreateSecretCommand } from "@aws-sdk/client-secrets-manager";
import dotenv from "dotenv";
dotenv.config();
const REGION = process.env.AWS_REGION || "us-east-1";
const SECRET_NAME = process.env.AWS_SECRET_NAME || "BlockchainWallet";
const client = new SecretsManagerClient({ region: REGION });
async function generateAndStoreWallet() {
    try {
        // Generate a new Ethereum wallet
        const wallet = Wallet.createRandom();
        const walletData = {
            PUBLIC_ADDRESS: wallet.address,
            PRIVATE_KEY: wallet.privateKey,
            MNEMONIC: wallet.mnemonic?.phrase,
        };
        const command = new CreateSecretCommand({
            Name: SECRET_NAME,
            SecretString: JSON.stringify(walletData),
        });
        const response = await client.send(command);
        console.log("Wallet generated and stored successfully:", response);
    } catch (error) {
        console.error("Error generating or storing the wallet:", error);
    }
}
generateAndStoreWallet();
The result can be see like this in the AWS console:
 
 
              

 
    
Top comments (0)