KovacZan / engine

The most powerful backend engine for web3 apps.

Home Page:https://web3-api-akbv.chainsaw-dev.zeet.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool



thirdweb Engine

Join our Discord!

The most powerful backend engine for web3 apps.

Table of contents

Introduction

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:

Overview

  • 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!

Requirements

  1. Docker
  2. Postgres DB

Getting started

Setup environment variables

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

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

Using the server

  • 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 on localhost, set the env variable ENABLE_HTTPS to true. This is only recommended for development purposes, when integrating your local Engine Instance with the thirdweb dashboard.

Resources

Using Engine

Other Resources

Security

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.

About

The most powerful backend engine for web3 apps.

https://web3-api-akbv.chainsaw-dev.zeet.app

License:Apache License 2.0


Languages

Language:TypeScript 99.3%Language:Dockerfile 0.5%Language:PLpgSQL 0.2%