> For the complete documentation index, see [llms.txt](https://sarah-inc.gitbook.io/sarah-whitepaper-ver-0.5-_-jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sarah-inc.gitbook.io/sarah-whitepaper-ver-0.5-_-jp/sarah-wallet-zhan-le.md).

# SARAH Wallet戦略

ERC-6551（TBA）を活用したWallet戦略を記載

## ユーザーWallet戦略概要

ERC-6551を活用することで、**ユーザーウォレット非接続状態でのNFT保有**を実現する。

決定論的に作成された**アカウントアドレス**とオフチェーン上の**ユーザー情報**を紐付けることにより、SARAHユーザーはウォレットを意識することなく、OnigiriChain上のデータを間接的に保有することを可能とする。

<figure><img src="https://2158671800-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0ABXGKtc2yAMNwGdHtgE%2Fuploads%2Fe79kfojHJgc0e4rPgMLv%2Fimage.png?alt=media&amp;token=95db7fb0-51e7-4bef-b4ab-86cf9a5109f5" alt=""><figcaption><p>ERC-6551構成要素と挙動</p></figcaption></figure>

<figure><img src="https://2158671800-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0ABXGKtc2yAMNwGdHtgE%2Fuploads%2FgizVQncnR82POR7HS8pE%2Fimage.png?alt=media&amp;token=f2ae4105-b77f-44f9-99ad-65826001b90c" alt=""><figcaption><p>ERC-6551と各種Tokenの関係性</p></figcaption></figure>

## ユーザー所有ウォレットへのERC-6551（TBA）譲渡

アカウントアドレスが保有する各種Tokenをユーザー所有のウォレットへTransferする際に、ERC-6551を生成しTokenBoundAccountに紐づく全TokenデータをユーザーのウォレットへTransfer可能な構成とする。

ERC-6551をユーザーウォレットにTransfer後、SARAHシステムはTransfer前と変わらずTBAのアカウントアドレスに対して各種Tokenを紐付ける状態となる。

ユーザー所有のウォレットへERC-6551をTransfer後、ERC-6551本体の譲渡は不可となり、TBAに紐付く各種データは自由に譲渡可能な状態となる。

<figure><img src="https://2158671800-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0ABXGKtc2yAMNwGdHtgE%2Fuploads%2F4J0llHkSDP2vrARwuIxP%2Fimage.png?alt=media&amp;token=bbf25b2b-843a-4706-a163-27e12f77e502" alt=""><figcaption><p>TBA譲渡前と譲渡後データ構造</p></figcaption></figure>

## NOREN NFTの譲渡

NOREN NFTは、SARAHシステムを経由してユーザーウォレットにERC-6551を譲渡したのちに、他ユーザーへ譲渡可能な状態となる。

尚、NOREN NFTのTransfer時に、ガス代はかからないものとする（Relayerを経由させることで実現）

## TBA譲渡に関する制限事項

ERC-6551をSARAHサービスからUserWalletへTransferすると、二度と譲渡できない仕組みを導入することにより、SARAHシステムにおけるTBAアドレスとその保有者のリレーション（オフチェーン）と、オンチェーン上でのTBA保有者が一致する状態を担保する。

上記譲渡制限の仕組みは、オフチェーンに保持しているユーザー⇔TBAアドレスの整合性（誰かに譲渡されない＝必ずTBAアドレスの保有者がSARAHシステムのユーザーであること）を保証する重要な特徴である。

* UserWalletにTransferされた後、ERC-6551は再度Transferされることはない。
* SARAHシステムはTransfer後も、ERC-6551（TBAアドレス）に対してTokenを紐付け続ける。

これにより、既存ユーザーがBlockChain特有のウォレットの概念を意識することなくサービス利用可能な状態となり、将来的にユーザーウォレットへ自身のデータを譲渡可能かつ、オフチェーン側との整合性が崩れない仕組みを実現する。
