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

# MPC 钱包

> AgentWallex 如何通过 Paratro 使用 2-of-3 阈值 MPC 签名来保护代理钱包。

## 概述

AgentWallex 中的每个代理钱包都由多方计算（MPC）保护。完整的私钥**永远不会被重建** — 不在内存中，不在磁盘上，不在任何地方。密码学密钥分片分布在三个独立方之间，其中任意两方可以合作签署交易。

## MPC 工作原理

传统钱包存储单一私钥。如果该密钥被盗，所有资金都会丢失。MPC 消除了这一单点故障。

### 2-of-3 阈值签名

AgentWallex 使用 Paratro 的 2-of-3 阈值 MPC 协议。生成三个密钥分片，其中任意两个即可产生有效签名：

| 分片   | 持有者              | 角色      |
| ---- | ---------------- | ------- |
| 分片 1 | AgentWallex 签名服务 | 主动签名参与方 |
| 分片 2 | 独立托管节点           | 主动签名参与方 |
| 分片 3 | 冷存储              | 恢复和灾难恢复 |

<Note>
  在正常操作期间，分片 1 和分片 2 协作签署交易。分片 3 保持离线状态，仅用于恢复场景。
</Note>

### 安全属性

* **无单点泄露** — 攻击者必须同时入侵两个独立系统。
* **无密钥重建** — 完整的私钥永远不会在任何单一位置组装。
* **前向保密** — 定期分片轮换（主动密钥共享）使旧分片失效。
* **钱包地址不变** — 分片轮换不会更改钱包的链上地址。

## 密钥生成

密钥使用分布式密钥生成（DKG）创建：

<Steps>
  <Step title="随机分片生成">
    3 个 MPC 节点中的每一个独立生成一个随机分片。
  </Step>

  <Step title="公钥推导">
    分片通过密码学方式组合以生成公钥（以及对应的钱包地址）。
  </Step>

  <Step title="分片分发">
    每个节点仅保留自己的分片。完整的私钥从未存在过。
  </Step>
</Steps>

```typescript theme={null}
// When you create an agent, DKG happens automatically
const agent = await aw.agents.create({
  name: "my-agent",
  chain: "eip155:8453",
});

// The wallet address is derived from the distributed public key
console.log(agent.wallet.address); // 0x...
```

## 密钥轮换

密钥分片使用一种称为**主动密钥共享**的技术进行定期轮换。此过程：

1. 生成与同一公钥对应的新分片。
2. 将新分片分发给所有三方。
3. 销毁旧分片。

轮换后，即使攻击者之前已经窃取了一个分片，该分片也变得密码学上无用。

<Info>
  密钥轮换是自动的，开发者无需采取任何操作。钱包地址保持不变。
</Info>

## 紧急冻结

任何授权方都可以立即冻结代理的钱包，阻止所有交易：

<CodeGroup>
  ```typescript SDK theme={null}
  // Freeze — immediate, no transactions can be signed
  await aw.agents.freeze("agent_abc123");

  // Unfreeze — subject to mandatory cool-down period
  await aw.agents.unfreeze("agent_abc123");
  ```

  ```bash API theme={null}
  # Freeze
  curl -X PUT https://api.agentwallex.com/api/v1/agents/agent_abc123/status \
    -H "X-API-Key: awx_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{"status": "inactive"}'

  # Unfreeze
  curl -X PUT https://api.agentwallex.com/api/v1/agents/agent_abc123/status \
    -H "X-API-Key: awx_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{"status": "active"}'
  ```
</CodeGroup>

<Warning>
  冻结钱包后，有强制 10 分钟的冷却期才能解冻。这可以防止攻击者在冻结和解冻钱包后立即重新启用。
</Warning>

## 基础设施安全网

除了开发者配置的策略之外，Paratro 还在 MPC 签名层执行硬限制，这些限制**无法通过** API 调用覆盖：

| 控制项    | 默认值        |
| ------ | ---------- |
| 绝对每日上限 | \$50,000   |
| 异常检测   | 基于 ML，始终启用 |
| 紧急冻结   | 始终可用       |
| 冷却期    | 冻结后 10 分钟  |

即使您的 API 密钥被泄露或业务层策略配置有误，这些限制也能作为最后一道防线。
