thirdweb Engine
The most powerful backend engine for web3 apps.
thirdweb engine is a backend server that provides a HTTP interface to interact with any smart contract on any evm chain. Engine handles creating and managing backend wallets, enabling high throughput with automatic nonce and gas management.
The high level functionality of thirdweb engine:
- Create & transact with backend wallets (Local, AWS KMS, Google KMS, etc.)
- High reliability transaction execution with wallet nonce management, automatic transaction retrying and gas management
- Deploy and interact with erc-4337 smart wallets, handle session keys & sending user operations
- Deploy published smart contracts (any EVM chain)
- Read, write and interact with smart contracts (any evm chain)
- Run in your own cloud or use the thirdweb managed service
- Fine-grained user access controls & wallet based client-side authentication [Coming Soon]
- Gasless relayer, bundler, and paymaster for gasless transactions [Coming Soon]
This project is in alpha
- if you're looking for specific features & or want to give feedback, reach out to us!
- Docker
- Postgres DB
Set these environment variables to get started.
Variable Name | Description |
---|---|
THIRDWEB_API_SECRET_KEY |
Create an API KEY on thirdweb Dashboard and copy the SecretKey. |
POSTGRES_CONNECTION_URL |
Postgres connection string, format: postgresql://[user[:password]@][host][:port][/dbname][?param1=value1&...] |
ADMIN_WALLET_ADDRESS |
The initial admin wallet address that can connect to this engine instance from the thirdweb dashboard for setup. |
Run the server using Docker with the following command.
docker run \
-e THIRDWEB_API_SECRET_KEY="<your-api-secret-key>" \
-e POSTGRES_CONNECTION_URL="<your-connection-url>" \
-e ADMIN_WALLET_ADDRESS="<your-admin-wallet-address>" \
-p 3005:3005 \
thirdweb/engine:latest
-
Every request to the server requires an authentication token for admin actions use the thirdweb SecretKey. Use the
Authorization
Header to set the value shown below:Authorization: Bearer <thirdweb SecretKey>
-
Every write request to the server also requires the
x-backend-wallet-address
header to specify which admin wallet to send a transaction with. Use the following format to set this header:x-backend-wallet-address: 0x3ecdbf3b911d0e9052b64850693888b008e18373
-
Here's the link to the full API reference, or in development mode, go to the server root url to see the reference.
NOTE: To use the server in
https
mode onlocalhost
, set the env variableENABLE_HTTPS
totrue
. This is only recommended for development purposes, when integrating your local Engine Instance with the thirdweb dashboard.
- User Guide - Setup an engine instance.
- Smart Wallets Guide - Deploy, manage, and transact with smart wallets with engine.
- Webhook Guide - Setup webhooks with engine.
- Websocket Guide - Listen for transaction updates via websockets.
- Load Testing Guide - Load test engine for your use case.
- AWS KMS Setup - Setup engine to use AWS KMS to manage wallets.
- Google KMS Setup - Setup engine to use Google KMS to manage wallets.
- Frequently Asked Questions - The most common questions & answers.
- Contributing to Engine - Contribute to this project!
- Full API Playground - Full playground to interact with engine yourself.
- Community Discord Server - Join our community to discuss ideas & issues or just to hangout 😄
If you believe you have found a security vulnerability in any of our packages, we kindly ask you not to open a public issue; and to disclose this to us by emailing security@thirdweb.com
.