@valora/viem-account-hsm-gcp
v1.1.9
Published
[![GitHub License](https://img.shields.io/github/license/valora-inc/viem-account-hsm-gcp?color=blue)](https://github.com/valora-inc/viem-account-hsm-gcp/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/@valora/viem-account-hsm-gcp.svg)](htt
Downloads
587
Readme
@valora/viem-account-hsm-gcp
Use a Google Cloud HSM key to sign transactions with viem.
Installing the library
yarn add @valora/viem-account-hsm-gcp
Note: viem is a peer dependency, so make sure it's installed in your project.
Using the library
Simple usage
import { createWalletClient, http } from 'viem'
import { mainnet } from 'viem/chains'
import { gcpHsmToAccount } from '@valora/viem-account-hsm-gcp'
const account = await gcpHsmToAccount({
hsmKeyVersion:
'projects/your-gcp-project/locations/global/keyRings/your-keyring/cryptoKeys/your-hsm/cryptoKeyVersions/1',
})
const client = createWalletClient({
account,
chain: mainnet,
transport: http(),
})
// Test send a transaction to the HSM key (the HSM key needs to be funded)
const hash = await client.sendTransaction({
to: account.address,
value: parseEther('0.001'),
})
[!IMPORTANT]
Make sure the key in Google Cloud KMS is a secp256k1 key.
[!TIP] You don't have to use an HSM key, you can use a software key as well. See the Google Cloud KMS documentation for more information.
Resources
Acknowledgements
This library is a port of @celo/wallet-hsm-gcp to viem.
Big thanks to the Celo team for the original implementation.
Contributing
- Reporting issues
- Submitting a pull request
- Publishing updates is done automatically via semantic-release. Remember to use conventional commits or your PR will be rejected (since merging it would mess up the changelog and version numbers).