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

# 连接与授权

> 连接权限、会话和网络切换。

## 状态与权限

`getProviderState()` 返回 `isConnected`、`isUnlocked`、`accounts`、`network`。未授权时 `network` 为 `null`；未授权或锁定时账户列表为空。连接流程可引导用户解锁。

基础 `connect()` 获取账户、地址、网络、余额和资产读取权限；签名、发送、切换网络仍需要用户确认。`getCapabilities()` 描述实现支持的方法，不代表网站已获得授权。

| 功能 | connect 选项 |
| - | - |
| 查询历史 / 等待交易状态 | `read: ['transactions']` |
| 发行 | `actions: ['issueAsset']` |
| 增发 | `actions: ['reissueAsset']` |
| 销毁 | `actions: ['burnAsset']` |

只申请网站需要的权限。若主要功能是发行，可在首次点击时合并申请：

```ts theme={null}
import type { ArksatClient } from '@arksat/wallet-sdk'

export async function connectIssuer(client: ArksatClient) {
  return client.connect({ actions: ['issueAsset'] })
}
```

已基础连接的网站第一次申请发行权限，会出现一次追加授权。相同权限仍有效时重复申请不会再次弹连接授权；每次交易仍单独确认。权限绑定 origin、钱包和网络，撤销连接或更换上下文后重新检查。

## 切换网络

```ts theme={null}
import type { ArksatClient } from '@arksat/wallet-sdk'

export async function switchToTestnet(client: ArksatClient) {
  await client.switchNetwork({ network: 'mutinynet' })
  return client.getProviderState()
}
```

支持 `mainnet`、`mutinynet`，需要用户批准。完成后按新网络重新检查授权、连接和加载资产，并重建协议客户端。

`getWalletSession()` 返回同一时点的公开地址、公钥、网络和 Arkade 配置，不包含私钥。账户变化、锁定、断连、网络变化或后台重启后丢弃旧会话。资产操作和签名可携带 `expectedAddress`、`expectedNetwork`、`expectedSessionId`，避免在错误上下文执行。

`disconnect()` 断开当前网站。组件卸载时同时取消[事件订阅](https://docs.arksat.xyz/events.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.