Trang này chỉ dành cho mục đích thông tin. Một số dịch vụ và tính năng có thể không khả dụng ở khu vực pháp lý của bạn.
Bài viết này đã được dịch tự động từ ngôn ngữ gốc.

ERC-20 là gì?

ERC-20 là bộ chuẩn giao diện cho token có thể thay thế trên Ethereum. Nó hướng tới một loại chương trình on-chain lo việc ghi số dư và xử lý các thao tác, tức hợp đồng token. ERC là viết tắt của Ethereum Request for Comments, chỉ loại chuẩn và quy ước ở tầng ứng dụng của Ethereum; 20 là số hiệu của đề xuất này. ERC-20 quy định hợp đồng token nên trả lời truy vấn số dư và tổng cung thế nào, xử lý chuyển giao và cấp phép thế nào, cùng những bản ghi thao tác nào cần phát ra để ứng dụng đọc — tức các sự kiện — nhờ đó ví và các ứng dụng khác có thể tiếp cận những token khác nhau theo cách tương tự.

"Có thể thay thế" nghĩa là những lượng bằng nhau của cùng một token có thể đổi lẫn cho nhau theo cách hạch toán của hợp đồng. Chẳng hạn, một đơn vị do cùng hợp đồng ghi nhận sẽ không tự trở thành loại khác chỉ vì nó đến từ một địa chỉ khác. ERC-20 thống nhất cách thao tác với những đơn vị đó, chứ không phải giá, công dụng hay mức đáng tin của chúng.

Giao diện thống nhất giải quyết khác biệt khi tiếp cận

Nếu mỗi hợp đồng token dùng tên hàm và tham số khác nhau, thì mỗi lần thêm một loại token, ví lại phải học một bộ cách truy vấn và chuyển giao mới, còn ứng dụng on-chain cũng rất khó tái sử dụng mã đã có.

ERC-20 quy định một bộ giao diện chung. Ví có thể dùng cùng một cách truy vấn để đọc số dư của những token khác nhau, ứng dụng có thể yêu cầu chuyển giao theo quy ước, và dịch vụ dữ liệu cũng có thể đọc các sự kiện chuyển giao và cấp phép theo định dạng thống nhất.

Bản thân chuẩn không tạo ra token. Nhà phát triển vẫn phải viết hoặc sử dụng một hợp đồng cụ thể rồi triển khai lên mạng. Mỗi hợp đồng có thể ghi lượng cung, số dư tài khoản và các quy tắc bổ sung riêng, nên hai token ERC-20 có thể dùng mã khác nhau và cũng có thể có quyền quản trị hoàn toàn khác nhau.

Số dư, tổng lượng và đơn vị hiển thị

Hợp đồng ERC-20 ghi số lượng token bằng số nguyên. balanceOf dùng để truy vấn số dư của một địa chỉ, totalSupply dùng để truy vấn tổng lượng token mà hợp đồng báo cáo.

Phần thập phân thấy trên giao diện thường đến từ quy tắc hiển thị, chứ không phải hợp đồng thực sự lưu số thập phân. Trường tùy chọn decimals cho ví biết nên dịch số nguyên sang trái bao nhiêu chữ số. Ví dụ, hợp đồng ghi 1.000.000 đơn vị nhỏ nhất, nếu decimals là 6 thì giao diện thường hiển thị 1 token.

Điều này không làm thay đổi số lượng trên chuỗi, cũng không tự động thay đổi giá trị của token. Chuẩn gốc xếp trường tên name, trường mã giao dịch symbol và trường số chữ số thập phân hiển thị decimals vào nhóm thông tin tùy chọn; tên và mã giao dịch còn có thể trùng nhau. Muốn nhận diện một token ERC-20 một cách đáng tin cậy thì phải đối chiếu đồng thời mạng và địa chỉ hợp đồng, không thể chỉ nhìn biểu tượng hay mã giao dịch.

Chuyển giao trực tiếp diễn ra thế nào

Khi người nắm giữ chuyển token từ số dư của mình sang một địa chỉ khác, thường họ gọi transfer và cung cấp địa chỉ nhận cùng số lượng tính theo đơn vị nhỏ nhất.

Khi thực thi, hợp đồng sẽ kiểm tra quy tắc của chính nó. Ở trường hợp cơ bản, số dư không đủ sẽ khiến thao tác thất bại; bản triển khai cũng có thể thêm tạm dừng, danh sách, phí chuyển hoặc các hạn chế khác. Khi thành công, hợp đồng cập nhật số dư nội bộ và phát ra sự kiện Transfer để ví, trình khám phá block và dịch vụ dữ liệu nhận ra thay đổi này.

Sự kiện Transfer là đầu mối quan trọng để đọc thay đổi, nhưng số dư cuối cùng vẫn căn cứ vào trạng thái hợp đồng. Ứng dụng còn phải xác nhận giao dịch đã được ghi thành công vào đúng mạng, và sự kiện đến từ đúng địa chỉ hợp đồng.

Cấp phép để ứng dụng chuyển thay một lượng có giới hạn

ERC-20 còn hỗ trợ quy trình "cấp phép trước, rồi để một địa chỉ hoặc hợp đồng khác thực thi". Quy trình này thường dùng cho giao dịch phi tập trung, cho vay hoặc các thao tác khác cần hợp đồng nhận token.

Quy trình này có ba vai trò:

  • người nắm giữ sở hữu token và quyết định có cấp phép hay không;
  • bên được cấp phép có thể là một địa chỉ khác hoặc một ứng dụng on-chain;
  • bên nhận là địa chỉ mà token cuối cùng được chuyển vào, và cũng có thể khác bên được cấp phép.

Người nắm giữ gọi approve để đặt hạn mức cấp phép. allowance dùng để truy vấn hạn mức còn lại; bên được cấp phép gọi transferFrom để chuyển token trong phạm vi mà số dư và hạn mức còn lại cho phép. Khi cấp phép thành công, hợp đồng sẽ phát ra sự kiện Approval.

Cấp phép không có nghĩa token đã được chuyển đi, nhưng nó để lại khoảng thao tác về sau cho bên được cấp phép. Nếu hạn mức rất lớn hoặc không thu hồi kịp thời, thì khi ứng dụng được cấp phép có lỗ hổng, bị người khác kiểm soát hoặc hành xử khác dự kiến, nó có thể chuyển token đi trong phạm vi đã cấp. Người dùng cần đối chiếu địa chỉ được cấp phép, hợp đồng token và hạn mức, chứ không chỉ nhìn tên hiển thị trên trang của ứng dụng.

Khi sửa hạn mức cấp phép cần lưu ý gì

Thiết kế ERC-20 ban đầu cho phép gọi lại approve để ghi đè hạn mức cũ bằng một giá trị mới. Nếu hạn mức cũ chưa được dùng mà người nắm giữ đổi thẳng sang một giá trị khác không bằng không, bên được cấp phép có thể dùng hết hạn mức cũ trước khi giao dịch sửa đổi có hiệu lực, rồi tiếp tục dùng hạn mức mới, tổng cộng vượt quá hạn mức mới mà người nắm giữ dự định để lại.

Quy phạm ERC-20 khuyến nghị giao diện phía người dùng trước tiên đặt hạn mức của cùng bên được cấp phép về 0, chờ giao dịch đưa về 0 được xác nhận rồi mới đặt giá trị mới. Đây là khuyến nghị về tính tương thích cho quy trình sửa cấp phép, không có nghĩa mọi ví đều dùng cùng một cách tương tác, và cũng không thay được việc tự đánh giá hợp đồng được cấp phép.

Thu hồi cấp phép thường cũng là đặt hạn mức về 0 và gửi một giao dịch on-chain. Chỉ ngắt kết nối ví với trang web thì thường không tự động thay đổi hạn mức cấp phép đã ghi vào hợp đồng token.

Giao diện chung của chuẩn cơ bản

Từ góc nhìn người dùng, có thể chia các giao diện cơ bản thành ba nhóm:

  • truy vấn: đọc tổng cung, số dư của một địa chỉ và hạn mức cấp phép còn lại;
  • thao tác: người nắm giữ chuyển trực tiếp, đặt cấp phép, hoặc bên được cấp phép chuyển thay;
  • sự kiện: ghi lại việc chuyển giao và cấp phép thành công, để ứng dụng bên ngoài cập nhật dữ liệu.

Tên, mã giao dịch và số chữ số thập phân thuộc nhóm thông tin hiển thị tùy chọn. Chuẩn còn yêu cầu bên gọi phải xử lý được tình huống thao tác trả về false, chứ không được giả định mỗi lần gọi hoặc là thành công hoặc là tự động báo lỗi. Khi tiếp cận thực tế, ứng dụng phải đối diện với nhiều bản triển khai đã triển khai sẵn, không thể chỉ kiểm tra tên hàm có tồn tại hay không.

Những năng lực không thuộc chuẩn cơ bản

ERC-20 không quy định thống nhất cách token tạo lượng cung ban đầu, cũng không yêu cầu hợp đồng phải tiếp tục phát hành hay hỗ trợ tiêu hủy. Phát hành thêm, tiêu hủy, tạm dừng, đóng băng, danh sách, phí giao dịch, quyền bỏ phiếu, nâng cấp và các vai trò quản trị đều có thể do bản triển khai cụ thể tự thêm vào, hoặc hoàn toàn không có.

Chuẩn cũng không quy định:

  • lượng cung token có trần hay không, và ai được thay đổi lượng cung;
  • token có tương ứng với quỹ dự trữ, hàng hóa, dịch vụ hay quyền ngoài chuỗi nào không;
  • giá token, thanh khoản hay nơi giao dịch;
  • quản trị viên có thể tạm dừng, đóng băng hay nâng cấp hợp đồng hay không;
  • token cùng tên trên mạng khác có thuộc cùng một thỏa thuận phát hành hay không.

Vì vậy, đọc totalSupply chỉ cho biết tổng lượng mà hợp đồng đang báo cáo, tự nó không nói được sau này có phát hành thêm hay không; thấy cùng một symbol cũng không chứng minh hai hợp đồng đại diện cho cùng một loại token.

Hợp đồng token và ETH gốc

ETH là tài sản gốc của mạng Ethereum, dùng để trả phí gas mà mạng thu khi thực thi giao dịch, và do giao thức ghi nhận trực tiếp. Còn token ERC-20 thì có hợp đồng thông minh duy trì số dư và quy tắc thao tác.

Cả hai đều có thể chuyển giữa các địa chỉ, nhưng đường gọi không giống nhau. Chuyển ETH thông thường không cần gọi hợp đồng ERC-20 nào, và bản thân ETH cũng không phải token ERC-20. Một số ứng dụng dùng hợp đồng để biểu diễn ETH dưới dạng ERC-20, nhằm tiếp cận những chương trình chỉ nhận giao diện ERC-20; việc này đưa thêm một hợp đồng cùng quy tắc của nó vào, nên không thể coi hai bản ghi là cùng một đối tượng.

Tương thích giao diện không có nghĩa hành vi hoàn toàn giống nhau

"Hỗ trợ ERC-20" thường chỉ nói rằng ví hoặc ứng dụng gọi được các giao diện cơ bản. Token cụ thể vẫn có thể biểu hiện khác:

  • khi chuyển bị trừ thêm phí, khiến số lượng nhận được thấp hơn số đã nhập;
  • quản trị viên có thể tạm dừng việc chuyển, đóng băng địa chỉ hoặc thay đổi bản triển khai;
  • một số hợp đồng cũ không trả kết quả theo cách ứng dụng mong đợi;
  • trường hiển thị bị thiếu, bị trùng hoặc do nguồn không đáng tin cung cấp;
  • logic bổ sung khiến giao dịch chuyển thông thường thất bại trong một số điều kiện.

Vì vậy, ERC-20 cung cấp một ngôn ngữ chung, không phải bộ quy tắc nghiệp vụ thống nhất. Muốn đánh giá một token có thể tiếp cận an toàn hay không thì phải kiểm tra địa chỉ hợp đồng cụ thể, mã hoặc thông tin xác minh, quyền quản trị và kết quả gọi thực tế.

Câu hỏi thường gặp

Mọi token trên Ethereum đều là ERC-20?

Không. Ethereum còn có những chuẩn dành cho token có số hiệu riêng hoặc cho mục đích khác, và cũng có thể tồn tại giao diện tự định nghĩa. ERC-20 chủ yếu phục vụ những token được ghi theo số lượng, trong đó các đơn vị bằng nhau đổi lẫn cho nhau được.

Mọi token đều dùng 18 chữ số thập phân?

Không. decimals là trường hiển thị tùy chọn, các token khác nhau có thể dùng giá trị khác nhau. Ứng dụng nên đọc và xử lý đúng thiết lập của hợp đồng cụ thể trước khi tính toán và hiển thị số lượng.

Ngắt kết nối ví với trang web là đã thu hồi cấp phép?

Thường thì chưa. Ngắt kết nối sẽ ngăn trang web tiếp tục yêu cầu ví thao tác qua phiên hiện tại, nhưng hạn mức trên chuỗi vẫn do hợp đồng token ghi nhận. Thu hồi thường cần đổi hạn mức đó về 0 và để giao dịch được ghi thành công vào mạng.

Nhận được token ERC-20 là token đó thật?

Không. Bất kỳ ai cũng có thể triển khai hợp đồng có tên hoặc mã giao dịch gần giống. Cần đối chiếu mạng, địa chỉ hợp đồng và nguồn thông tin đáng tin; tính tương thích với chuẩn không chứng minh được danh tính bên phát hành, quỹ dự trữ hay giá trị.

Các blockchain khác dùng trực tiếp bộ chuẩn này được không?

ERC-20 là chuẩn tầng ứng dụng của Ethereum. Những mạng khác có thể chạy hợp đồng thông minh kiểu Ethereum có thể áp dụng giao diện tương tự, nhưng địa chỉ hợp đồng và trạng thái trên mỗi mạng là độc lập với nhau. Việc di chuyển xuyên chuỗi thường còn liên quan tới cầu nối hoặc một thỏa thuận phát hành khác, không phải do giao diện ERC-20 tự động thực hiện.

Khái niệm liên quan

Tìm hiểu thêm về chuẩn token, token mã hóa, hợp đồng thông minh và phí gas, hoặc trở lại bảng thuật ngữ tiền mã hóa.

Nguồn

Tuyên bố miễn trừ trách nhiệm
Nội dung này chỉ nhằm mục đích cung cấp thông tin và có thể đề cập đến các sản phẩm không khả dụng tại khu vực của bạn. Nội dung này không nhằm mục đích cung cấp (i) lời khuyên hoặc khuyến nghị đầu tư; (ii) đề nghị hoặc chào mời mua, bán hoặc nắm giữ crypto/tài sản kỹ thuật số; hoặc (iii) tư vấn tài chính, kế toán, pháp lý hoặc thuế. Tài sản kỹ thuật số/crypto, bao gồm cả stablecoin, có mức độ rủi ro cao và có thể biến động mạnh. Bạn nên cân nhắc kỹ xem việc giao dịch hoặc nắm giữ crypto/tài sản kỹ thuật số có phù hợp với bạn hay không, dựa trên tình hình tài chính của mình. Vui lòng tham khảo ý kiến của chuyên gia pháp lý/thuế/đầu tư để được giải đáp câu hỏi về tình hình cụ thể của bản thân. Thông tin (bao gồm dữ liệu thị trường và thông tin thống kê, nếu có) trong bài viết này chỉ mang tính chất thông tin chung. Mặc dù đã thực hiện mọi biện pháp cẩn thận hợp lý khi chuẩn bị dữ liệu và biểu đồ này, chúng tôi không chịu trách nhiệm về bất kỳ sai sót thực tế hoặc thiếu sót nào trong tài liệu này.

© 2025 OKX. Bài viết này có thể được sao chép hoặc phân phối toàn bộ, hoặc trích dẫn các đoạn không quá 100 từ, miễn là không sử dụng cho mục đích thương mại. Mọi bản sao hoặc phân phối toàn bộ bài viết phải ghi rõ: “Bài viết này thuộc bản quyền © 2025 OKX và được sử dụng có sự cho phép.” Nếu trích dẫn, vui lòng ghi tên bài viết và nguồn tham khảo, ví dụ: “Tên bài viết, [tên tác giả nếu có], © 2025 OKX.” Một số nội dung có thể được tạo ra hoặc hỗ trợ bởi công cụ trí tuệ nhân tạo (AI). Nghiêm cấm các tác phẩm phái sinh hoặc hình thức sử dụng khác đối với bài viết này.

Bài viết liên quan

Xem thêm
crypto-glossary-cover-v5.contentful

Thuật ngữ tiền mã hóa từ A đến Z: Blockchain và giao dịch

Khám phá các khái niệm về tiền mã hóa, blockchain và giao dịch qua định nghĩa ngắn gọn, được sắp xếp theo thuật ngữ tiếng Anh và kèm tên gọi tiếng Việt. [A](#a) · [B](#b) · [C](#c) · [D](#d) · [E](#e)
29 thg 10, 2026
Crypto adoption generic thumbnail

DeFi là gì?

Tài chính phi tập trung (decentralized finance, DeFi) là một loại ứng dụng cung cấp những chức năng tài chính như trao đổi tài sản và cho vay, chủ yếu thông qua blockchain và hợp đồng thông minh. Hợp
29 thg 10, 2026
decentralized-exchange-dex

DEX là gì?

Sàn giao dịch phi tập trung (decentralized exchange, DEX) là một loại hệ thống giao dịch cho phép người dùng trao đổi tài sản số thông qua giao thức blockchain hoặc hợp đồng thông minh. Hợp đồng thông
29 thg 10, 2026
thumbnail:dao

DAO là gì?

Tổ chức tự trị phi tập trung (decentralized autonomous organization, DAO) là một cách tổ chức để nhiều người cùng ra quyết định, quản lý ngân quỹ hoặc duy trì một dự án theo những quy tắc đã thống nhấ
29 thg 10, 2026
DApps generic thumb

DApp là gì?

Ứng dụng phi tập trung (decentralized application, DApp) là ứng dụng giao một phần quy tắc hoặc trạng thái cốt lõi của mình — ví dụ số dư, quyền sở hữu và bản ghi cấp phép — cho một mạng phi tập trung
29 thg 10, 2026
crypto-token

Token mã hóa là gì?

Token mã hóa là đơn vị số do giao thức blockchain hoặc chương trình on-chain định nghĩa, có thể được ghi nhận và chuyển giao thông qua blockchain. Blockchain có thể ghi việc token thuộc về ai trong nh
29 thg 10, 2026
Xem thêm