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

# Portefeuilles MPC

> Comment AgentWallex utilise la signature MPC a seuil 2-sur-3 via Paratro pour securiser les portefeuilles d'agents.

## Presentation

Chaque portefeuille d'agent dans AgentWallex est securise par le calcul multi-parties (MPC). La cle privee complete n'est **jamais reconstituee** — ni en memoire, ni sur disque, nulle part. A la place, des fragments de cles cryptographiques sont distribues entre trois parties independantes, et n'importe quelles deux peuvent cooperer pour signer une transaction.

## Comment fonctionne le MPC

Les portefeuilles traditionnels stockent une seule cle privee. Si cette cle est volee, tous les fonds sont perdus. Le MPC elimine ce point de defaillance unique.

### Signature a seuil 2-sur-3

AgentWallex utilise le protocole MPC a seuil 2-sur-3 de Paratro. Trois fragments de cles sont generes, et n'importe quels deux suffisent pour produire une signature valide :

| Fragment   | Detenteur                        | Role                                   |
| ---------- | -------------------------------- | -------------------------------------- |
| Fragment 1 | Service de signature AgentWallex | Participant actif a la signature       |
| Fragment 2 | Noeud de garde independant       | Participant actif a la signature       |
| Fragment 3 | Stockage a froid                 | Recuperation et reprise apres sinistre |

<Note>
  En fonctionnement normal, le Fragment 1 et le Fragment 2 cooperent pour signer les transactions. Le Fragment 3 reste hors ligne et n'est utilise que pour les scenarios de recuperation.
</Note>

### Proprietes de securite

* **Aucun point de compromission unique** — Un attaquant doit compromettre deux systemes independants simultanement.
* **Aucune reconstitution de cle** — La cle privee complete n'est jamais assemblee en un seul endroit.
* **Confidentialite persistante** — La rotation reguliere des fragments (partage proactif de secret) invalide les anciens fragments.
* **Meme adresse de portefeuille** — La rotation des fragments ne change pas l'adresse on-chain du portefeuille.

## Generation des cles

Les cles sont generees en utilisant la generation distribuee de cles (DKG) :

<Steps>
  <Step title="Generation de fragment aleatoire">
    Chacun des 3 noeuds MPC genere independamment un fragment aleatoire.
  </Step>

  <Step title="Derivation de la cle publique">
    Les fragments sont combines cryptographiquement pour produire une cle publique (et l'adresse de portefeuille correspondante).
  </Step>

  <Step title="Distribution des fragments">
    Chaque noeud ne conserve que son propre fragment. La cle privee complete n'existe jamais.
  </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...
```

## Rotation des cles

Les fragments de cles sont soumis a une rotation periodique en utilisant une technique appelee **partage proactif de secret**. Ce processus :

1. Genere de nouveaux fragments correspondant a la meme cle publique.
2. Distribue les nouveaux fragments aux trois parties.
3. Detruit les anciens fragments.

Apres la rotation, meme si un attaquant avait precedemment vole un fragment, il devient cryptographiquement inutile.

<Info>
  La rotation des cles est automatique et ne necessite aucune action de la part du developpeur. L'adresse du portefeuille reste la meme.
</Info>

## Gel d'urgence

Toute partie autorisee peut geler instantanement le portefeuille d'un agent, empechant toutes les transactions :

<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>
  Apres le gel d'un portefeuille, il y a une periode de refroidissement obligatoire de 10 minutes avant qu'il ne puisse etre degele. Cela empeche un attaquant de reactiver immediatement un portefeuille qu'il a gele et degele.
</Warning>

## Filet de securite d'infrastructure

Au-dela des politiques configurees par le developpeur, Paratro applique des limites strictes au niveau de la signature MPC qui **ne peuvent pas etre outrepassees** par des appels API :

| Controle                   | Valeur par defaut                 |
| -------------------------- | --------------------------------- |
| Plafond quotidien absolu   | 50 000 \$                         |
| Detection d'anomalies      | Basee sur le ML, toujours activee |
| Gel d'urgence              | Toujours disponible               |
| Periode de refroidissement | 10 minutes apres le gel           |

Ces limites agissent comme une derniere ligne de defense, meme si votre cle API est compromise ou si vos politiques de couche metier sont mal configurees.
