Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Mọi tài sản có thể giao dịch trên Solana — bao gồm cả tài sản cơ sở và tài sản định giá của mỗi pool Raydium — đều là token được mint bởi một trong hai chương trình: chương trình SPL Token cũ hoặc chương trình thế hệ tiếp theo của nó, Token-2022. Chúng là các chương trình riêng biệt ở các địa chỉ riêng biệt, với bố cục tài khoản khác nhau và ngữ nghĩa tiện ích khác nhau. Raydium hỗ trợ cả hai, nhưng không ở mọi nơi: CPMM, CLMM và Farm v6 chấp nhận mint Token-2022; AMM v4 thì không. Hiểu rõ sự khác biệt này là điều cần thiết trước khi tích hợp với bất kỳ pool nào.

Hai chương trình

Cả hai được duy trì bởi đội ngũ Solana Labs (hiện tại là Anza) và nằm trong kho solana-program-library.

Tại sao lại có hai chương trình?

SPL Token đã bị đóng lại để đảm bảo tương thích tiến - mã bytecode của nó thực tế là bất biến, tạo ra một nền tảng sạch sẽ cho toàn bộ hệ sinh thái. Khi các trường hợp sử dụng phát triển (stablecoins muốn phí chuyển, mints tổ chức cần quyền freeze có chi tiết, NFT cần con trỏ metadata), đội ngũ Solana đã giới thiệu Token-2022 như một chương trình riêng biệt, có thể mở rộng thay vì nâng cấp SPL Token. Điều này bảo vệ các tích hợp hiện có và cho phép mỗi mint chọn đúng các tiện ích mà nó cần. Token-2022 là một tập hợp con hoàn toàn trong chức năng, không phải trong không gian địa chỉ: hai chương trình tồn tại song song, và một mint tại một địa chỉ nhất định chỉ thuộc về một trong hai.

Cấu trúc tài khoản

Mint account

Xác định bản sắc của token. SPL Token mint (82 bytes):
Token-2022 mint: cùng bố cục cơ sở, cộng với không hoặc nhiều bản ghi extension TLV (type-length-value) được thêm vào sau phần cơ sở.

Token account

Lưu giữ số dư của một mint cụ thể cho một chủ sở hữu cụ thể. SPL Token account (165 bytes):
Token-2022 account: cùng cơ sở, cộng với các bản ghi extension TLV nếu có bất kỳ tiện ích nào hoạt động.

Tiện ích Token-2022

Tiện ích là các tính năng mô-đun có thể được đính kèm vào mint hoặc tài khoản. Mỗi tiện ích là một bản ghi TLV riêng. Những tiện ích chính cho Raydium:

Transfer fee

Mint có thể tính phí theo tỷ lệ phần trăm cho mỗi lần chuyển. Phí sẽ đi đến một quyền thẩm quyền rút tiền đã được cấu hình. Được hỗ trợ bởi Raydium CPMM và CLMM thông qua SwapV2 — chương trình tính đến phí khi tính toán tỷ giá, do đó toán học pool vẫn nhất quán.

Transfer hook

Mint trỏ đến một chương trình mà runtime gọi trên mỗi lần chuyển. Chương trình hook có thể từ chối lần chuyển hoặc thực hiện các tác dụng phụ (cập nhật trạng thái tuân thủ, ghi nhật ký, v.v.). Raydium CPMM/CLMM gọi hook thông qua SwapV2 — giao dịch bao gồm chương trình hook và bất kỳ tài khoản bổ sung nào mà nó cần.

Interest-bearing

Số dư trên chuỗi tích lũy lãi suất với tỷ lệ được cấu hình. Chỉ hiển thị (số dư xuất hiện cao hơn theo thời gian) thay vì mint thực tế; nguồn cung bên dưới không thay đổi.

Mint close authority

Cho phép mint bị đóng lại khi nguồn cung đạt tới không.

Permanent delegate

Một ví được chỉ định có thể chuyển hoặc đốt token từ bất kỳ tài khoản nào một cách vô điều kiện. Raydium chặn việc tạo pool cho mint với tiện ích này — nó không tương thích với bất biến rằng dự trữ pool không thể bị chiếm đoạt.

Non-transferable

Token không thể được di chuyển từ tài khoản mà chúng được mint vào. Raydium chặn việc tạo pool — một tài sản không thể giao dịch không thể là tài sản cơ sở hoặc định giá của pool LP.

Default account state

Các tài khoản token mới cho mint này bị đóng lại theo mặc định và phải được mở khóa bởi quyền freeze. Có thể sử dụng nhưng hiếm.

Confidential transfer

Số dư và số tiền chuyển được mã hóa. Raydium không hỗ trợ mint chuyển bảo mật (toán học pool yêu cầu số dư rõ ràng).

Metadata pointer + token metadata

Thay thế metadata Metaplex cho mint Token-2022. Được hỗ trợ cho danh sách pool Raydium.

Group / Member pointer

Khai báo mint như là một phần của một nhóm (ví dụ: một bộ sưu tập NFT). Thông tin; Raydium sử dụng điều này để hiển thị. Xem trang tiện ích Token-2022 chính thức để xem danh sách đầy đủ.

Sản phẩm Raydium nào hỗ trợ cái gì

Khả năng đủ điều kiện mint cho pool Raydium — tất cả tiện ích được phép trừ khi được liệt kê:
  • Bị chặn: non-transferable, permanent delegate, confidential transfer, default account state (trong cấu hình bị từ chối).
  • Được phép với cảnh báo (LP phải chấp nhận rủi ro): transfer fee, transfer hook, freeze authority hoạt động.
  • Được phép đầy đủ: interest-bearing, metadata pointer, group pointer, mint close authority.
Phản hồi getPoolInfoFromRpc bao gồm các cờ tiện ích của mint — máy khách nên kiểm tra trước khi tạo LP.

Tiêu chuẩn tài khoản token

Associated Token Account (ATA)

Cả hai chương trình chia sẻ quy ước Associated Token Account: một PDA được dẫn xuất từ [owner, programId, mint] thông qua Associated Token Program (ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL). Gần như mọi tài khoản token người dùng trên Solana là một ATA.
Chương trình ATA tạo các tài khoản sở hữu bởi chương trình token thích hợp dựa trên chương trình nào sở hữu mint.

Token account không phải ATA

Một ví có thể có nhiều tài khoản token cho một mint duy nhất; ATA chỉ là quy ước. Ví dụ, vault pool không phải là ATA — chúng là PDA của chương trình pool, giữ dự trữ của pool.

Phát hiện mint thuộc chương trình nào

Mỗi tài khoản mint có một trường owner trỏ đến SPL Token hoặc Token-2022:
Raydium SDK xử lý phát hiện này tự động — getPoolInfoFromRpc trả về programId thích hợp cho mỗi token để máy khách có thể xây dựng ATA chính xác.

Swap instruction theo chương trình

Mỗi CPMM và CLMM của Raydium có hai swap instruction: SwapV2 cần các tài khoản bổ sung: mint account cho cả hai bên, chương trình token cho mỗi bên (vì chúng có thể khác nhau), và — đối với mint chứa transfer hook — chương trình hook và các tài khoản bắt buộc của nó. Máy khách nên luôn sử dụng SwapV2 khi ít nhất một bên là Token-2022; SwapV2 cũng hoạt động cho pool chỉ SPL, nhưng Swap cũ sẽ rẻ hơn về compute. SDK chọn biến thể chính xác tự động.

Di chuyển dự án SPL Token sang Token-2022

Token-2022 không phải là thay thế trực tiếp ở cấp độ mint — một mint tại địa chỉ X hoặc là SPL hoặc Token-2022, và điều đó được xác định ở thời điểm tạo. Để “di chuyển” bạn phải:
  1. Tạo một mint mới dưới Token-2022 với các tiện ích bạn muốn.
  2. Cung cấp cơ chế swap/wrap cho những người giữ mint SPL cũ để trao đổi lấy cái mới.
  3. Cập nhật tất cả các pool LP, farm và tích hợp để tham chiếu đến mint mới.
Điều này rất nặng nề. Hầu hết các dự án được khởi chạy dưới SPL vẫn ở dưới SPL trừ khi một nhu cầu tiện ích cụ thể buộc phải di chuyển.

Ví dụ thực tế: tạo mint Token-2022 với transfer fee

Mint này có thể được LP vào pool CPMM của Raydium; những người swap sẽ phải trả phí chuyển 0,5% trên top phí swap của pool.

Các xem xét bảo mật

Trước khi tạo LP hoặc swap qua mint Token-2022:
  • Kiểm tra freeze_authority. Nếu không null và được giữ bởi một bên tập trung, họ có thể đóng lại ATA của bạn (và có thể là vault pool).
  • Kiểm tra transfer_hook. Chương trình hook có thể chặn các lần chuyển một cách tùy ý — DYOR trên nguồn của hook.
  • Kiểm tra transfer_fee. Tính đến phí trong kết quả swap dự kiến.
  • Kiểm tra permanent_delegatenon_transferable. Chương trình Raydium từ chối những cái này, nhưng xác minh nếu xây dựng tích hợp tùy chỉnh.
Xem security/oracle-and-token-risks để tìm khung công việc chấp nhận rủi ro đầy đủ.

Con trỏ

Nguồn: