Practical overview
When it fits
Use it when a Go application already uses go-ethereum and needs transaction or typed-data signing tied to an AWS KMS key.
Who it is for
- Go developers building Ethereum applications with go-ethereum and AWS KMS.
- Teams integrating AWS KMS-backed signing into contract transaction flows or off-chain EIP-712 workflows.
Documented uses
- Configure a go-ethereum contract transactor to obtain transaction signatures from an AWS KMS key.
- Sign a manually constructed Ethereum transaction through the library's signer before sending it with an Ethereum client.
- Sign EIP-712 typed data for documented off-chain flows such as permits, order books and authentication.
Requirements & limits
- The library requires an AWS KMS asymmetric key configured for SIGN_VERIFY with ECC_SECG_P256K1.
- The application principal needs kms:GetPublicKey and kms:Sign permissions on the key.
- The current module import path is github.com/matelang/go-ethereum-aws-kms-tx-signer/v2; the prior welthee path is described as no longer maintained.
- The repository specifies the MIT license.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare AWS KMS for transaction signing
Configure a KMS key and application permissions required by the library.
Before you start
- An AWS KMS asymmetric key
- An application principal to authorize
Steps
Create an asymmetric KMS key with SIGN_VERIFY usage and ECC_SECG_P256K1 specification.
Set the key policy to grant the application's principal kms:GetPublicKey and kms:Sign permissions.
Expected outcome
The KMS key and access policy meet the library's stated prerequisites for signing.
Guide limitations
- These steps cover key and permission preparation, not application integration or transaction submission.
Connect a go-ethereum transactor to AWS KMS
Use the library's returned transaction options with a generated contract transactor.
Before you start
- A Go application using go-ethereum
- A configured AWS KMS key and an application principal authorized for kms:GetPublicKey and kms:Sign
- A contract binding that accepts *bind.TransactOpts
Steps
Import github.com/matelang/go-ethereum-aws-kms-tx-signer/v2.
Create the contract transactor with the contract address and Ethereum client.
Obtain transaction options with NewAwsKmsTransactorWithChainID, passing the KMS service, key ID and chain ID.
Pass the returned options to the generated transactor method, as in the documented ERC-20 Transfer example.
Expected outcome
The generated contract transactor receives options configured to sign through the AWS KMS key.
Guide limitations
- The example documents the integration pattern, not deployment configuration or successful execution.
- The application must separately provide its KMS service, key ID, chain ID and Ethereum client.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- matelang/go-ethereum-aws-kms-tx-signer · Official homepage title · retained in its source language

