> ## 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.

# useWalletSettings

> ウォレットの設定情報へアクセス・変更するためのフック

## インポート

```tsx theme={null}
import { useWalletSettings } from '@0xsequence/connect'
```

## 使い方

```tsx theme={null}
import { useWalletSettings } from '@0xsequence/connect'

function WalletConfigPanel() {
  const {
    displayedAssets,
    readOnlyNetworks,
    setDisplayedAssets,
    hideExternalConnectOptions,
    hideConnectedWallets,
    hideSocialConnectOptions
  } = useWalletSettings()
  
  // Example function to add a new asset
  const addNewAsset = (contractAddress: string, chainId: number) => {
    setDisplayedAssets([
      ...displayedAssets,
      { contractAddress, chainId }
    ])
  }
  
  // Example function to check if network is read-only
  const isNetworkReadOnly = (chainId: number) => {
    return readOnlyNetworks?.includes(chainId)
  }
  
  return (
    <div>
      <h2>Wallet Settings</h2>
      
      <div>
        <h3>Displayed Assets</h3>
        <ul>
          {displayedAssets.map(asset => (
            <li key={`${asset.chainId}-${asset.contractAddress}`}>
              Chain ID: {asset.chainId}, Contract: {asset.contractAddress}
            </li>
          ))}
        </ul>
        
        <button
          onClick={() => addNewAsset('0x1234...', 1)}
          disabled={isNetworkReadOnly(1)}
        >
          Add ETH Mainnet Asset
        </button>
      </div>
      
      <div>
        <h3>Network Status</h3>
        <ul>
          {[1, 137, 10].map(chainId => (
            <li key={chainId}>
              Chain {chainId}: {isNetworkReadOnly(chainId) ? 'Read-only' : 'Active'}
            </li>
          ))}
        </ul>
      </div>
    </div>
  )
}
```

## 返り値の型

```tsx theme={null}
interface WalletSettingsReturn {
  displayedAssets: Array<{
    contractAddress: string
    chainId: number
  }>
  readOnlyNetworks: number[] | undefined
  setDisplayedAssets: (assets: Array<{
    contractAddress: string
    chainId: number
  }>) => void
  hideExternalConnectOptions?: boolean
  hideConnectedWallets?: boolean
  hideSocialConnectOptions?: boolean
}
```

### プロパティ

#### displayedAssets

`Array<{ contractAddress: string, chainId: number }>`

ウォレット画面に表示するアセットの配列。各アセットは以下で定義されます：

* `contractAddress`: トークンコントラクトのアドレス
* `chainId`：トークンが存在するネットワークID

#### readOnlyNetworks

`number[] | undefined`

トランザクションが無効化されているネットワークIDの配列。これらのネットワークでは残高や取引履歴の閲覧は可能ですが、新規トランザクションの実行はできません。

#### setDisplayedAssets

`(assets: Array<{ contractAddress: string, chainId: number }>) => void`

表示する資産リストを更新する関数です。コントラクトアドレスとチェーンIDを含む資産オブジェクトの配列を受け取ります。

#### hideExternalConnectOptions

`boolean | undefined`

Connectモーダルで外部ウォレットを非表示にするかどうか。

#### hideConnectedWallets

`boolean | undefined`

Connectモーダルで接続済みウォレットを非表示にするかどうか。

#### hideSocialConnectOptions

`boolean | undefined`

Connectモーダルでソーシャルウォレット（メール／ソーシャルログイン）を非表示にするかどうか。

## 補足

このフックはウォレットの表示設定やネットワークのステータス情報にアクセスできます。

主な特徴：

* 資産表示リストの管理
* 読み取り専用ネットワークステータス情報
* 型安全な設定更新

主な利用ケース：

* 表示するトークンリストの管理
* ネットワークが読み取り専用かどうかの確認
* 設定インターフェースの構築

ベストプラクティス：

* 表示資産に追加する前にコントラクトアドレスを検証しましょう
* トランザクションを実行する前にネットワークが読み取り専用か確認しましょう
* 表示資産リストを常に最新に保ちましょう

このフックは、ウォレット設定画面で表示する資産の管理やネットワークステータスの確認によく使われます。
