主な機能 🚀

簡単セットアップ

公開されているDockerイメージを利用するか、最小限の設定で開発モードを開始できます。

柔軟なウォレットオプション

ローカルで管理する秘密鍵を使ったSequenceスマートウォレット、またはAWS/GCP KMSと安全に連携してセキュリティを強化できます。

Webhook管理

高性能なSequence Indexerを活用し、独自のカスタムWebhookを構築・設定できます。

Tenderly連携

Tenderlyを利用してトランザクションのデバッグが簡単に行えます。Sidekick経由で実行された各トランザクションにはシミュレーション用URLが付与されます。

自動コントラクト検証

コントラクトの検証は手間がかかりますが、Sidekickがデプロイごとに自動で対応します。

Sequence Builderとの統合

すでにSequence Builderのプロジェクトをお持ちですか?すべてのコントラクトデータをAPIコール1回でSidekickにインポートできます。

Bull MQダッシュボード内蔵

バックグラウンドジョブの作成・監視・管理が可能です。

Swagger UI

APIドキュメントを確認し、Swagger UIでエンドポイントのテストが行えます。

最適化されたトランザクション実行

トランザクションは最適なガス価格で送信され、3ブロック以内にmempoolに含まれない場合は自動で再送信されます。

分析とモニタリング

SidekickはGrafana、Prometheus、Blackbox Exporterと統合されており、バックエンドの状態を監視できます。

バックエンドウォレットについて

Sidekickは、指定したEVM_PRIVATE_KEYに基づいてSequenceスマートコントラクトウォレットを作成します。これにより、ガススポンサーシップやバッチ処理などの最適化が可能です。

バックエンドウォレットの設定方法:

  • ローカル環境用にEVM_PRIVATE_KEYを.envファイルに記載(本番環境では非推奨)
  • 推奨方法: AWS または GCP KMSを設定し、必要な認証情報を.envファイルに追加

ローカル、AWS、GCPウォレット構成に必要な認証情報は、env.exampleファイルをご参照ください。

AWS KMSおよびGCP KMSで正しいキータイプを選択してください。

  • AWS KMS: ECC_NIST_P256_KEY_ALIAS
  • GCP KMS: GCP_KEY_RING_NAME

SidekickはAWSおよびGCP KMSとシームレスに統合でき、KMS署名者の利用が可能です。アダプターを用意しており、AWS/GCP KMSをethersの署名者タイプと互換にし、最新バージョンにも対応しています。

Sequence Sidekickは、ブロックチェーンアプリ開発者にスケーラブルですぐ使えるバックエンドソリューションを提供し、バックエンドの複雑さを気にせず開発に集中できます。

CLIからDockerで開始する

GitHub Container Registryで公開されているDockerイメージをご利用いただけます。

docker run -p 7500:7500 \
  -e EVM_PRIVATE_KEY=0x \
  ghcr.io/0xsequence/sidekick

これで、最小限の機能を備えたローカルのSidekickバックエンドがポート7500で起動します。

SEQUENCE_PROJECT_ACCESS_KEYの設定も推奨しますが、テスト用にデフォルトのキーを用意しています。ご自身のキーはSequence Builderから取得できます。

開発モードでSidekickを起動する

1

Sidekickリポジトリをクローンする

git clone https://github.com/0xsequence/sidekick
2

必要な環境変数を設定する

必須環境変数

変数説明
PROJECT_ACCESS_KEYSequence Builder APIキーから取得したアクセスキー
EVM_PRIVATE_KEYトランザクション署名に使用するEOAの秘密鍵

オプションの環境変数

変数説明
PORTSidekickサーバーのポート(デフォルト: 7500)
HOSTサーバーのホストアドレス(デフォルト: 0.0.0.0)
REDIS_HOSTRedisサーバーのホスト(デフォルト: localhost)
REDIS_PORTRedisサーバーのポート(デフォルト: 6379)
REDIS_PASSWORDRedisサーバーのパスワード(任意)
DATABASE_URLSidekickデータベース用のPostgreSQL接続文字列
SIDEKICK_API_SECRET_KEYSidekick APIへの書き込みアクセスに必要なシークレットキー
ETHERSCAN_API_KEYコントラクト検証を有効にするためのEtherscan APIキー
VERIFY_CONTRACT_ON_DEPLOYデプロイ時の自動コントラクト検証を有効化(trueで有効)
DEBUGデバッグログを有効化(trueで詳細出力)
SIGNER_TYPE使用する署名者の種類(local, aws_kms, google_kms)
AWS_REGIONAWSアカウントのリージョン
AWS_ACCESS_KEY_IDAWSアクセスキーID
AWS_SECRET_ACCESS_KEYAWSシークレットアクセスキー
AWS_KMS_KEY_ID使用するKMSキーのID
PROJECTGCPプロジェクト名
LOCATIONGCPプロジェクトのロケーション
KEY_RINGキーリング名
CRYPTO_KEY暗号鍵名
CRYPTO_KEY_VERSION暗号鍵のバージョン

ウォレット構成用変数

以下のいずれかの構成を選択してください:

ローカルウォレットの場合:

変数説明
SIGNER_TYPElocal
EVM_PRIVATE_KEY0x…

AWS KMSの場合:

変数説明
SIGNER_TYPEaws_kms
AWS_REGIONAWSアカウントのリージョン
AWS_ACCESS_KEY_IDAWSアクセスキーID
AWS_SECRET_ACCESS_KEYAWSシークレットアクセスキー
AWS_KMS_KEY_ID使用するKMSキーのID

GCP KMSの場合:

変数説明
SIGNER_TYPEgoogle_kms
PROJECTGCPプロジェクト名
LOCATIONGCPプロジェクトのロケーション
KEY_RINGキーリング名
CRYPTO_KEY暗号鍵名
CRYPTO_KEY_VERSION暗号鍵のバージョン
3

Dockerがインストールされていることを確認してください

こちらから入手できます

4

DockerコンテナでSidekickを起動する

pnpm docker:start
5

バックエンドウォレットアドレスの確認

curl -X GET 'http://localhost:3000/sidekick/smart-account-address'

Dockerを使わない開発モード

Dockerを使わずにコードベースを変更してテストしたい場合

pnpm install
pnpm dev:withRedis

このコマンドでSidekickが起動し、Redisサーバーも同時に開始されます。

ガススポンサーシップ

テストネットでは、すべてのトランザクションの手数料を当社が負担します。ただし、メインネットでは、トランザクションが正しく処理されるようにコントラクト自体の手数料をスポンサーする必要があります。詳しくは、Gas Sponsorshipソリューションをご覧ください。