Indexer là gì, ứng dụng blockchain đọc dữ liệu thế nào?
Indexer là phần mềm sắp xếp dữ liệu blockchain để ví, block explorer, DApp tra nhanh. Cách hoạt động, The Graph và subgraph, kiểm lại khi ví hiện sai.
Mục lục 9 phần
- 01Indexer là gì?
- 02Indexer hoạt động thế nào?
- 03Indexer, RPC và block explorer khác nhau thế nào?
- 04Số dư và lịch sử trong ví lấy từ đâu?
- 05Indexer lỗi thì tài sản có mất không?
- 06Ví hiển thị lạ thì kiểm lại thế nào?
- 07The Graph và subgraph là gì?
- 08Ai cần hiểu indexer?
- 09Indexer và pháp luật Việt Nam
- Câu hỏi thường gặp
- Nguồn tham khảo
Tóm tắt nhanh
- Indexer là phần mềm đọc từng khối của blockchain rồi ghi dữ liệu vào cơ sở dữ liệu có chỉ mục, để ứng dụng tra cứu nhanh mà không phải quét lại cả chuỗi.
- Lịch sử giao dịch, danh sách token trong ví và số liệu trên block explorer thường đến từ indexer. Theo OpenTezos, ví Temple lấy số dư token từ indexer TzKT.
- Indexer chỉ đọc, không giữ khóa. Indexer chậm hoặc lỗi làm màn hình hiện sai, còn dữ liệu ghi trên chuỗi không đổi. Riêng BRC-20, số dư chính là kết quả tính của indexer.
- The Graph là giao thức lập chỉ mục mở. Subgraph mô tả hợp đồng, sự kiện cần đọc và cách lưu, rồi các Indexer trong mạng phục vụ truy vấn qua GraphQL.
- The Graph ngừng hỗ trợ mạng Kaia từ 31/08/2026; theo tài liệu Kaia, các subgraph trên Kaia không còn trả dữ liệu từ ngày đó.

Indexer là phần mềm đọc từng khối của một blockchain, rồi sắp xếp dữ liệu vào cơ sở dữ liệu có chỉ mục để ứng dụng tra cứu trong tích tắc thay vì quét lại cả chuỗi. Lịch sử giao dịch trong ví, danh sách token, số liệu trên block explorer (trang web tra cứu giao dịch, địa chỉ ví) hay trên trang của một DApp (ứng dụng chạy bằng hợp đồng thông minh) thường đến từ indexer, không phải đọc thẳng từ chuỗi.
Vì vậy indexer chậm hoặc lỗi thì màn hình hiện sai, trong khi dữ liệu ghi trên chuỗi vẫn đúng.
Tài liệu của The Graph, ethereum.org, OpenTezos và Kaia được kiểm ngày 01/11/2026.
Indexer là gì?
Indexer là phần mềm biến dữ liệu thô của blockchain thành cơ sở dữ liệu có chỉ mục, để trả lời nhanh những câu hỏi mà chuỗi không được thiết kế để trả lời.
Tài liệu của mạng Kaia mô tả indexer tạo và duy trì “organized databases of the blockchain’s data”, giúp người dùng lấy thông tin nhanh “without needing to process the entire blockchain from scratch”. Người dùng hay gọi là “indexer blockchain” hoặc “lập chỉ mục dữ liệu blockchain”, cùng một khái niệm.
OpenTezos so sánh với thư viện. Sách xếp theo thể loại và tên tác giả. Muốn tìm mọi cuốn xuất bản năm 1962 thì phải lật từng cuốn, trừ khi thủ thư đã lập sẵn một danh mục theo năm. Indexer chính là người lập danh mục đó cho blockchain.
Theo The Graph (giao thức lập chỉ mục mở, giới thiệu ở mục dưới), blockchain được tối ưu để ghi và kiểm giao dịch, không phải để đọc hay phân tích. Bốn điểm làm việc đọc khó:
- Không có bảng, không có quan hệ. Dữ liệu là chuỗi khối nối đuôi nhau. Muốn biết “mọi lần chuyển của một người dùng” phải quét từng khối.
- Trạng thái hợp đồng nằm ở dạng cấp thấp. Dữ liệu của hợp đồng thông minh nằm trong ô lưu trữ và nhật ký sự kiện, phải dựng lại mới đọc được.
- Không có ngôn ngữ truy vấn. Chuỗi chỉ mở các lệnh RPC (cổng để phần mềm hỏi dữ liệu từ node, xem RPC là gì) cấp thấp như eth_getLogs, eth_call, không lọc, cộng gộp hay sắp xếp được.
- Dữ liệu lịch sử cần archive node. Đây là loại node giữ toàn bộ trạng thái quá khứ, tốn kém vì phần lớn node xóa bớt dữ liệu cũ.
Chỉ mục giúp nhanh tới mức nào? OpenTezos nêu ví dụ bảng 1.000.000 dòng. Không có chỉ mục, máy có thể phải xét tới 1.000.000 dòng. Có chỉ mục dạng cây B+ (cấu trúc cây chia nhánh để tìm mà không duyệt hết bảng), chỉ cần khoảng 20 bước hoặc ít hơn.
Con số 20 tính như sau: nếu mỗi bước loại được ít nhất một nửa số dòng còn lại, số bước cần là log₂(1.000.000). Vì 2²⁰ = 1.048.576 lớn hơn 1.000.000, 20 bước là đủ. Cây B+ thật chia nhiều nhánh hơn ở mỗi bước nên thường còn nhanh hơn.
Indexer hoạt động thế nào?
Indexer lấy từng khối mới từ node, tách các sự kiện cần theo dõi, tính toán theo quy tắc riêng rồi ghi vào cơ sở dữ liệu để trả lời truy vấn.
Một vòng xử lý thường gồm năm bước:
- Lấy khối. Theo OpenTezos, indexer xin cả khối từ các node (máy chạy phần mềm blockchain, giữ và kiểm từng khối) rồi ghi vào cơ sở dữ liệu của mình.
- Tách sự kiện. Hợp đồng thông minh để lại các event (bản ghi hợp đồng phát ra khi chạy, còn gọi là log). Ví dụ chuẩn ERC-20 (chuẩn token trên Ethereum, xem TRC20, BEP20, ERC20 là gì) quy định event Transfer ghi người gửi, người nhận, số lượng mỗi lần chuyển.
- Tính toán theo quy tắc. Cộng trừ số dư, gắn tên token, đổi đơn vị, gom theo địa chỉ.
- Ghi kèm chỉ mục. Dữ liệu được lưu thành bảng, có chỉ mục theo địa chỉ, mã giao dịch, hợp đồng.
- Trả lời truy vấn. Ứng dụng hỏi qua API (cổng để phần mềm khác gửi câu hỏi, nhận dữ liệu), nhiều dịch vụ dùng GraphQL (ngôn ngữ truy vấn chỉ lấy đúng trường cần).
Việc khó nhất là reorg (chuỗi bỏ vài khối cuối, thay bằng nhánh khác). Khi đó indexer phải xóa dữ liệu của các khối bị bỏ rồi đọc lại nhánh mới.
Cũng theo OpenTezos, indexer TzKT của Tezos lùi lại từng khối khi gặp reorg rồi đi theo nhánh mới. Nhóm nào không cần dữ liệu tức thời có thể cho indexer chạy trễ vài khối để chỉ xử lý khối không còn bị bỏ.
OpenTezos chia indexer làm hai loại:
| Loại | Lưu gì | Thường dùng cho |
|---|---|---|
| Đầy đủ (full) | Mọi dữ liệu của mọi khối | Block explorer, API công khai cho dự án khác dùng |
| Chọn lọc (selective) | Chỉ dữ liệu một dự án cần, như số dư, NFT | Sàn NFT, giao diện ví và DApp |
Theo OpenTezos, kiểm 01/11/2026. NFT (token đại diện một tài sản số duy nhất, xem NFT là gì).
Indexer, RPC và block explorer khác nhau thế nào?
RPC hỏi thẳng node từng câu đơn giản, indexer dựng sẵn cơ sở dữ liệu cho câu hỏi phức tạp, còn block explorer là trang web tra cứu dựng trên indexer.
| Thành phần | Làm gì | Trả lời tốt | Không làm tốt |
|---|---|---|---|
| Node | Giữ và tự kiểm từng khối | Trạng thái hiện tại của chuỗi | Tra cứu, thống kê |
| RPC | Cổng hỏi node | Số dư một địa chỉ, gửi giao dịch | Liệt kê mọi giao dịch của một ví |
| Indexer | Đọc chuỗi, lưu vào cơ sở dữ liệu | Lịch sử, tổng hợp, lọc, sắp xếp | Dữ liệu tức thời tuyệt đối |
| Block explorer | Giao diện web trên indexer | Tra giao dịch, địa chỉ, token | Sửa hay đảo ngược giao dịch |
Tổng hợp từ The Graph, ethereum.org, OpenTezos, kiểm 01/11/2026.
OpenTezos ghi các block explorer hiển thị dữ liệu mọi khối “with the help of indexers”. Ethereum.org cho biết nhiều explorer như Etherscan, Blockscout còn mở API để lập trình viên lấy dữ liệu. Cách dùng explorer có ở bài block explorer là gì, rủi ro khi đổi RPC trong ví có ở bài RPC là gì.
Số dư và lịch sử trong ví lấy từ đâu?
Tùy từng loại dữ liệu: số dư có thể hỏi thẳng node qua RPC, còn lịch sử giao dịch, danh sách token và giá thường lấy từ indexer hoặc API bên ngoài.
Ví dụ được OpenTezos mô tả là ví Temple trên Tezos. Ví này lấy số dư token, chi tiết giao dịch, NFT và phần thưởng staking (khóa coin để tham gia xác thực khối, nhận thưởng) từ indexer TzKT. Giá đồng XTZ (coin gốc của mạng Tezos) thì ví lấy từ CoinGecko, một trang dữ liệu giá.
Tezos Ukraine còn hỏi các nhóm làm ví và ứng dụng trên Tezos đang dùng indexer nào. Kết quả: một ứng dụng cần từ hai đến năm indexer, gồm indexer công khai cho dữ liệu chung, indexer tự vận hành cho dữ liệu quan trọng, indexer chọn lọc cho giao diện.
Với token ERC-20 trên Ethereum, số dư nằm trong hợp đồng token và đọc được qua hàm balanceOf. Danh sách các lần chuyển thì khác. Theo The Graph, muốn có “all transfers for this user” phải quét chuỗi từng khối, nên ví và explorer dựa vào indexer đã gom sẵn các event Transfer.
BRC-20 (token tạo bằng các inscription, tức dữ liệu khắc lên từng satoshi, chứa đoạn văn bản JSON trên Bitcoin) còn phụ thuộc hơn. Tài liệu gốc của BRC-20 gọi đây là cách tạo “off-chain balance states”, và số dư phải tính “by aggregating all of these function’s activity together”. Bitcoin không kiểm các số dư đó, chỉ indexer tính. Chi tiết ở bài Ordinals, BRC-20, Runes là gì.
Indexer lỗi thì tài sản có mất không?
Không. Indexer chỉ đọc chuỗi và không giữ khóa, nên lỗi indexer làm màn hình hiện sai hoặc trống, còn dữ liệu ghi trên chuỗi không đổi.
Ngoại lệ là các token kiểu BRC-20: số dư không được chuỗi kiểm, nên khi các indexer dùng quy tắc khác nhau thì “số dư đúng” phụ thuộc vào quy tắc mà nơi bạn giao dịch công nhận.
Những kiểu lỗi thường gặp:
- Chậm so với chuỗi. Indexer phải xử lý xong khối mới rồi mới cập nhật, nên luôn đi sau đầu chuỗi một khoảng. Cách đo khoảng này có ở mục kiểm lại bên dưới.
- Dịch vụ ngừng. Tài liệu Kaia ghi The Graph ngừng hỗ trợ mạng này từ ngày 31/08/2026, các subgraph (bộ lập chỉ mục cho từng ứng dụng trên The Graph) trên Kaia “no longer index and their query endpoints no longer return data”. Ứng dụng nào chưa chuyển sang nhà cung cấp khác sẽ hiện trống, dù tài sản trên chuỗi vẫn nằm nguyên.
- Giao thức nâng cấp. OpenTezos ghi một phiên bản giao thức mới có thể đổi cách node trả lời, làm indexer ghi sai các khối.
- Reorg. Khối đã lập chỉ mục bị chuỗi bỏ, indexer không lùi kịp thì hiện giao dịch không còn tồn tại.
Indexer đọc dữ liệu công khai, nó không cần cụm từ khôi phục hay khóa riêng tư của bạn. Ai đòi cụm từ khôi phục để “đồng bộ lại số dư” hay “sửa lỗi hiển thị” là đang lừa.
Ví hiển thị lạ thì kiểm lại thế nào?
Đối chiếu bằng một nguồn thứ hai không dùng chung indexer: explorer khác của cùng mạng, hoặc hỏi thẳng node qua RPC.
- Tra trên explorer thứ hai. Lấy txid (mã định danh duy nhất của giao dịch, xem thuật ngữ) hoặc địa chỉ ví, tra trên một explorer khác của đúng mạng đó. Với Ethereum, ethereum.org nêu Etherscan và Blockscout.
- Hỏi thẳng node. Lệnh eth_getBalance trả số dư ETH của một địa chỉ, hàm balanceOf của hợp đồng token trả số dư ERC-20. Hai cách này đọc trạng thái từ node, không qua indexer. Chỉ dùng RPC bạn tin, vì RPC lạ cũng có thể trả số sai.
- Xem subgraph đã chạy tới đâu. Ứng dụng dùng The Graph có thể hỏi trường _meta để biết khối mới nhất subgraph đã xử lý và cờ hasIndexingErrors (đã từng gặp lỗi lập chỉ mục hay chưa).
- Với BRC-20, so hai indexer. Hai nguồn lệch nhau thì hỏi nơi làm ví hoặc chờ rõ ràng trước khi chuyển.
- Tài sản để trên sàn thì hỏi sàn. Số dư trên sàn là sổ sách nội bộ của sàn, không phải dữ liệu on-chain (dữ liệu ghi trên blockchain, xem on-chain và off-chain). Gửi txid cho bộ phận hỗ trợ của sàn khi nạp chưa thấy về.
Ví dụ tính độ trễ ở bước 3. Explorer báo khối mới nhất là N, còn _meta của subgraph báo N − 300. Theo ethereum.org, Ethereum chia thời gian thành các slot 12 giây, mỗi slot có một validator (nút mạng kiểm tra giao dịch và tạo khối mới) được chọn đề xuất khối.
Độ trễ tối thiểu = 300 khối × 12 giây = 3.600 giây = 60 phút. Ethereum.org ghi đôi khi slot bị trống vì validator không trực tuyến, nên 300 khối có thể trải dài hơn 3.600 giây và độ trễ thật có thể lớn hơn 60 phút.
The Graph và subgraph là gì?
The Graph là giao thức lập chỉ mục mở; subgraph là bản mô tả cần đọc gì từ chuỗi và lưu ra sao, được các Indexer trong mạng chạy và phục vụ.
Ethereum.org gọi The Graph là “an indexing protocol that provides an easy way to query blockchain data through open APIs known as subgraphs”. Lợi ích được nêu là dùng nhiều indexer để không có điểm hỏng duy nhất, và truy vấn bằng GraphQL.
Theo tài liệu The Graph, một subgraph gồm ba tệp:
- subgraph.yaml (manifest): hợp đồng nào, trên mạng nào, sự kiện nào cần theo dõi.
- schema.graphql: dữ liệu được lưu thành những loại bản ghi nào, truy vấn ra sao.
- mapping.ts: đoạn mã biến dữ liệu sự kiện thành bản ghi theo schema.
Một subgraph đọc được nhiều hợp đồng nhưng chỉ trên một mạng. Khi đã được lập chỉ mục, ai cũng truy vấn được subgraph đó.
Trong mạng The Graph, Indexer (viết hoa) là tên một vai trò: bên chạy phần mềm Graph Node để lập chỉ mục và trả lời truy vấn. Theo bảng thuật ngữ của The Graph, mỗi Indexer phải tự đặt cọc tối thiểu 100.000 GRT (token của mạng The Graph).
Bên giám sát gọi là Fisherman có thể khiếu nại khi thấy Indexer trả dữ liệu sai. Khiếu nại thắng thì Indexer bị trừ 2,5% phần tự đặt cọc (slashing). Đây là cơ chế buộc trách nhiệm về dữ liệu, không bảo đảm mọi câu trả lời đều đúng.
The Graph tự công bố trên trang About The Graph trong tài liệu của dự án (đọc 01/11/2026): tính đến đầu năm 2026 đã phục vụ hơn 1.270 tỷ lượt truy vấn cho hơn 75.000 dự án, qua hơn 50 Indexer độc lập. Ethereum.org còn liệt kê các dịch vụ dữ liệu khác như SubQuery, SQD (nền tảng dữ liệu lịch sử on-chain), Envio và Dune.
Ai cần hiểu indexer?
Người dùng ví tự quản, người dùng DApp và lập trình viên, mỗi nhóm vì một lý do khác nhau.
- Người dùng ví tự quản (ví bạn tự giữ khóa): biết số trên màn hình là dữ liệu đã qua indexer để không hoảng khi ví hiện 0 hay thiếu token, và biết cách đối chiếu.
- Người dùng DApp: trang của ứng dụng có thể chạy trên subgraph. Subgraph chậm thì số liệu vị thế, lịch sử có thể cũ hơn trạng thái thật trên chuỗi.
- Lập trình viên: dựng hay thuê indexer là phần việc backend thường gặp, mô tả ở bài kỹ sư blockchain là gì.
Indexer và pháp luật Việt Nam
Nghị quyết 05 và Nghị định 284 không nhắc đến indexer. Nghị quyết 05/2025/NQ-CP và Nghị định 284/2026/NĐ-CP nói về dịch vụ tài sản mã hóa và xử phạt, không nói về công cụ đọc dữ liệu.
Nghị quyết 05 ghi chỉ tổ chức được Bộ Tài chính cấp Giấy phép cung cấp dịch vụ tổ chức thị trường giao dịch tài sản mã hóa mới được cung cấp dịch vụ liên quan đến tài sản mã hóa và “quảng cáo, tiếp thị liên quan đến tài sản mã hóa” (Điều 4 khoản 4). Tính đến 07/11/2026, chưa sàn nào được cấp phép.
Một trang web hiện số dư hay lợi nhuận lớn chỉ đang hiện con số mà trang đó chọn hiển thị. Trước khi tin hay nạp thêm tiền, đối chiếu địa chỉ và giao dịch trên block explorer độc lập theo các bước ở trên.
Chia sẻ bài viết
Liên quan
- Hồ sơ coinThe Graph (GRT) là gì, token GRT dùng để làm gì?
- Kiến thức nềnNạp, rút coin là gì, rút từ sàn về ví tự quản sao cho an toàn?
- Kiến thức nềnChuyển USDT cho người khác thế nào, phí và rủi ro ra sao?
- Kiến thức nềnVí bitcoin cổ thức giấc là gì, có phải ví Satoshi không?
Bắt đầu từ cơ bản: Tài sản mã hóa cho người mới: 10 điều cần biết trước khi mua
Câu hỏi thường gặp
Tự chạy indexer có cần máy mạnh không?
Tùy loại. Indexer đầy đủ lưu mọi dữ liệu của chuỗi và cần nguồn đọc lịch sử, thường là archive node (node giữ toàn bộ trạng thái quá khứ). The Graph ghi loại node này tốn kém vì phần lớn node xóa bớt dữ liệu cũ. OpenTezos kể năm 2019, phần chỉ mục cho 1 GB dữ liệu Tezos của nhóm Baking Bad chiếm dung lượng gấp bốn lần. Indexer chọn lọc chỉ lưu vài hợp đồng nên nhẹ hơn nhiều.
Có tra được dữ liệu của một subgraph tại một khối trong quá khứ không?
Được. API GraphQL của The Graph nhận tham số block theo số khối hoặc mã băm khối để lấy trạng thái tại thời điểm đó. Tài liệu The Graph lưu ý kết quả theo mã băm của khối chưa được coi là cuối cùng có thể bị ảnh hưởng nếu chuỗi đang reorg; với khối đã cuối cùng thì không.
Dune Analytics có phải là indexer không?
Dune làm cùng loại việc: theo ethereum.org, Dune xử lý trước dữ liệu blockchain thành các bảng dữ liệu quan hệ để người dùng truy vấn bằng SQL và dựng bảng biểu. Dữ liệu thô được chia thành bốn bảng: khối, giao dịch, nhật ký sự kiện và lệnh gọi. Đây là dữ liệu đã qua tay một bên thứ ba, nên vẫn có độ trễ và quy tắc giải mã riêng.
Hai block explorer hiện số người nắm giữ của cùng một token khác nhau, bên nào đúng?
Số người nắm giữ, tổng giao dịch hay nhãn ví là số liệu indexer tự tính theo quy tắc riêng, ở thời điểm riêng, nên lệch nhau là chuyện có thể xảy ra. Con số gốc kiểm được là số dư của từng địa chỉ, đọc từ hợp đồng token qua RPC. Số tổng hợp chỉ nên coi là ước tính của bên làm explorer.
Bên cung cấp indexer có biết tôi là ai không?
Dữ liệu trên chuỗi là công khai, nhưng mỗi lần ví hay trang web hỏi API của indexer, máy chủ của bên đó nhận được địa chỉ IP và các địa chỉ ví được hỏi, giống chuyện xảy ra với RPC. Ai muốn hạn chế điều này có thể tự chạy node và indexer, hoặc tra bằng nhiều nguồn khác nhau.
Nguồn tham khảo 13
Kiểm chứng ngày 01/11/2026
- 01The Graph Docs: About The Graph (vì sao dữ liệu blockchain khó lập chỉ mục)thegraph.com
- 02The Graph Docs: Glossary (Indexer, Subgraph, Fisherman, slashing)thegraph.com
- 03The Graph Docs: Subgraph Manifestthegraph.com
- 04The Graph Docs: GraphQL API (_meta, truy vấn theo khối)thegraph.com
- 05Ethereum.org: Data and analytics (cập nhật 20/07/2026)ethereum.org
- 06Ethereum.org: Blocks (slot 12 giây, slot có thể trống)ethereum.org
- 07Ethereum.org: JSON-RPC API (eth_getBalance, eth_getLogs)ethereum.org
- 08Ethereum.org: ERC-20 token standard (event Transfer, balanceOf)ethereum.org
- 09OpenTezos (Nomadic Labs, nội dung của Tezos Ukraine): How Blockchain Indexers Work and Why We Need Themopentezos.com
- 10Kaia Docs: Indexers (The Graph ngừng hỗ trợ Kaia từ 31/08/2026)docs.kaia.io
- 11domo: brc-20 experiment (tài liệu gốc của BRC-20)domo-2.gitbook.io
- 12Chính phủ: toàn văn Nghị quyết 05/2025/NQ-CP về thí điểm thị trường tài sản mã hóaxaydungchinhsach.chinhphu.vn
- 13Công báo: Nghị định 284/2026/NĐ-CP xử phạt vi phạm hành chính về tài sản mã hóacongbao.chinhphu.vn


