Wallet Configuration
Auth makes use of a server-side wallet to sign and verify JWTs, as covered in the how auth works section. You can configure this wallet using a variety of wallet management options, giving you the freedom to choose the most convenient and secure setup for your project.
Simple Wallets
The easiest way to get started with Auth would be to use a simple private key or signer wallet directly. It's easy to use such a setup with just the core @thirdweb-dev/auth
package.
Setup
Use the following installation to get started with Auth using a simple EVM private key or signer wallet:
Private Key Wallet
You can use an EVM private key (a 64 character hex-string) as your wallet by using the PrivateKeyWallet
class from the @thirdweb-dev/auth/evm
entrypoint.
Signer Wallet
You can also use any signer wallet compatible with the ethers.Signer
interface, such as the ethers.Wallet
class.
Advanced Wallets
For more advanced wallet setups like cloud wallets, managed private keys, and more, we have a variety of options available in our @thirdweb-dev/wallets
package. The package is an optional peerDependency
of @thirdweb-dev/auth
, so you'll need to install it separately, along with any peer dependencies of the specific wallet you want to use.
For more information on the available wallets and the specific of their setup, see the @thirdweb-dev/wallets
documentation
For example, here's how you would use a signing key from AWS Secrets Manager as your Auth wallet using the @thirdweb-dev/wallets
package (you would need to install its @aws-sdk/client-secrets-manager
peer dependency as well):
Custom Wallets
If none of the above methods are suitable for your project, you can also create your own custom wallet class by implementing the GenericAuthWallet
interface from the @thirdweb-dev/wallets
package for a completely custom setup.
Auth only requires the following simple wallet interface to facilitate signing and verification of JWTs:
You can see how this interface is chain agnostic, and can be used across different blockchain ecosystems.
For example, here is a minimal implementation of the basic SignerWallet
class from the @thirdweb-dev/auth/evm
entry point, which follows the GenericAuthWallet
interface: