# Comment utiliser l'abstraction de compte

## Qu'est-ce que l'Abstraction de Compte ?&#x20;

L'Abstraction de Compte (Account Abstraction, ou AA) est une technologie blockchain qui permet aux utilisateurs d'utiliser des contrats intelligents comme leurs comptes, les rendant entièrement programmables.&#x20;

Elle vise à rendre les comptes utilisateurs plus flexibles et fonctionnels, améliorant ainsi l'expérience utilisateur.&#x20;

## Qu'est-ce que cela signifie pour les développeurs de Chiliz Chain ?

En implémentant l'AA, les développeurs pourraient améliorer l'expérience utilisateur de leur projet : des interactions plus simples avec Chiliz Chain signifient une application plus conviviale.&#x20;

## Comment le faire en utilisant Biconomy ?&#x20;

Biconomy propose un SDK complet pour l'Abstraction de Compte, qui permet d'accéder aux Comptes Intelligents : <https://docs.biconomy.io/account>&#x20;

Selon Biconomy, il existe 4 façons d'exploiter leur pile AA sur Chiliz Chain :&#x20;

* Transactions sans gas&#x20;
* Transactions groupées&#x20;
* Portefeuilles de contrats intelligents (y compris la connexion sociale)&#x20;
* Modules incluant des clés de session, validateur multichaîne, récupération de compte, et bien plus encore !&#x20;

Biconomy a une page de démarrage rapide intéressante : <https://docs.biconomy.io/quickstart>&#x20;

L'exemple de code utilise le réseau Polygon Mumbai, et vous pouvez l'adapter à Chiliz, comme ceci :&#x20;

```typescript
import {
  Hex,
  createWalletClient,
  encodeFunctionData,
  http,
  parseAbi,
  zeroAddress,
} from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { ChainId } from '@biconomy/core-types'
import { createSmartAccountClient } from "@biconomy/account";

const bundlerUrl =
  "https://bundler.biconomy.io/api/v2/80001/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44"; // Found at https://dashboard.biconomy.io

export const createAccountAndMintNft = async () => {
  // ----- 1. Generate EOA from private key
  const account = privateKeyToAccount("0x" + "PRIVATE_KEY");
  const client = createWalletClient({
    account,
    chainId: ChainId.CHILIZ_TESTNET, // or ChainId.CHILIZ_MAINNET,
    transport: http(),
  });
  const eoa = client.account.address;
  console.log(`EOA address: ${eoa}`);

  // ------ 2. Create biconomy smart account instance
  const smartAccount = await createSmartAccountClient({
    signer: client,
    bundlerUrl,
  });
  const saAddress = await smartAccount.getAccountAddress();
  console.log("SA Address", saAddress);
};
createAccountAndMintNft();
```

N'oubliez pas les IDs de la Chiliz Chain :&#x20;

`CHILIZ_MAINNET` = 88888&#x20;

`CHILIZ_TESTNET` = 88882&#x20;

De plus, lorsque vous travaillez avec Biconomy, notez que Chiliz a [sa propre adresse d'entrée](https://docs.biconomy.io/contracts#entry-points), pour le mainnet et le testnet : [0x00000061FEfce24A79343c27127435286BB7A4E1 ](https://scan.chiliz.com/address/0x00000061FEfce24A79343c27127435286BB7A4E1/contracts#address-tabs)

Ceci est important lors de l'utilisation du [Bundler](https://docs.biconomy.io/bundler) ou du [Paymaster](https://docs.biconomy.io/paymaster) de Biconomy :&#x20;

```typescript
// CC2 has its own entrypoint address
const CHILIZ_BUNDLER_ENTRYPOINT_ADDRESS='0x00000061FEfce24A79343c27127435286BB7A4E1'

const bundler = new Bundler({
    bundlerUrl: `https://bundler.biconomy.io/api/v2/${ChainId.CHILIZ_TESTNET}/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44`,
    chainId: ChainId.CHILIZ_TESTNET,
    entryPointAddress: CHILIZ_BUNDLER_ENTRYPOINT_ADDRESS,
})
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chiliz.com/fr/developper/notions-avancees/comment-utiliser-labstraction-de-compte.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
