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

# Earn

> Générez du rendement sur vos soldes de stablecoins inactifs via des fournisseurs régulés et des protocoles DeFi

<Note>
  En bref<br />
  Blockradar Earn vous permet de faire travailler vos stablecoins inactifs et de les faire fructifier au fil du temps — un peu comme un compte d'épargne à haut rendement, mais **non-custodial** : les fonds proviennent de votre propre wallet, Blockradar ne les regroupe ni ne les détient jamais, et vous pouvez retirer n'importe quelle portion à tout moment.
</Note>

## Fonctionnement

Les stablecoins inactifs restent normalement simplement dans votre wallet. Earn déplace un montant choisi vers une stratégie de rendement où il accumule des intérêts en continu, et le renvoie vers votre wallet à chaque retrait. Vous conservez l'intégralité de votre dépôt initial — Earn le fait simplement fructifier.

<CardGroup cols={3}>
  <Card title="Vous gardez le contrôle" icon="lock-open">
    Les fonds proviennent de votre propre wallet. Blockradar n'en prend jamais la garde et ne mélange jamais votre argent avec celui d'autrui.
  </Card>

  <Card title="Rendement automatique" icon="clock">
    Les intérêts s'accumulent en continu, 24h/24 — il n'y a rien à gérer.
  </Card>

  <Card title="Retrait à tout moment" icon="rotate-left">
    Retirez tout ou partie quand vous le souhaitez. Il n'y a aucune période de blocage.
  </Card>
</CardGroup>

### Trois étapes

<Steps>
  <Step title="Déposer">
    Choisissez un actif, un montant et un style de rendement (Regulated ou DeFi). Vos fonds sont déplacés vers la stratégie. **Le dépôt est gratuit.**
  </Step>

  <Step title="Gagner">
    Votre solde croît de lui-même à mesure que les intérêts s'accumulent. La valeur en temps réel est reflétée dans votre position.
  </Step>

  <Step title="Retirer">
    Retirez tout ou partie, à tout moment. Vous recevez **exactement le montant demandé** — les frais sont prélevés sur les gains, jamais sur votre capital.
  </Step>
</Steps>

## Les deux styles de rendement

Lors d'un dépôt, vous choisissez l'un des deux styles. Ils acheminent vos fonds vers différents lieux de placement fiables et porteurs d'intérêts. Les styles disponibles dépendent du réseau sur lequel se trouve votre wallet.

<CardGroup cols={2}>
  <Card title="Regulated" icon="building-columns">
    Rendement via un fournisseur régulé, plus conservateur (**Fija**). Un bon choix si vous préférez la voie régulée.

    **Disponible sur :** Ethereum
  </Card>

  <Card title="DeFi" icon="cubes">
    Rendement via **Aave** — l'un des protocoles de prêt les plus importants, les plus établis et les plus éprouvés de la crypto.

    **Disponible sur :** Ethereum, Base, Arbitrum, Optimism, Polygon
  </Card>
</CardGroup>

|                 | Regulated                          | DeFi                                        |
| --------------- | ---------------------------------- | ------------------------------------------- |
| **Fournisseur** | Fija                               | Aave                                        |
| **Profil**      | Voie plus conservatrice et régulée | Protocole de prêt on-chain établi           |
| **Rendements**  | Variables                          | Variables (déterminés par le marché)        |
| **Réseaux**     | Ethereum                           | Ethereum, Base, Arbitrum, Optimism, Polygon |

<Info>
  Les deux styles sont non-custodial et génèrent du rendement — le choix porte sur la voie que vous préférez. Le dashboard n'affiche que les styles valides pour le réseau de votre wallet.
</Info>

## Prérequis

<Steps>
  <Step title="Clé API">
    Obtenez votre clé API depuis le [Dashboard Blockradar](https://dashboard.blockradar.co). Accédez à **Developers** pour en générer une.
  </Step>

  <Step title="Master wallet créé">
    Créez un master wallet via l'[API Create Wallet](/en/api-reference/wallets/create-wallet) ou le dashboard. Les positions Earn sont financées à partir des soldes de votre wallet.
  </Step>

  <Step title="Fonctionnalité Earn activée">
    Assurez-vous que la fonctionnalité Earn est activée sur votre compte. Contactez [support@blockradar.co](mailto:support@blockradar.co) si vous avez besoin de l'activer.
  </Step>

  <Step title="Solde suffisant">
    Approvisionnez le wallet avec le stablecoin que vous comptez déposer, ainsi qu'avec des tokens natifs pour couvrir les frais de réseau on-chain.
  </Step>
</Steps>

## Retraits

Lors d'un retrait, vous spécifiez le montant que vous souhaitez **recevoir**, et c'est exactement ce montant qui arrive dans votre wallet. Choisir **tout retirer** clôture la position et vous envoie tout ce qui reste (dépôt + tous les intérêts accumulés).

## Ce que vous pouvez suivre

<CardGroup cols={3}>
  <Card title="Solde" icon="wallet">
    La valeur actuelle de votre position — dépôt plus intérêts, déjà net de frais.
  </Card>

  <Card title="Intérêts gagnés" icon="seedling">
    Combien vous avez gagné — aujourd'hui, cette semaine, et sur toute la durée de vie de la position.
  </Card>

  <Card title="Taux (APY)" icon="bolt">
    Le taux annuel que vous gagnez, affiché comme votre taux net après frais.
  </Card>
</CardGroup>

## Sécurité et fiabilité

<CardGroup cols={3}>
  <Card title="Non-custodial" icon="lock">
    Les fonds passent directement de votre propre wallet à la stratégie. Blockradar n'en prend jamais la garde.
  </Card>

  <Card title="Protocoles établis" icon="building-columns">
    Les fonds sont dirigés vers des sources de rendement fiables — un fournisseur régulé (Fija) ou Aave, un protocole DeFi de premier plan.
  </Card>

  <Card title="Aucun blocage" icon="door-open">
    Aucune période d'attente. Retirez tout ou partie à tout moment.
  </Card>
</CardGroup>

Plusieurs garde-fous fonctionnent en arrière-plan pour maintenir l'exactitude des soldes et des frais :

* **Repli de taux** — si une source de taux a un bref accroc, un taux récent connu est utilisé afin que les frais et les soldes ne soient jamais erronés.
* **Réessais sûrs** — les transactions interrompues sont réessayées de manière idempotente ; les fonds ne sont jamais perdus ni dépensés deux fois.
* **Réconciliation on-chain** — votre solde affiché est réconcilié avec le solde réel on-chain.

<Warning>
  Les rendements sont variables — les taux peuvent augmenter ou baisser au fil du temps — et la DeFi comporte les risques habituels de smart contracts liés à tout protocole on-chain. Votre **dépôt** n'est jamais soumis à des frais, mais comme pour tout investissement, les rendements ne sont pas garantis.
</Warning>

## Utiliser l'API

La fonctionnalité est exposée sous la ressource `rewards`. Toutes les requêtes sont authentifiées avec votre clé API via l'en-tête `x-api-key`. La stratégie est sélectionnée via un champ `type` :

* **`regulated`** — Fija (un vault ERC-4626)
* **`defi`** — Aave

Les montants sont toujours passés sous forme de **chaînes**. Les dépôts et les retraits sont **asynchrones** : chacun retourne une transaction `PENDING`, et la finalisation est livrée par webhook.

<Info>
  La plupart des endpoints acceptent un `addressId` optionnel pour limiter l'opération à une sous-adresse. Omettez-le pour agir sur le master wallet.
</Info>

### 1. Découvrir ce qui est disponible

Avant de déposer, vérifiez quelles stratégies une chaîne prend en charge et lesquels des actifs d'un wallet sont éligibles aux rewards (ainsi que l'APY actuel de chaque stratégie).

<CodeGroup>
  ```bash Supported chains theme={null}
  curl --request GET \
    --url https://api.blockradar.co/v1/rewards/supported-chains \
    --header 'x-api-key: <api-key>'
  ```

  ```bash Wallet reward assets theme={null}
  curl --request GET \
    --url 'https://api.blockradar.co/v1/wallets/{walletId}/rewards/assets?type=defi' \
    --header 'x-api-key: <api-key>'
  ```
</CodeGroup>

```json Supported chains response theme={null}
{
  "message": "Supported reward chains retrieved successfully",
  "statusCode": 200,
  "data": {
    "all": ["ethereum", "base", "arbitrum", "optimism", "polygon"],
    "byType": {
      "regulated": ["ethereum"],
      "defi": ["ethereum", "base", "arbitrum", "optimism", "polygon"]
    }
  }
}
```

### 2. Prévisualiser les frais de réseau (optionnel)

Estimez les frais de réseau on-chain et vérifiez le solde natif du wallet avant de vous engager. Cela ne **déplace pas** de fonds.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/wallets/{walletId}/rewards/deposit/network-fee \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "assetId": "b1deda8d-7609-4895-b584-e8ef1f13e354",
      "amount": "1000",
      "type": "defi"
    }'
  ```
</CodeGroup>

```json Response theme={null}
{
  "message": "Network fee fetched successfully",
  "statusCode": 200,
  "data": {
    "networkFee": "0.00006779052",
    "networkFeeInUSD": "0.14371725",
    "nativeBalance": "0.000929309612767174",
    "nativeBalanceInUSD": "1.97015496",
    "estimatedArrivalTime": 30,
    "transactionFee": "0"
  }
}
```

<Note>
  La même prévisualisation est disponible pour les retraits à `POST /v1/wallets/{walletId}/rewards/withdraw/network-fee`.
</Note>

### 3. Déposer

Déplacez un actif vers une stratégie de rendement. Le dépôt est gratuit — les frais ne s'appliquent jamais qu'aux intérêts gagnés.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/wallets/{walletId}/rewards/deposit \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "assetId": "b1deda8d-7609-4895-b584-e8ef1f13e354",
      "amount": "1000",
      "type": "defi",
      "reference": "order_12345",
      "metadata": {}
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://api.blockradar.co/v1/wallets/${walletId}/rewards/deposit`,
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'x-api-key': apiKey
      },
      body: JSON.stringify({
        assetId: 'b1deda8d-7609-4895-b584-e8ef1f13e354',
        amount: '1000',
        type: 'defi',
        reference: 'order_12345'
      })
    }
  ).then(r => r.json());

  console.log('Deposit initiated:', response.data);
  ```
</CodeGroup>

#### Paramètres de la requête

| Paramètre   | Type          | Requis | Description                                                                    |
| ----------- | ------------- | ------ | ------------------------------------------------------------------------------ |
| `assetId`   | string (UUID) | Oui    | L'actif à déposer. Doit être pris en charge pour les rewards (voir l'étape 1). |
| `amount`    | string        | Oui    | Montant à déposer. Doit être supérieur à 0.                                    |
| `type`      | string        | Oui    | Classe de stratégie : `regulated` (Fija) ou `defi` (Aave).                     |
| `reference` | string        | Non    | Référence client, validée pour l'unicité.                                      |
| `metadata`  | object        | Non    | Métadonnées personnalisées renvoyées dans la transaction.                      |
| `addressId` | string (UUID) | Non    | Limiter à une sous-adresse. Omettez pour utiliser le master wallet.            |

```json Response theme={null}
{
  "message": "Rewards Deposit initiated successfully",
  "statusCode": 200,
  "data": {
    "id": "47ae3a92-4d36-4807-af9e-b83a4eb08d69",
    "reference": null,
    "amount": "1000",
    "amountPaid": "1000",
    "status": "PENDING",
    "type": "REWARD_DEPOSIT",
    "createdAt": "2026-06-03T13:58:33.222Z",
    "asset": {
      "symbol": "USDC",
      "decimals": 6,
      "blockchain": { "slug": "base", "name": "base" }
    }
  }
}
```

### 4. Suivre les positions et les gains

Les positions sont agrégées par stratégie et incluent le solde en temps réel, l'APY, le capital déposé et les gains (aujourd'hui / cette semaine / depuis le début) — le tout déjà net de frais.

<CodeGroup>
  ```bash Wallet positions theme={null}
  curl --request GET \
    --url https://api.blockradar.co/v1/wallets/{walletId}/rewards \
    --header 'x-api-key: <api-key>'
  ```

  ```bash Single asset position theme={null}
  curl --request GET \
    --url 'https://api.blockradar.co/v1/wallets/{walletId}/rewards?assetId={assetId}' \
    --header 'x-api-key: <api-key>'
  ```

  ```bash Business-wide positions theme={null}
  curl --request GET \
    --url https://api.blockradar.co/v1/rewards \
    --header 'x-api-key: <api-key>'
  ```

  ```bash Recent transactions theme={null}
  curl --request GET \
    --url 'https://api.blockradar.co/v1/rewards/transactions?limit=10' \
    --header 'x-api-key: <api-key>'
  ```
</CodeGroup>

```json Position response theme={null}
{
  "message": "Wallet rewards retrieved successfully",
  "statusCode": 200,
  "data": [
    {
      "type": "defi",
      "apy": "2.41",
      "balance": "4.365017",
      "balanceInUSD": "4.365017",
      "totalDeposited": "4.360000",
      "totalDepositedInUSD": "4.360000",
      "earnings": "0.005017",
      "earningsInUSD": "0.005017",
      "todayEarnings": "0.000187",
      "weeklyEarnings": "0.001312",
      "lifetimeEarnings": "0.026492",
      "lifetimeEarningsInUSD": "0.026492",
      "asset": {
        "id": "2f6298ec-81ca-44f4-a8f2-cc045a46d28c",
        "isActive": true,
        "asset": {
          "id": "b1deda8d-7609-4895-b584-e8ef1f13e354",
          "name": "USD Coin",
          "symbol": "USDC",
          "decimals": 6,
          "currency": "USD",
          "network": "mainnet",
          "blockchain": { "name": "base", "slug": "base", "symbol": "eth" }
        }
      }
    }
  ]
}
```

#### Champs de la position

| Champ              | Description                                                                                        |
| ------------------ | -------------------------------------------------------------------------------------------------- |
| `type`             | Classe de stratégie à laquelle appartient la position (`regulated` ou `defi`).                     |
| `apy`              | Rendement annuel net actuel, après frais.                                                          |
| `balance`          | Valeur de la position en temps réel (capital + intérêts accumulés), net de frais.                  |
| `totalDeposited`   | Capital déposé dans la position.                                                                   |
| `earnings`         | Intérêts accumulés sur la position jusqu'à présent.                                                |
| `todayEarnings`    | Intérêts accumulés aujourd'hui.                                                                    |
| `weeklyEarnings`   | Intérêts accumulés cette semaine.                                                                  |
| `lifetimeEarnings` | Intérêts accumulés sur toute la durée de vie de la position (y compris les montants déjà retirés). |
| `*InUSD`           | La valeur convertie en USD du champ correspondant.                                                 |
| `asset`            | L'actif du wallet dans lequel la position est détenue, avec sa blockchain et son réseau.           |

<Note>
  `/v1/rewards` retourne la même structure agrégée sur **tous** les wallets de votre entreprise, tandis que `/v1/wallets/{walletId}/rewards` se limite à un seul wallet. Passez `assetId` à l'un ou l'autre des endpoints de wallet pour retourner un objet de position unique au lieu d'un tableau.
</Note>

### 5. Retirer

Le `amount` est le montant **net** que vous recevez — Blockradar majore le rachat de sorte que les frais soient prélevés uniquement sur le rendement réalisé. Passez `"max"` pour sortir entièrement et clôturer la position.

<CodeGroup>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/wallets/{walletId}/rewards/withdraw \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "assetId": "b1deda8d-7609-4895-b584-e8ef1f13e354",
      "amount": "500",
      "type": "defi"
    }'
  ```

  ```bash Full exit theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/wallets/{walletId}/rewards/withdraw \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
      "assetId": "b1deda8d-7609-4895-b584-e8ef1f13e354",
      "amount": "max",
      "type": "defi"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://api.blockradar.co/v1/wallets/${walletId}/rewards/withdraw`,
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'x-api-key': apiKey
      },
      body: JSON.stringify({
        assetId: 'b1deda8d-7609-4895-b584-e8ef1f13e354',
        amount: '500',
        type: 'defi'
      })
    }
  ).then(r => r.json());

  console.log('Withdrawal initiated:', response.data);
  ```
</CodeGroup>

#### Paramètres de la requête

| Paramètre   | Type          | Requis | Description                                                                                          |
| ----------- | ------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| `assetId`   | string (UUID) | Oui    | L'actif à retirer.                                                                                   |
| `amount`    | string        | Oui    | Montant net à recevoir, ou `"max"` pour une sortie complète.                                         |
| `type`      | string        | Non    | Classe de stratégie : `regulated` ou `defi`.                                                         |
| `address`   | string        | Non    | Adresse de destination externe. Omettez pour créditer le signataire (master wallet ou sous-adresse). |
| `reference` | string        | Non    | Référence client.                                                                                    |
| `metadata`  | object        | Non    | Métadonnées personnalisées.                                                                          |
| `addressId` | string (UUID) | Non    | Limiter à une sous-adresse. Omettez pour utiliser le master wallet.                                  |

### Cycle de vie de la transaction

Le dépôt et le retrait sont tous deux **asynchrones**. L'appel initiateur retourne une transaction à l'état `PENDING` — le règlement on-chain a lieu ensuite, et le résultat final est livré par webhook.

| Champ    | Valeurs                             | Description                                                                              |
| -------- | ----------------------------------- | ---------------------------------------------------------------------------------------- |
| `type`   | `REWARD_DEPOSIT`, `REWARD_WITHDRAW` | Le type de transaction Earn.                                                             |
| `status` | `PENDING` → réglée                  | Démarre à `PENDING` ; passe à l'état suivant une fois la transaction confirmée on-chain. |

Utilisez **Business Reward Transactions** (`GET /v1/rewards/transactions`) pour lister les dépôts et retraits récents de votre entreprise, du plus récent au plus ancien.

```json Transaction shape theme={null}
{
  "id": "47ae3a92-4d36-4807-af9e-b83a4eb08d69",
  "reference": null,
  "amount": "0.2",
  "amountPaid": "0.2",
  "status": "PENDING",
  "type": "REWARD_WITHDRAW",
  "createdAt": "2026-06-03T13:58:33.222Z",
  "asset": {
    "symbol": "USDC",
    "decimals": 6,
    "blockchain": { "slug": "base", "name": "base" }
  }
}
```

## Référence de l'API

| Méthode | Endpoint                                                                                                | Description                                                                                   |
| ------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `GET`   | [`/v1/rewards`](/en/api-reference/rewards/business-rewards)                                             | Positions à l'échelle de l'entreprise agrégées sur tous les wallets, regroupées par stratégie |
| `GET`   | [`/v1/rewards/supported-chains`](/en/api-reference/rewards/supported-chains)                            | Chaînes prises en charge sous forme d'union à plat et regroupées par type de stratégie        |
| `GET`   | [`/v1/rewards/transactions`](/en/api-reference/rewards/business-transactions)                           | Dépôts et retraits de rewards les plus récents (du plus récent au plus ancien)                |
| `GET`   | [`/v1/wallets/{walletId}/rewards`](/en/api-reference/rewards/wallet-rewards)                            | Les positions d'un wallet ; passez `assetId` pour un seul actif                               |
| `GET`   | [`/v1/wallets/{walletId}/rewards/assets`](/en/api-reference/rewards/wallet-reward-assets)               | Les actifs éligibles aux rewards d'un wallet et l'APY de chaque stratégie                     |
| `POST`  | [`/v1/wallets/{walletId}/rewards/deposit`](/en/api-reference/rewards/deposit)                           | Déposer un actif dans une stratégie de rendement                                              |
| `POST`  | [`/v1/wallets/{walletId}/rewards/deposit/network-fee`](/en/api-reference/rewards/deposit-network-fee)   | Prévisualiser les frais de réseau pour un dépôt                                               |
| `POST`  | [`/v1/wallets/{walletId}/rewards/withdraw`](/en/api-reference/rewards/withdraw)                         | Retirer un montant net (ou `"max"`) d'une position                                            |
| `POST`  | [`/v1/wallets/{walletId}/rewards/withdraw/network-fee`](/en/api-reference/rewards/withdraw-network-fee) | Prévisualiser les frais de réseau pour un retrait                                             |

## FAQ

<AccordionGroup>
  <Accordion title="Le dépôt a-t-il un coût ?">
    Non. Le dépôt est gratuit. Les seuls frais correspondent à une petite part des intérêts que vous gagnez — jamais à votre dépôt.
  </Accordion>

  <Accordion title="Quand est-ce que je commence à gagner ?">
    Dès que votre dépôt est réglé on-chain, il commence à générer des intérêts en continu, 24h/24.
  </Accordion>

  <Accordion title="À quelle vitesse se fait un retrait ?">
    Il démarre immédiatement et se règle on-chain peu après. Vous êtes notifié dès qu'il est terminé.
  </Accordion>

  <Accordion title="Quelle est la différence entre Regulated et DeFi ?">
    Regulated achemine vos fonds via un fournisseur régulé, plus conservateur (Fija, sur Ethereum). DeFi utilise Aave, un protocole de prêt majeur et établi, disponible sur davantage de réseaux. Les deux génèrent du rendement — il s'agit de la voie que vous préférez.
  </Accordion>

  <Accordion title="Vais-je récupérer moins que ce que j'ai investi ?">
    Votre dépôt n'est jamais soumis à des frais, et vous conservez les intérêts moins la petite part de Blockradar. Les taux sont variables et les protocoles on-chain comportent des risques, donc les rendements ne sont pas garantis — mais les frais de la plateforme ne touchent jamais votre capital.
  </Accordion>

  <Accordion title="Que fait « tout retirer » ?">
    Cela retire tout ce qui se trouve dans cette position — votre dépôt plus tous les intérêts gagnés — et la clôture. Vous pouvez démarrer un nouveau dépôt à tout moment.
  </Accordion>

  <Accordion title="Pourquoi un nouveau dépôt de $0.20 s'affiche-t-il parfois comme $0.199999 ?">
    Il s'agit d'une infime particularité d'arrondi du protocole sous-jacent (une fraction de centime), et non de frais. Cela se rééquilibre, et votre solde dépasse votre dépôt dès que les intérêts s'accumulent.
  </Accordion>
</AccordionGroup>

## Support

* **E-mail** : [support@blockradar.co](mailto:support@blockradar.co)
