
Cách truy xuất token mới được mint bằng Helius
Mục lục
Giới thiệu
Các memecoin trên Solana gần đây liên tục gây chú ý, khi $WIF vượt mốc 3,5 tỷ USD và Boden đạt 300 triệu USD. Popcat và Wen gần đây cũng đã vượt mốc 350 triệu USD. Ngay trong ngày đầu tiên, khối lượng giao dịch của Slerf cũng đã vượt qua tất cả các sàn giao dịch dựa trên Ethereum. Sau cơn sốt BONK vào tháng 11 năm ngoái, số lượng token mới được tạo trên Solana đang cao hơn bao giờ hết.
Bài viết này tìm hiểu cách token được tạo trên Solana, token SPL là gì, cũng như cách theo dõi token mới và truy xuất metadata của chúng bằng Helius.
Token được tạo trên Solana như thế nào?
Solana hỗ trợ cả SOL gốc và các token khác. Solana Program Library (SPL) xác định các tiêu chuẩn chung cho token có thể thay thế và token không thể thay thế (NFT) trên Solana. Không giống Ethereum, nơi có các tiêu chuẩn riêng cho từng loại token không thể thay thế (ERC-721) và token có thể thay thế (ERC-20), Solana Program Library không có tiêu chuẩn được xây dựng riêng cho từng loại token.
Token Program
Cách triển khai tiêu chuẩn cho token có thể thay thế và token không thể thay thế (NFT) trên Solana là Token Program. Chương trình cung cấp các chức năng như tạo loại token và tài khoản mới, chuyển và đốt token, cùng nhiều chức năng khác. Token Program đã hoàn thiện và hiện không có kế hoạch bổ sung chức năng mới. Chương trình vẫn có thể được thay đổi để sửa các lỗi nghiêm trọng hoặc gây gián đoạn.
Tuy nhiên, Token Program có một số hạn chế — nhà phát triển phải fork chương trình để bổ sung chức năng mới, khiến các giao dịch trở nên phức tạp và rủi ro hơn. Để giải quyết vấn đề này, Solana đã giới thiệu Token-2022, một bộ tính năng bổ sung và cải tiến như:
- Tiện ích mở rộng Mint: giao dịch chuyển riêng tư, phí chuyển, đóng mint, token sinh lãi, token không thể chuyển nhượng, đại diện ủy quyền vĩnh viễn, hook chuyển token, con trỏ metadata, metadata.
- Tiện ích mở rộng Tài khoản: bắt buộc có memo khi nhận giao dịch chuyển, quyền sở hữu bất biến, trạng thái tài khoản mặc định, cơ chế bảo vệ CPI.
Để tìm hiểu thêm về Token-2022, hãy tham khảo bài viết này.
Token Program của Solana cho phép chúng ta tạo tài khoản mint và tài khoản token. Tài khoản mint chứa thông tin tổng thể về một token, còn tài khoản token lưu trữ mối quan hệ giữa ví và tài khoản mint. Bạn có thể tạo token bằng mã nguồn hoặc spl-token-cli sau đây. Ví dụ, hãy chạy lệnh này trong dòng lệnh để tạo token có thể thay thế, với điều kiện đã cài đặt spl-token-cli:
spl-token create-tokenToken Metadata Program
Các tài khoản mint chứa một số thuộc tính dữ liệu như nguồn cung token hiện tại. Tuy nhiên, chúng thiếu dữ liệu được chuẩn hóa như tên và ký hiệu. Để giải quyết vấn đề này, Metaplex đã giới thiệu Token Metadata Program. Chương trình này cho phép gắn dữ liệu bổ sung vào token có thể thay thế và token không thể thay thế bằng PDA (Program Derived Address) được dẫn xuất từ địa chỉ mint.
Token Metadata Program ban đầu được tạo ra để đơn giản hóa việc tạo NFT trên Solana. Tuy nhiên, chương trình cũng hoạt động với SFT, tức token bán thay thế. SFT kết hợp đặc điểm của cả token có thể thay thế và token không thể thay thế. Ban đầu, chúng hoạt động như token có thể thay thế, nghĩa là có thể được trao đổi với các token giống hệt mà không làm mất giá trị cho bất kỳ bên nào. Sau khi được sử dụng, chúng mất giá trị trao đổi và có được các thuộc tính của token sưu tầm không thể thay thế. SFT hoạt động như một loại tài khoản độc nhất được gắn metadata để đại diện cho các đặc điểm trong môi trường trò chơi hoặc metaverse. Trong một số trường hợp, SFT được ưu tiên hơn NFT nhờ hiệu quả, chi phí hợp lý, tính linh hoạt và khả năng bảo mật giao dịch tốt hơn.
Token Metadata Program cũng hỗ trợ NFT có thể lập trình (pNFT). Tiêu chuẩn tài sản mới này cho phép nhà sáng tạo xác định các quy tắc tùy chỉnh cho những thao tác cụ thể và ủy quyền chi tiết hơn cho các bên thứ ba. Tài khoản token của pNFT luôn bị đóng băng trên SPL Token Program, bất kể pNFT có được ủy quyền hay không. Điều này đảm bảo không ai có thể bỏ qua Token Metadata Program bằng cách tương tác trực tiếp với SPL Token Program.
Theo dõi token mới
Để theo dõi các token mới được mint, chúng ta sẽ thiết lập một webhook. Webhook cho phép bạn theo dõi các sự kiện on-chain và kích hoạt những hành động cụ thể khi các sự kiện này xảy ra. Chúng ta sẽ cấu hình webhook để theo dõi loại giao dịch TOKEN_MINT từ Token Metadata Program. Các nguồn hiện được hỗ trợ cho loại giao dịch này gồm có (các nguồn khác sẽ được gắn nhãn “UNKNOWN”):
"TOKEN_MINT": [ "CANDY_MACHINE_V1", "ATADIA", "SOLANA_PROGRAM_LIBRARY" ]Bạn có thể tạo webhook bằng Helius Dashboard hoặc thông qua mã bằng tài liệu tham khảo API. Để tạo webhook qua Dashboard, hãy mở mục Webhooks trong bảng bên trái và nhấp vào New Webhook. Sau đó, cấu hình webhook bằng cách cung cấp các thông tin như:
- Mạng: Mainnet/Devnet
- Loại webhook: Bạn có thể chọn Enhanced, Raw hoặc Discord. Nếu chọn Discord, bạn phải cung cấp Webhook URL; thông báo sẽ được bot định dạng và gửi trực tiếp. Bạn có thể tham khảo các bước lấy Webhook URL cho bot Discord tại đây. Nếu chọn Raw, bạn sẽ không thể chỉ định loại giao dịch.
- Loại giao dịch: Chọn
TOKEN_MINTđể theo dõi các token mới được mint*.* Bạn có thể xem những loại giao dịch khác được một Program hỗ trợ tại đây. - Webhook URL: Thêm endpoint sẽ nhận thông báo (ví dụ: bot Discord, trang web, v.v.)
- Header xác thực: Nhập header xác thực để chuyển các yêu cầu POST đến webhook của bạn. Lưu ý rằng mục này không bắt buộc.
- Địa chỉ tài khoản: Thêm địa chỉ Token Metadata Program tại đây:
metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s. Trong các trường hợp khác, bạn có thể thêm nhiều địa chỉ tài khoản nếu cần. Nếu muốn nhận thông tin từ một người dùng cụ thể trong giao dịch, bạn có thể thêm địa chỉ của họ.
Sau khi xác nhận, webhook đã sẵn sàng sử dụng và bạn có thể xây dựng frontend phù hợp dựa trên Webhook URL. Ở đây, chúng ta chọn Discord làm Loại webhook và cung cấp Webhook URL của một bot Discord, vì vậy không cần viết mã cho bot Discord. Chúng ta sẽ nhận được thông báo như sau:
Truy xuất metadata của token
Bạn có thể dùng ID token (địa chỉ mint của token) để lấy metadata của một token cụ thể. Hãy phân tích thông báo JSON được gửi qua webhook Enhanced (khi loại webhook được đặt thành Enhanced). Địa chỉ mint nằm trong trường "mint" của đối tượng đầu tiên trong mảng transferTokens. Sau khi có ID token, bạn có thể dùng phương thức getAsset do DAS API cung cấp để truy xuất thêm thông tin về token.
Ví dụ, bạn có thể dùng phương thức getAsset để lấy thông tin về Jito Staked SOL (JitoSOL):
const url = `https://mainnet.helius-rpc.com/?api-key=<api_key>`
const getAsset = async () => {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 'my-id',
method: 'getAsset',
params: {
id: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
displayOptions: {
showFungible: true //return details about a fungible token
}
},
}),
});
const { result } = await response.json();
console.log("Asset: ", result);
};
getAsset();Bạn có thể tìm thêm các ví dụ về DAS API và schema đầy đủ cho yêu cầu cũng như phản hồi của phương thức này trong tài liệu của chúng tôi.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách token được tạo trên Solana, token SPL là gì, cũng như cách theo dõi token mới bằng cách thiết lập webhook và truy xuất metadata của chúng qua Helius. Nếu cần trợ giúp hoặc hỗ trợ, đừng ngần ngại liên hệ với chúng tôi trên Discord!
Hãy nhập địa chỉ email của bạn bên dưới để không bỏ lỡ bất kỳ thông tin cập nhật nào về những điểm mới trên Solana. Bạn đã sẵn sàng tìm hiểu sâu hơn chưa? Hãy khám phá các bài viết mới nhất trên blog Helius và tiếp tục hành trình Solana ngay hôm nay.
Tài nguyên
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


