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

# Billeteras MPC

> Cómo AgentWallex utiliza firma MPC de umbral 2-de-3 mediante Paratro para proteger las billeteras de agentes.

## Descripción general

Cada billetera de agente en AgentWallex está protegida por Computación Multi-Parte (MPC). La clave privada completa **nunca se reconstruye** — ni en memoria, ni en disco, ni en ningún lugar. En su lugar, los fragmentos criptográficos de la clave se distribuyen entre tres partes independientes, y cualquiera dos de ellas pueden cooperar para firmar una transacción.

## Cómo funciona MPC

Las billeteras tradicionales almacenan una sola clave privada. Si esa clave es robada, todos los fondos se pierden. MPC elimina este punto único de fallo.

### Firma de umbral 2-de-3

AgentWallex utiliza el protocolo MPC de umbral 2-de-3 de Paratro. Se generan tres fragmentos de clave, y cualquiera dos son suficientes para producir una firma válida:

| Fragmento   | Titular                          | Rol                                        |
| ----------- | -------------------------------- | ------------------------------------------ |
| Fragmento 1 | Servicio de firma de AgentWallex | Participante activo de firma               |
| Fragmento 2 | Nodo custodio independiente      | Participante activo de firma               |
| Fragmento 3 | Almacenamiento en frío           | Recuperación y recuperación ante desastres |

<Note>
  Durante la operación normal, el Fragmento 1 y el Fragmento 2 cooperan para firmar transacciones. El Fragmento 3 permanece fuera de línea y solo se utiliza para escenarios de recuperación.
</Note>

### Propiedades de seguridad

* **Sin punto único de compromiso** — Un atacante debe comprometer dos sistemas independientes simultáneamente.
* **Sin reconstrucción de clave** — La clave privada completa nunca se ensambla en ningún lugar.
* **Secreto hacia adelante** — La rotación regular de fragmentos (compartición proactiva de secretos) invalida los fragmentos antiguos.
* **Misma dirección de billetera** — La rotación de fragmentos no cambia la dirección on-chain de la billetera.

## Generación de claves

Las claves se generan utilizando Generación de Claves Distribuida (DKG):

<Steps>
  <Step title="Generación de fragmentos aleatorios">
    Cada uno de los 3 nodos MPC genera independientemente un fragmento aleatorio.
  </Step>

  <Step title="Derivación de clave pública">
    Los fragmentos se combinan criptográficamente para producir una clave pública (y la dirección de billetera correspondiente).
  </Step>

  <Step title="Distribución de fragmentos">
    Cada nodo retiene solo su propio fragmento. La clave privada completa nunca existe.
  </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...
```

## Rotación de claves

Los fragmentos de claves se rotan periódicamente utilizando una técnica llamada **compartición proactiva de secretos**. Este proceso:

1. Genera nuevos fragmentos que corresponden a la misma clave pública.
2. Distribuye los nuevos fragmentos a las tres partes.
3. Destruye los fragmentos antiguos.

Después de la rotación, incluso si un atacante hubiera robado previamente un fragmento, este se vuelve criptográficamente inútil.

<Info>
  La rotación de claves es automática y no requiere ninguna acción por parte del desarrollador. La dirección de la billetera permanece igual.
</Info>

## Congelamiento de emergencia

Cualquier parte autorizada puede congelar instantáneamente la billetera de un agente, impidiendo todas las transacciones:

<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>
  Después de congelar una billetera, hay un período obligatorio de enfriamiento de 10 minutos antes de que pueda ser descongelada. Esto evita que un atacante reactive inmediatamente una billetera que ha congelado y descongelado.
</Warning>

## Red de seguridad de infraestructura

Más allá de las políticas configuradas por el desarrollador, Paratro aplica límites estrictos a nivel de firma MPC que **no pueden ser anulados** por llamadas a la API:

| Control                     | Valor predeterminado                 |
| --------------------------- | ------------------------------------ |
| Límite diario absoluto      | \$50,000                             |
| Detección de anomalías      | Basada en ML, siempre habilitada     |
| Congelamiento de emergencia | Siempre disponible                   |
| Período de enfriamiento     | 10 minutos después del congelamiento |

Estos límites actúan como última línea de defensa, incluso si su clave API se ve comprometida o sus políticas de capa de negocio están mal configuradas.
