> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequence.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Sidekick クイックスタート

> Sidekick を使い始めるためのクイックスタートガイド

[GitHub Container Registry](https://github.com/0xsequence/sidekick/pkgs/container/sidekick)で公開されているDockerイメージをご利用いただけます。

```shell theme={null}
docker run -p 7500:7500 -e SEQUENCE_PROJECT_ACCESS_KEY=... ghcr.io/0xsequence/sidekick:latest
```

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

<Note>
  SEQUENCE\_PROJECT\_ACCESS\_KEY の設定も推奨していますが、テスト目的の場合はデフォルトのキーも利用できます。ご自身のキーは[Sequence Builder](https://sequence.build/)から取得できます。
</Note>

## バックエンドウォレット

Sidekickは、指定された`BACKEND_WALLET_PV_KEY`または`AWS / GCP KMS`署名者に基づいてSequenceスマートコントラクトウォレットを作成します。これにより、ガス代の肩代わり（ガススポンサーシップ）、トランザクションのバッチ処理、その他の最適化が可能となります。

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

* ローカル環境でセットアップする場合は、[BACKEND\_WALLET\_PV\_KEY](https://github.com/0xsequence-demos/sequence-sidekick/blob/e76a47d0b9ef19f23736c1e8f863ed4795b855a8/.env.example#L16)を.envファイルに記載してください（本番環境では推奨されません）。また、指定しない場合はランダムなキーが自動生成され、`dev.key`ファイルに保存されます。
* 推奨方法： [AWS](https://aws.amazon.com/kms/) または [GCP](https://cloud.google.com/kms) KMSを設定し、必要な認証情報を.envファイルに追加

<Note>
  ローカル、AWS、GCPウォレット構成に必要な認証情報は、[env.example](https://github.com/0xsequence-demos/sequence-sidekick/blob/master/.env.example)ファイルをご参照ください。
</Note>

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

  * AWS KMS: `ECC_NIST_P256_KEY_ALIAS`
  * GCP KMS: `GCP_KEY_RING_NAME`
</Note>

SidekickはAWSおよびGCP KMSとシームレスに統合でき、KMS署名者の利用が可能です。[アダプター](https://github.com/orgs/0xsequence/repositories?q=kms)を用意しており、AWS/GCP KMSをethersの署名者タイプと互換にし、最新バージョンにも対応しています。

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

<Callout type="warning">
  Sequence Sidekickを利用する際の注意点：

  * `msg.sender`はあなたのEOAのSequenceウォレットアドレスとなり、EOAアドレスそのものではありません。
  * `tx.origin`はSequenceリレイヤーアドレスのいずれかになります。
  * コントラクト関数呼び出しの際は、Sequenceウォレットアドレスに適切な権限が付与されていることを確認してください。
  * [メインネットステータスページ](https://mainnet-relayer.sequence.app/status)でアクティブなリレイヤーアドレスを確認できます。
</Callout>

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

<Steps>
  <Step title="Sidekickリポジトリをクローンする">
    ```shell theme={null}
    git clone https://github.com/0xsequence/sidekick
    ```
  </Step>

  <Step title="必要な環境変数を設定する">
    ### 必須環境変数

    | 変数                   | 説明                                 |
    | -------------------- | ---------------------------------- |
    | PROJECT\_ACCESS\_KEY | Sequence Builder APIキーから取得したアクセスキー |

    ### オプションの環境変数

    | 変数                           | 説明                                       |
    | ---------------------------- | ---------------------------------------- |
    | BACKEND\_WALLET\_PV\_KEY     | トランザクション署名に使用するEOAの秘密鍵                   |
    | PORT                         | Sidekickサーバーのポート（デフォルト: 7500）            |
    | HOST                         | サーバーのホストアドレス（デフォルト: 0.0.0.0）             |
    | REDIS\_HOST                  | Redisサーバーのホスト（デフォルト: localhost）          |
    | REDIS\_PORT                  | Redisサーバーのポート（デフォルト: 6379）               |
    | REDIS\_PASSWORD              | Redisサーバーのパスワード（任意）                      |
    | DATABASE\_URL                | Sidekickデータベース用のPostgreSQL接続文字列          |
    | SIDEKICK\_API\_SECRET\_KEY   | Sidekick APIへの書き込みアクセスに必要なシークレットキー       |
    | ETHERSCAN\_API\_KEY          | コントラクト検証を有効にするためのEtherscan APIキー         |
    | VERIFY\_CONTRACT\_ON\_DEPLOY | デプロイ時の自動コントラクト検証を有効化（trueで有効）            |
    | DEBUG                        | デバッグログを有効化（trueで詳細出力）                    |
    | SIGNER\_TYPE                 | 使用する署名者の種類（local, aws\_kms, google\_kms） |
    | AWS\_REGION                  | AWSアカウントのリージョン                           |
    | AWS\_ACCESS\_KEY\_ID         | AWSアクセスキーID                              |
    | AWS\_SECRET\_ACCESS\_KEY     | AWSシークレットアクセスキー                          |
    | AWS\_KMS\_KEY\_ID            | 使用するKMSキーのID                             |
    | PROJECT                      | GCPプロジェクト名                               |
    | LOCATION                     | GCPプロジェクトのロケーション                         |
    | KEY\_RING                    | キーリング名                                   |
    | CRYPTO\_KEY                  | 暗号鍵名                                     |
    | CRYPTO\_KEY\_VERSION         | 暗号鍵のバージョン                                |

    ### ウォレット構成用変数

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

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

    | 変数                       | 説明    |      |
    | ------------------------ | ----- | ---- |
    | SIGNER\_TYPE             | local |      |
    | BACKEND\_WALLET\_PV\_KEY | 0x... | （任意） |

    #### AWS KMSの場合：

    | 変数                       | 説明              |
    | ------------------------ | --------------- |
    | SIGNER\_TYPE             | aws\_kms        |
    | AWS\_REGION              | AWSアカウントのリージョン  |
    | AWS\_ACCESS\_KEY\_ID     | AWSアクセスキーID     |
    | AWS\_SECRET\_ACCESS\_KEY | AWSシークレットアクセスキー |
    | AWS\_KMS\_KEY\_ID        | 使用するKMSキーのID    |

    #### GCP KMSの場合：

    | 変数                   | 説明               |
    | -------------------- | ---------------- |
    | SIGNER\_TYPE         | google\_kms      |
    | PROJECT              | GCPプロジェクト名       |
    | LOCATION             | GCPプロジェクトのロケーション |
    | KEY\_RING            | キーリング名           |
    | CRYPTO\_KEY          | 暗号鍵名             |
    | CRYPTO\_KEY\_VERSION | 暗号鍵のバージョン        |
  </Step>

  <Step title="Dockerがインストールされていることを確認してください">
    [こちら](https://www.docker.com/get-started/)から入手できます
  </Step>

  <Step title="DockerコンテナでSidekickを起動する">
    ```shell theme={null}
    pnpm docker:start
    ```
  </Step>

  <Step title="バックエンドウォレットアドレスの確認">
    ```shell theme={null}
    curl -X GET 'http://localhost:3000/sidekick/smart-account-address'
    ```
  </Step>
</Steps>

## Dockerを使わない開発モード

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

```shell theme={null}
pnpm install
pnpm dev:withRedis
```

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

## ガススポンサーシップ

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