# Hesap Soyutlaması (Account Abstraction) kullan

## Hesap Soyutlama (Account Abstraction) nedir?

Hesap Soyutlama, kullanıcıların hesapları olarak akıllı sözleşmeleri kullanmalarına izin veren ve bunları tamamen programlanabilir hale getiren bir blok zinciri teknolojisidir.

Amaç, kullanıcı hesaplarını daha esnek ve işlevsel hale getirerek kullanıcı deneyimini iyileştirmektir.

## Bu, Chiliz Chain geliştiricileri için ne anlama geliyor?

AA uygulanarak geliştiriciler projelerinin kullanıcı deneyimini iyileştirebilir: daha basit Chiliz Chain etkileşimleri daha kullanıcı dostu bir uygulama demektir.

## Bunu Biconomy kullanarak nasıl yapabilirsiniz?

Biconomy, Akıllı Hesaplara erişim sağlayan tam yığın bir Hesap Soyutlama SDK'sı sunar: <https://docs.biconomy.io/account>

Biconomy'ye göre, Chiliz Chain üzerinde AA yığınlarından yararlanmanın 4 yolu vardır:

* Gas ödemesiz (Gasless) İşlemler&#x20;
* Gruplandırılmış (Batched) İşlemler&#x20;
* Akıllı sözleşme cüzdanları (sosyal giriş dahil)&#x20;
* oturum anahtarları, çok zincirli doğrulayıcı, hesap kurtarma ve çok daha fazlasını içeren modüller!

Biconomy'nin güzel bir Hızlı Başlangıç sayfası var: <https://docs.biconomy.io/quickstart>

Örnek kod Polygon Mumbai ağını kullanır ve Chiliz'e şu şekilde uyarlayabilirsiniz:

```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"; // https://dashboard.biconomy.io adresinde bulundu

export const createAccountAndMintNft = async () => {
  // ----- 1. Özel anahtardan EOA oluşturun
  const account = privateKeyToAccount("0x" + "PRIVATE_KEY");
  const client = createWalletClient({
    account,
    chainId: ChainId.CHILIZ_TESTNET, // veya ChainId.CHILIZ_MAINNET,
    transport: http(),
  });
  const eoa = client.account.address;
  console.log(`EOA address: ${eoa}`);

  // ------ 2. Biconomy akıllı hesap örneği oluşturun
  const smartAccount = await createSmartAccountClient({
    signer: client,
    bundlerUrl,
  });
  const saAddress = await smartAccount.getAccountAddress();
  console.log("SA Address", saAddress);
};
createAccountAndMintNft();
```

Chiliz Chain ID'lerini unutmayın:

* `CHILIZ_MAINNET = 88888`
* `CHILIZ_TESTNET = 88882`

Ayrıca, Biconomy ile çalışırken Chiliz'in kendi [entrypoint adresi](https://docs.biconomy.io/contracts#entry-points), hem mainnet hem de testnet için: [0x00000061FEfce24A79343c27127435286BB7A4E1](https://scan.chiliz.com/address/0x00000061FEfce24A79343c27127435286BB7A4E1/contracts#address-tabs)

Bu, Biconomy kullanılırken önemlidir [Bundler](https://docs.biconomy.io/bundler) veya [Paymaster](https://docs.biconomy.io/paymaster):

```typescript
// CC2'nin kendi entrypoint adresi vardır
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,
})
```
