> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/vi/phat-trien/nang-cao/cach-su-dung-account-abstraction.md).

# Cách sử dụng Account Abstraction

## Account Abstraction là gì?

Account Abstraction là một công nghệ blockchain cho phép người dùng sử dụng các smart contract như tài khoản của họ, làm cho chúng hoàn toàn có thể lập trình.

Nó nhằm làm cho các tài khoản người dùng linh hoạt và chức năng hơn, do đó cải thiện trải nghiệm người dùng.

## Điều này có ý nghĩa gì đối với các nhà phát triển Chiliz Chain?

Bằng cách triển khai Account Abstraction, các nhà phát triển có thể nâng cao trải nghiệm người dùng của dự án của họ: tương tác với Chiliz Chain đơn giản hơn có nghĩa là ứng dụng thân thiện với người dùng hơn.

## Sử dụng Biconomy trên Chiliz Chain

[Biconomy](https://www.biconomy.io/) cung cấp một bộ công cụ Account Abstraction toàn diện được xây dựng xung quanh **MEE** (Modular Execution Environment) và SDK **AbstractJS**. Chiliz Chain được hỗ trợ trên [cả Mainnet và Spicy Testnet](https://docs.biconomy.io/contracts-and-audits/supported-chains)

Với stack của Biconomy, bạn có thể cung cấp cho người dùng của mình:

* Giao dịch không phí gas
* Giao dịch gộp và đa chuỗi
* Ví smart contract (bao gồm đăng nhập xã hội)
* Các mô-đun như session keys, khôi phục tài khoản và nhiều hơn nữa

### Tại sao là MEE, chứ không phải mô hình Account Abstraction cổ điển?

Stack trước đây của Biconomy được xây dựng trên mô hình **ERC-4337** cổ điển, vốn dựa vào hạ tầng bundler và paymaster riêng biệt trên mỗi chuỗi. Kể từ đó Biconomy đã chuyển sang **MEE**, giữ được sự tương thích đầy đủ với ERC-4337 trong khi loại bỏ những hạn chế chính của nó. Phần so sánh [MEE vs ERC-4337](https://docs.biconomy.io/new/learn-about-biconomy/mee-vs-4337) của họ giải thích lý do:

* **Khả năng kết hợp động:** ERC-4337 chỉ cho phép gộp tĩnh, trong đó tất cả dữ liệu call phải được biết trước. MEE cho phép mỗi bước tham chiếu đến kết quả đầu ra của các bước trước đó (logic điều kiện, giá trị lúc chạy).
* **Điều phối đa chuỗi gốc**: thay vì các giao dịch và chữ ký riêng biệt cho mỗi chuỗi, MEE cấp phép các luồng đa chuỗi phức tạp chỉ với một chữ ký duy nhất.
* **Trừu tượng hóa gas phổ quát**: người dùng có thể trả phí gas trên bất kỳ chuỗi nào được hỗ trợ bằng token từ một chuỗi khác, thay vì phải quản lý gas cho từng chuỗi.
* **Tự động hóa**: MEE hỗ trợ thực thi theo lịch và định kỳ, điều mà ERC-4337 không có.
* **Hỗ trợ EOA mặc định**: không bắt buộc phải có ví smart contract (hoặc EIP-7702).

### Giao dịch không phí gas trên Chiliz Chain

Một trong những ứng dụng có tác động lớn nhất của Account Abstraction là loại bỏ nhu cầu người dùng phải nắm giữ CHZ chỉ để tương tác với dApp của bạn. Với **giao dịch được tài trợ (không phí gas)**, ứng dụng của bạn chi trả phí gas thay cho người dùng, nên việc gia nhập không còn đòi hỏi người dùng phải mua CHZ trước. Kết hợp với trừu tượng hóa gas phổ quát của MEE, phí gas cũng có thể được trả bằng một token khác thay vì tài sản gốc của chuỗi. Xem hướng dẫn [tài trợ gas](https://docs.biconomy.io/gasless-apps/sponsorship) của Biconomy để biết cách bật tính năng này.

### Bắt đầu

Đăng nhập vào [bảng điều khiển Biconomy](https://dashboard.biconomy.io/) và tạo một dự án. Mỗi dự án cung cấp cho bạn các thông tin xác thực mà bạn sẽ sử dụng trong ứng dụng của mình:

* một **API Key** (ví dụ `mee_LDxnuNsXYfvNUGsz6sJbHn`)
* một **Project ID** (ví dụ `1sp767r4-5rrs-9o1s-3s6s-4s0r6nrq3647`)

Cài đặt AbstractJS và [viem](https://viem.sh/):

```bash
npm install @biconomy/abstractjs viem
```

Sau đó tạo một Nexus account và một MEE client, trỏ cấu hình chuỗi của bạn tới Chiliz Chain. Các Chain ID của Chiliz Chain là:

* `Chiliz Mainnet = 88888`
* `Chiliz Spicy Testnet = 88882`

```typescript
import { createMeeClient, toMultichainNexusAccount, getMEEVersion, MEEVersion } from "@biconomy/abstractjs";
import { http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { chiliz, spicy } from "viem/chains";

const eoa = privateKeyToAccount("0xYOUR_PRIVATE_KEY");

// Create a Nexus account configured for Chiliz Chain (and Spicy Testnet)
const orchestrator = await toMultichainNexusAccount({
  chainConfigurations: [
    { chain: chiliz, transport: http(), version: getMEEVersion(MEEVersion.V2_1_0) },
    { chain: spicy, transport: http(), version: getMEEVersion(MEEVersion.V2_1_0) },
  ],
  signer: eoa,
});

// Create the MEE client using your Biconomy dashboard API key
const meeClient = await createMeeClient({
  account: orchestrator,
  apiKey: "mee_LDxnuNsXYfvNUGsz6sJbHn",
});
```

Lưu ý: SDK của Biconomy liên tục phát triển, vì vậy hãy làm theo hướng dẫn [Setting up AbstractJS](https://docs.biconomy.io/new/getting-started/set-up-abstractjs) và [phần giới thiệu](https://docs.biconomy.io/overview/introduction) của họ để có ví dụ đầy đủ và cập nhật nhất.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.chiliz.com/vi/phat-trien/nang-cao/cach-su-dung-account-abstraction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
