# @0xsequence/hooks 中文文档

规范地址：https://npmcn.com/package/%400xsequence/hooks/

版本：5\.4\.12
npm 元数据更新时间：2026-07-13T13:06:22.120Z
中文译文更新时间：2026-11-06T08:37:50.329Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%400xsequence/hooks
原文对照：https://npmcn.com/package/%400xsequence/hooks/?lang=original
项目主页：https://github.com/0xsequence/web-sdk/tree/master#readme
源码仓库：https://github.com/0xsequence/web-sdk#master

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：579 kB，412 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@0xsequence/api \>=2\.3\.43，@0xsequence/indexer \>=2\.3\.43，@0xsequence/metadata \>=2\.3\.43，@0xsequence/network \>=2\.3\.43，@tanstack/react-query \>= 5，react \>= 17，viem \>= 2\.44\.0
- 首次发布：2025-03-19T10:36:35.196Z
- 最新版本发布：2026-07-13T13:06:21.725Z
- 近 30 天下载量：3783（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：98（近 12 个月 34 个）

## 中文简介

序列 Web SDK 的反向钩

## 安装

```sh
npm install @0xsequence/hooks
```

也可以使用：`pnpm add @0xsequence/hooks`、`yarn add @0xsequence/hooks`、`bun add @0xsequence/hooks`

## README

# @ 0x序列/ 用户名

与序列服务进行相接接接钩.

用 `SequenceHooksProvider` 为钩子提供配置.

```tsx
<SequenceHooksProvider
  config={{
    projectAccessKey: 'your-project-access-key',
    env: {
      indexerGatewayUrl: 'your-indexer-gateway-url',
      metadataUrl: 'your-metadata-url',
      apiUrl: 'your-api-url',
      indexerUrl: 'your-indexer-url',
      imageProxyUrl: 'your-image-proxy-url',
      builderUrl: 'your-builder-api-url'
    }
  }}
>
  <App />
</SequenceHooksProvider>
```

## 钩子:

序列钩根据它们与:

### API 密码

-   使用 GetCoinPrices 软件
-   使用可编译文件
-   使用 Get 交换

### 索引器

-   使用 Get 交易历史
-   使用 Get 交易历史摘要

### 索引网关

-   使用 NativeTokenBalance 软件
-   使用 TokenBalances 概要
-   使用 TokenBalances 详细信息
-   使用 TokenBalances 按合同
-   使用 GetSingleTokenBalance 软件

### 元数据

-   使用 Get ContactInfo 软件
-   使用Get多功能订约信息
-   使用 GetTokenMetadata 数据

### 组合

-   使用 GetSwap 引用

## 使用量

### 使用 GetCoinPrices 软件

```tsx
import { useGetCoinPrices } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetCoinPrices(
  [
    {
      chainId: 1,
      contractAddress: '0x0123456789012345678901234567890123456789'
    }
  ],
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用可编译文件

```tsx
import { useGetCollectiblePrices } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetCollectiblePrices(
  [
    {
      chainId: 1,
      contractAddress: '0x0123456789012345678901234567890123456789',
      tokenId: '1'
    }
  ],
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 Get 交换

```tsx
import { useGetExchangeRate } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetExchangeRate('CAD', {
  // options param is optional and default values are below
  disabled: false
})
```

### 使用 Get 交易历史

```tsx
import { useGetTransactionHistory } from '@0xsequence/hooks'

const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage, error } = useGetTransactionHistory({
  accountAddresses: ['0x0123456789012345678901234567890123456789'],
  contractAddresses: ['0x0123456789012345678901234567890123456789'], // optional
  tokenId: '1', // optional
  chainId: 1, // optional
  page: { // optional
    pageSize: 10,
  },
  {
    // options param is optional and default values are below
    disabled: false,
  }
})
```

### 使用 Get 交易历史摘要

```tsx
import { useGetTransactionHistorySummary } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetTransactionHistorySummary(
  {
    accountAddresses: ['0x0123456789012345678901234567890123456789'],
    chainIds: [1]
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 NativeTokenBalance 软件

```tsx
import { useGetNativeTokenBalance } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetNativeTokenBalance(
  {
    accountAddress: '0x0123456789012345678901234567890123456789',
    chainIds: [1], // either use chainIds or networks name
    networks: ['mainnet']
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 TokenBalances 概要

```tsx
import { ContractVerificationStatus } from '@0xsequence/indexer'
import { useGetTokenBalancesSummary } from '@0xsequence/hooks'

const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage, error } = useGetTokenBalancesSummary(
  {
    chainIds: [1], // either use chainIds or networks name
    networks: ['mainnet'],
    filter: {
      accountAddresses: ['0x0123456789012345678901234567890123456789'],
      contractWhitelist: ['0x0123456789012345678901234567890123456789'],
      contractBlacklist: ['0x0000000000000000000000000000000000000000'],
      contractStatus: ContractVerificationStatus.VERIFIED,
      omitNativeBalances: false
    },
    omitMetadata: false, // optional
    page: {
      // optional
      pageSize: 10
    }
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 TokenBalances 详细信息

```tsx
import { ContractVerificationStatus } from '@0xsequence/indexer'
import { useGetTokenBalancesDetails } from '@0xsequence/hooks'

const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage, error } = useGetTokenBalancesDetails(
  {
    chainIds: [1], // either use chainIds or networks name
    networks: ['mainnet'],
    filter: {
      accountAddresses: ['0x0123456789012345678901234567890123456789'],
      contractWhitelist: ['0x0123456789012345678901234567890123456789'],
      contractBlacklist: ['0x0000000000000000000000000000000000000000'],
      contractStatus: ContractVerificationStatus.VERIFIED,
      omitNativeBalances: false
    },
    omitMetadata: false, // optional
    page: {
      // optional
      pageSize: 10
    }
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 TokenBalances 按合同

```tsx
import { ContractVerificationStatus } from '@0xsequence/indexer'
import { useGetTokenBalancesByContract } from '@0xsequence/hooks'

const { data, isLoading, fetchNextPage, hasNextPage, isFetchingNextPage, error } = useGetTokenBalancesByContract(
  {
    chainIds: [1], // either use chainIds or networks name
    networks: ['mainnet'],
    filter: {
      accountAddresses: ['0x0123456789012345678901234567890123456789'],
      contractWhitelist: ['0x0123456789012345678901234567890123456789'],
      contractBlacklist: ['0x0000000000000000000000000000000000000000'],
      contractStatus: ContractVerificationStatus.VERIFIED,
      omitNativeBalances: false
    },
    omitMetadata: false, // optional
    page: {
      // optional
      pageSize: 10
    }
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 GetSingleTokenBalance 软件

```tsx
import { useGetSingleTokenBalance } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetSingleTokenBalance({
  chainId: 1,
  accountAddress: '0x9876543210987654321098765432109876543210',
  contractAddress: '0x0123456789012345678901234567890123456789'
})
```

### 使用 Get ContactInfo 软件

```tsx
import { useGetContractInfo } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetContractInfo(
  {
    chainId: 1,
    contractAddress: '0x0123456789012345678901234567890123456789'
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用Get多功能订约信息

```tsx
import { useGetMultipleContractInfo } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetMultipleContractInfo(
  [
    { chainId: 1, contractAddress: '0x0123456789012345678901234567890123456789' },
    { chainId: 1, contractAddress: '0x0123456789012345678901234567890123456789' }
  ],
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 GetTokenMetadata 数据

```tsx
import { useGetTokenMetadata } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetTokenMetadata(
  {
    chainId: '1',
    contractAddress: '0x0123456789012345678901234567890123456789',
    tokenIds: ['1']
  },
  {
    // options param is optional and default values are below
    disabled: false
  }
)
```

### 使用 GetSwap 引用

```tsx
import { useGetSwapQuote } from '@0xsequence/hooks'

const { data, isLoading, error } = useGetSwapQuote({
  userAddress: '0x9876543210987654321098765432109876543210',
  buyCurrencyAddress: '0x0123456789012345678901234567890123456789',
  sellCurrencyAddress: '0x0123456789012345678901234567890123456789',
  buyAmount: '1',
  chainId: 1,
  includeApprove: true,
  slippagePercentage: 5 // optional
})
```

## 常见问题

### @0xsequence/hooks 是什么？

序列 Web SDK 的反向钩

### 如何安装 @0xsequence/hooks？

在项目目录运行 npm install @0xsequence/hooks，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@0xsequence/api（\>=2\.3\.43）、@0xsequence/indexer（\>=2\.3\.43）、@0xsequence/metadata（\>=2\.3\.43）、@0xsequence/network（\>=2\.3\.43）、@tanstack/react-query（\>= 5）、react（\>= 17）、viem（\>= 2\.44\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @0xsequence/hooks 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @0xsequence/hooks 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @0xsequence/hooks 可以商用吗？

@0xsequence/hooks 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @0xsequence/hooks 的下载量有多少？

根据 npm 官方下载统计，@0xsequence/hooks 在 2026/10/04 – 2026/11/02 这 30 天内被下载 3,783 次，日均约 126 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @0xsequence/hooks 还在维护吗？

最新版本 5\.4\.12 发布于 2026/07/13（3 个月前）；至今共发布 98 个版本，其中过去 12 个月发布了 34 个；首次发布于 2025/03/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

