Tất cả bài viết
Hướng dẫn

Cài đặt trượt giá trên Solana: chọn con số nào

Đặt trượt giá quá chặt thì lệnh swap bị hủy, quá rộng thì bot sandwich ăn phần chênh. Cách chọn con số theo độ sâu pool, theo route và theo số ví chạy.

13 phút đọc J Tools Editorial
Minh họa biên tập về mức chấp nhận trượt giá khi swap token trên Solana, đặt trần hẹp cạnh trần rộng

Mỗi lệnh swap trên Solana đều có một con số bạn phải tự chọn: mức trượt giá. Đặt trượt giá quá chặt thì giao dịch bị hủy ngay trên chuỗi, bạn mất phí mạng mà không nhận được token nào. Đặt quá rộng thì con bot đang canh pool sẽ ăn phần chênh đó.

Câu “0,5% dùng được cho mọi thứ” mà ai cũng chép lại từ Discord là lựa chọn lười ngay khi bạn rời cặp SOL/USDC. Mức trượt giá đúng đến từ ba thứ: lệnh của bạn chiếm bao nhiêu phần của pool, token đó biến động ra sao gần đây, và pool đang chịu bao nhiêu áp lực từ bot.

Bài này giải thích trượt giá thật sự là gì, con số nào hợp với loại token nào, và vì sao một mức trần duy nhất hiếm khi cứu được hết các ví trong công cụ swap nhiều ví cùng lúc.

Trượt giá là gì và khác price impact ở đâu

Trượt giá là khoảng co giãn về giá mà bạn cho phép trước khi lệnh swap tự hủy. Giống như bạn nói trước: “Tôi mua ổ bánh mì giá 3 đô, nhưng nếu vượt 3 đô 30 xu thì hủy lệnh.” Đặt chặt là siết điều kiện giá, đặt rộng là tăng khả năng khớp nhưng chịu rủi ro khớp ở giá tệ hơn.

Dù swap trên Jupiter, Raydium, Orca hay Meteora, mức trần này đều hiện dưới dạng phần trăm trên giao diện. Nếu số token bạn nhận về rơi xuống dưới ngưỡng tối thiểu đó thì cả lệnh bị hủy. Tài liệu về giao dịch của Solana ghi rõ cả hai vế: một giao dịch thành công hoặc revert nguyên khối, và phí bị trừ trong cả hai trường hợp.

Nhiều người gộp trượt giá với price impact, nhưng hai khái niệm này trả lời hai câu hỏi khác nhau. Price impact là thứ chính lệnh của bạn gây ra cho pool, và tính được trước khi ký. Trượt giá là vùng đệm cho mọi thứ nằm ngoài tầm kiểm soát, giữa lúc thấy báo giá và lúc lệnh lên chuỗi.

Công thức nhẩm: trượt giá bằng price impact cộng thêm một khoảng đệm nhỏ. Khoảng đệm đó thay đổi theo nơi bạn giao dịch. Cặp SOL/USDC sâu chỉ cần 0,1% đến 0,2%, còn memecoin vừa ra lò có thể cần 2% đến 5%.

Việc kiểm tra mức trần trượt giá chạy trên chuỗi, không phải trong giao diện ví. Bất cứ thứ gì làm giá dịch chuyển giữa giây bạn nhìn thấy báo giá và giây lệnh khớp đều tính vào hạn mức bạn đặt.

Quá chặt thì hủy lệnh, quá rộng thì nuôi bot

Giả sử bạn đặt 0,1% cho một token đang chạy nhanh. Trong nửa giây giữa báo giá và lúc khớp, giá trôi 0,12%. Ngưỡng tối thiểu của bạn bị phá và lệnh bị hủy. Cái đắt nhất là nhịp bị lỡ, còn khoản phí chỉ là phần nhỏ.

Nếu hai phút sau giá chạy thêm 8%, quãng thời gian ngồi chỉnh con số cho đúng chính là cú vào lệnh đã mất. Đặt quá rộng cũng đắt không kém.

Mở trượt giá lên 5% rồi gửi một lệnh mua 50 SOL, con bot canh pool sẽ đọc lệnh của bạn trước. Nó mua chen lên trước để đẩy giá, cho lệnh của bạn khớp ở mức giá đã bị đẩy, rồi bán ngay và bỏ túi phần chênh. Trên chuỗi, giao dịch vẫn hiện là thành công, vì giá chưa bao giờ vượt trần bạn đặt.

Bot sandwich săn đúng những lệnh lớn có trượt giá rộng. Gửi một lệnh to trên cặp sâu như SOL/USDC với trần 5% là tự thông báo rằng có tiền chờ sẵn ở đây. Trên pool sâu, giữ trần thật chặt. Và đừng bao giờ kéo lên 50%: con số đó nghĩa là khớp ở bất kỳ giá nào, và nó không bao giờ là đáp án đúng trong tình huống thực tế nào.

Độ sâu pool quyết định con số

Chất lỏng màu hổ phách chảy êm qua cái phễu miệng rộng bên trái và tràn ra khỏi cái phễu miệng hẹp bên phải, đối chiếu thanh khoản sâu với thanh khoản mỏng

Đừng nghĩ về trượt giá theo kiểu “tôi chịu lỗ được bao nhiêu”. Câu hỏi thật là “lệnh của chính mình sẽ đẩy giá trên pool này lên bao nhiêu?” Nếu lệnh mua bằng 1% số tiền đang nằm trong pool, price impact sẽ nhỏ và trần có thể giữ chặt.

Nếu bạn lấy 10% pool, đường cong giá sẽ tự đẩy lên ít nhất 10% chỉ vì lệnh của bạn. Trần phải phủ được phần đó, nếu không lệnh revert.

Trước một lệnh lớn, xem độ sâu và cách phân bổ holder vẫn hơn đoán con số theo cảm giác. Công cụ snapshot holder token cho thấy lượng token đang nằm ở đâu, còn công cụ thêm và rút thanh khoản đọc độ sâu pool ngay tại thời điểm hiện tại. Nếu khái niệm độ sâu còn lạ, hãy xem bài cách đọc độ sâu pool thanh khoản Solana trước.

Mức trượt giá theo từng tình huống

Các con số dưới đây là ý kiến từ thực chiến, không phải luật của giao thức. Luôn đọc kèm price impact hiện trực tiếp trên màn hình.

Tình huốngMức gợi ýVì sao
Stablecoin sang stablecoin (USDC và USDT)0,1% đến 0,3%Pool rất sâu, gần như không biến động
SOL/USDC, lệnh nhỏ tới trung bình0,5% đến 1%Pool sâu, nhưng áp lực sandwich là có thật
SOL với token cỡ vừa, ví dụ JTO1% đến 2%Thanh khoản tạm ổn, giá vẫn chạy
SOL với memecoin đã có chỗ đứng, như BONK, WIF2% đến 5%Biến động cao, độ sâu trung bình
SOL với memecoin vừa rời Pump.fun5% đến 15%Pool rất mỏng, giá giật mạnh theo từng phút

Nếu vào lệnh bằng một ví, công cụ swap một ví mở sẵn ô trượt giá để bạn gõ tay thay vì để Auto chọn. Nếu đường đi có một chặng wSOL, công cụ bọc SOL thành wSOL xử lý bước bọc trước, để chỉ còn một lần kiểm tra trượt giá thay vì hai.

Route quyết định nhiều hơn chính token

Cùng một token có thể cần tới ba con số khác nhau, tùy vào nơi lệnh thật sự khớp. Mỗi route định giá bằng một cơ chế khác nhau, nên mức hợp lý ở chỗ này thành liều lĩnh ở chỗ kia.

RouteGiá được đặt ra saoMức khởi điểmTác động ước chừng của lệnh mua 5 SOL
Pool AMM như RaydiumTỷ lệ giữa hai phía dự trữ (x nhân y bằng k)Pool sâu 0,5% đến 1%, pool mỏng 3% đến 8%Khoảng 1% nếu phía SOL giữ chừng 500 SOL, khoảng 8% nếu chỉ chừng 60 SOL
Router JupiterChia nhỏ lệnh ra nhiều pool0,3% đến 1% cho phần lớn lệnh cỡ vừaChia sang ba pool, tổng tác động có thể rơi về khoảng 0,5%
Bonding curve của Pump.funMỗi lệnh mua đẩy giá kế tiếp lên cao hơn5% đến 15%Trên curve mới, 5 SOL có thể đẩy chừng 8% đến 12%

Hãy theo một ví dụ từ đầu đến cuối. Bạn mua cùng một token bằng 5 SOL. Qua pool Raydium sâu, giá khớp bám sát báo giá nên 1% là thoải mái. Qua Jupiter, lệnh bị chia nhỏ, impact hiển thị giảm xuống và 0,5% vẫn khớp. Nhưng nếu route đổi vào giây chót thì ước tính lệch, nên đừng đặt trượt giá về 0.

Còn với một coin vẫn đang chạy trên bonding curve, chính 5 SOL đó tự đẩy giá lên. Đặt chặt hơn mức tác động của bản thân đường cong thì phần lớn chỉ dẫn tới revert, chưa kể các lệnh mua vào trước bạn trong cùng một block đã leo đường cong sẵn rồi.

Khi coin tốt nghiệp, nó chuyển sang một pool bình thường. Đoạn bàn giao đó được kể trong bài coin tốt nghiệp giao dịch trên PumpSwap. Khác biệt giữa các route thì nằm trong bài so sánh Jupiter, Raydium và Orca.

Chế độ Auto và cái bẫy 0,5% dùng được mọi lúc

Chế độ Auto của Jupiter đọc biến động gần đây rồi tự chọn mức trượt giá. Trên pool sâu và các cặp stablecoin, con số nó đưa ra thường hợp lý. Vấn đề nằm ở memecoin vừa chuyển sang pool thường: Auto hay nhảy lên vùng 5% đến 15% trong khi price impact thật của lệnh chỉ 2%.

Một mức trần rộng như vậy biến bạn thành mục tiêu sandwich hấp dẫn về mặt số học. Auto không biết hai thứ: quy mô lệnh của bạn và mật độ bot trên đúng pool đó. Cách bot rình token mới nằm trong bài sniper bot hoạt động ra sao.

Câu “0,5% dùng được mọi lúc” cũng sai ở phần lớn trường hợp. Nó chỉ đúng với một lệnh SOL/USDC cỡ trung bình, pool sâu, route có chống MEV. Ra ngoài phạm vi đó thì nó hỏng gần như mọi nơi.

Trên memecoin, 0,5% làm lệnh revert. Trên một lệnh mua 100K USDC, riêng price impact của lệnh đã có thể vượt 0,5%. Trên một đợt chạy nhiều ví, nó làm nửa số ví phía sau revert.

Trước mỗi lệnh, hãy tự hỏi ba câu: tôi lấy bao nhiêu phần của pool, pool này chịu bao nhiêu áp lực bot, và tôi đang chạy bao nhiêu ví. Mức trượt giá đúng nằm trong ba câu trả lời đó.

Nhiều ví, một mức trần

Một hàng hình ví xếp nối nhau, vài cái đầu sáng rõ và những cái sau mờ dần, nằm dưới một đường cong giá đi lên từ trái sang phải

Hình dung một đợt mở bán với 200 ví cùng nhắm vào một token. Bộ điều phối swap nhiều ví nhận đúng một mức trần rồi áp cho mọi ví trong lượt chạy. Cái bẫy là pool dịch chuyển giữa ví số một và ví số hai trăm.

Đặt đủ chặt để ví số một khớp đẹp thì ví số hai trăm revert. Đặt đủ rộng để cứu ví số hai trăm thì bạn tặng luôn cơ hội sandwich cho con bot đang chờ ở ví số một.

Hai cách làm thực tế: thiết kế mức trần theo cái ví tệ nhất ở cuối lượt và chấp nhận vài ví đầu trả đắt hơn một chút, hoặc chia lượt chạy thành hai ba đợt rồi đặt lại trần theo trạng thái pool thời gian thực ở mỗi đợt.

Nếu phải mua cùng một token từ nhiều ví trong cùng một block, công cụ gộp lệnh thành bundle đóng gói toàn bộ lệnh vào một bundle duy nhất, thu hẹp khe thời gian mà bot front-run có thể dùng.

Lỗi slippage tolerance exceeded nghĩa là gì

Khi Phantom báo “slippage tolerance exceeded”, nghĩa là giá đã vượt qua ngưỡng tối thiểu bạn đặt trong quãng giữa báo giá và lúc lệnh khớp. Lệnh swap làm đúng điều bạn bảo nó làm: hủy để bảo vệ bạn khỏi một mức khớp tệ hơn. Đó là lớp bảo vệ đang làm việc, không phải lỗi.

Ba nguyên nhân hay gặp nhất:

  1. Pool mỏng hoặc chạy nhanh. Token mới mở thường dịch vài phần trăm mỗi block. Một mức trần kiểu stablecoin không theo kịp, nên ngưỡng tối thiểu bị phá trước khi giao dịch xong.
  2. Báo giá cũ. Ngồi lại ở màn hình xác nhận vài giây là pool đã đi tiếp mà không chờ bạn. Làm mới báo giá rồi ký ngay.
  3. Không đủ SOL trả phí. Đây là một kiểu hỏng khác nhưng rất dễ nhầm. Nếu ví không gánh nổi phí mạng cộng phí nền tảng, giao dịch hỏng ngay ở bước mô phỏng, và ví có thể hiện ra một cảnh báo chung chung thay vì thông báo về trượt giá.

Cách sửa hiếm khi là kéo lên 50%. Nâng trần lên từng nấc cho khớp với pool, làm mới báo giá, và với những cú vào lệnh bắt buộc xong trong một block thì dùng cách thực thi nguyên tử để thu hẹp khoảng giữa báo giá và lúc khớp. Tham số trượt giá được mô tả trong tài liệu dành cho nhà phát triển của Jupiter.

Câu hỏi thường gặp về trượt giá

Nên đặt 1% hay 5%?

Câu trả lời tùy vào pool, không có quy tắc chung. Trên cặp sâu, giao dịch nhiều, 0,5% đến 1% vừa khớp vừa chặn được giá xấu. Trên token mới, pool mỏng hoặc còn trên bonding curve, 1% cứ revert liên tục và vùng thực tế là 3% đến 5%. Nếu một lệnh chỉ đi được khi vượt 5%, pool đang rất mỏng, hãy thu nhỏ lệnh thay vì nới trần.

Chế độ Auto có an toàn không?

Với các lệnh thông thường trên pool sâu, Auto thường chọn một mức hợp lý. Rủi ro nằm ở token biến động mạnh hoặc pool mỏng, nơi Auto mở trần rộng hơn hẳn price impact thật của lệnh và biến bạn thành mồi sandwich dễ ăn. Khi mua token mới hoặc vào lệnh lớn, hãy tự gõ con số.

Chạy nhiều ví thì đặt mức trần thế nào?

Một mức trần áp cho mọi ví, nhưng giá trôi dần khi các ví khớp lần lượt, nên ví cuối cùng nhìn thấy mức giá tệ nhất. Hãy tính trần theo cái ví cuối đó, hoặc chia lượt chạy thành hai ba đợt và đặt lại trần theo trạng thái pool thời gian thực ở mỗi đợt. Gộp các lệnh mua vào một bundle sẽ thu hẹp thêm phần trôi này.

Trượt giá khác price impact ở điểm nào?

Price impact là mức dịch chuyển giá mà chính lệnh của bạn gây ra trên pool, tính được trước khi ký. Trượt giá là vùng đệm cho phần giá dịch chuyển do người khác và do biến động gây ra giữa báo giá và lúc khớp. Vì thế trượt giá luôn phải nằm cao hơn price impact một chút. Nếu màn hình báo impact 2% mà bạn đặt trần 0,5%, lệnh revert trước cả khi chạm tới lớp bot.

Vì sao lệnh swap cứ revert mãi?

Phần lớn rơi vào một trong ba: pool mỏng hoặc nhanh tới mức dịch vài phần trăm mỗi block, báo giá cũ vì ngồi lâu ở màn hình xác nhận, hoặc không còn đủ SOL trả phí. Trường hợp cuối chẳng liên quan gì tới trượt giá, nhưng ví có thể hiện một cảnh báo trông rất giống. Nâng trần một nấc, làm mới báo giá, rồi thử lại.

Đặt trượt giá quá cao thì chuyện gì xảy ra?

Lệnh vẫn thành công, nhưng giá khớp tệ đi. Một mức trần rộng là lời nhắn cho bot biết nó được phép đẩy giá tới đâu. Riêng 50% nghĩa là khớp ở bất kỳ giá nào, và chẳng tình huống nào cần tới mức đó. Ngay cả memecoin vừa ra lò cũng không cần khoảng rộng tới mức ấy.

Mỗi lệnh một con số

Trượt giá không có một con số đúng duy nhất. Nó là quyết định được tính lại cho từng lệnh. Ngày bạn dán chặt mình vào một giá trị mặc định là ngày bạn bắt đầu hoặc lỡ lệnh vì revert, hoặc làm mồi cho bot.

Trước khi ký còn một con số nữa phải chọn, và bài priority fee Solana nên trả bao nhiêu nói về đúng con số đó. Muốn lọc token lừa đảo ra trước khi bàn tới mức trần, hãy xem tám bước kiểm tra token Solana.

J
Tác giả
J Tools Editorial

Bài viết từ đội ngũ J tools.

Xem tất cả bài viết của J Tools Editorial →

Bài viết liên quan