Chuyển đến nội dung chính
Hướng dẫn AI

FastMint FCFS: Thực hiện mint BSC đúng thời điểm với Binance Agentic Wallet

Tìm hiểu cách cài đặt và sử dụng fastmint-fcfs, một kỹ năng dành cho tác nhân AI có khả năng phát hiện thời điểm mở bán thông qua đồng hồ được đồng bộ hóa, trạng thái blockchain và mô phỏng RPC, sau đó xem trước và thực hiện một giao dịch Binance Agentic Wallet với các bước kiểm tra an toàn.

FastMint FCFS: Mint BSC đúng thời điểm với Binance Agentic Wallet

fastmint-fcfs hoạt động như thế nào

fastmint-fcfs là một skill dành cho các tác nhân AI như Claude Code, Codex, Cursor và OpenClaw. Công cụ này giúp thực hiện một giao dịch mint, claim hoặc mua duy nhất trên BNB Smart Chain ngay khi đợt bán mở.

Công cụ sử dụng CLI Binance Agentic Wallet baw. Máy của bạn chuẩn bị calldata và chọn thời điểm gửi yêu cầu, còn việc ký giao dịch diễn ra ở backend của Binance thông qua Developer Mode. Private key, seed phrase hoặc session token không được lưu trên máy.

Vì quy trình ví của Binance yêu cầu contract-call preview theo sau bởi contract-call execute, fastmint-fcfs tối ưu thời điểm thực hiện các bước này. Công cụ sử dụng nhiều trigger độc lập thay vì chờ một tín hiệu duy nhất:

  • Clock trigger: kích hoạt vào thời điểm bán bằng đồng hồ đã hiệu chỉnh theo NTP.
  • Head trigger: theo dõi block BSC đầu tiên có timestamp đạt thời điểm mở bán.
  • Simulation trigger: gửi đua các yêu cầu eth_call qua những RPC khả dụng nhanh nhất.

Bản preview thành công đầu tiên sẽ được thực thi đúng một lần. Các bản preview khác vẫn đang chạy sẽ bị bỏ qua.

Chỉ sử dụng công cụ này sau khi người dùng chỉ thị rõ ràng cho một lượt mint cụ thể. Chỉ có URL không được xem là ủy quyền gửi giao dịch.

Điều kiện tiên quyết và cài đặt

Cài đặt phần mềm cần thiết

Sử dụng Node.js 20 trở lên. Repository đã tích hợp ethers 6.13, nên bản thân dự án không yêu cầu npm install. Cài đặt CLI Binance Agentic Wallet trên toàn hệ thống:

npm install -g @binance/agentic-wallet@1.12.0

Trong Binance App, bật Agentic Wallet và Developer Mode. Đảm bảo số dư ví vẫn thấp hơn giới hạn của Developer Mode. Binance wallet skill tùy chọn có thể cung cấp thêm hỗ trợ cho các thao tác ví.

Đặt skill ở nơi tác nhân có thể đọc

Giải nén repository và sao chép thư mục fastmint-fcfs vào thư mục skill mà tác nhân của bạn sử dụng:

# Claude Code, theo từng dự án
mkdir -p .claude/skills
cp -r fastmint-fcfs .claude/skills/

# Claude Code, trên toàn hệ thống
mkdir -p ~/.claude/skills
cp -r fastmint-fcfs ~/.claude/skills/

# Codex, Cursor hoặc các công cụ tương thích với .agents khác
mkdir -p .agents/skills
cp -r fastmint-fcfs .agents/skills/

chmod +x fastmint-fcfs/fastmint.sh

Đăng nhập ví

Đăng nhập một lần từ terminal:

baw auth signin --json

Mở urlForWeb được trả về, đối chiếu pairingCode hiển thị trong Binance App và phê duyệt kết nối. Sau đó xác minh phiên:

baw auth verify --qrCodeId <qrCodeId> --json
baw wallet status --json

Trạng thái ví phải là CONNECTED. Phiên có thời hạn tối đa 48 giờ không hoạt động. Nếu phiên hết hạn, tác nhân phải dừng và yêu cầu bạn đăng nhập lại thay vì tự động thử xác thực.

Kiểm tra môi trường

Chuyển vào thư mục dự án và chạy benchmark chỉ đọc:

cd fastmint-fcfs
./fastmint.sh bench

Benchmark kiểm tra thứ hạng RPC, độ trễ WebSocket, độ lệch đồng hồ NTP, kết nối ví, Developer Mode, số dư BNB, Agent ID và thời điểm preview. Đây là bước chẩn đoán ban đầu hữu ích trước khi lên lịch mint.

Nếu Node không thể xác thực chuỗi chứng chỉ trên macOS, dự án có thể tạo CA bundle từ system keychain:

./fastmint.sh bench --ca

Trong các môi trường khác, đặt NODE_EXTRA_CA_CERTS thành tệp CA phù hợp.

Cấu hình các endpoint RPC tùy chọn

Launcher tự động nạp tệp .env trong thư mục skill. Bạn có thể thêm các endpoint HTTP và WebSocket cao cấp:

FASTMINT_RPCS_EXTRA=https://<premium-endpoint>
FASTMINT_WS_EXTRA=wss://<premium-endpoint>

Các cài đặt được hỗ trợ khác gồm FASTMINT_RPCS để thay thế toàn bộ RPC pool, FASTMINT_WS để đặt endpoint WebSocket, FASTMINT_TZ cho múi giờ cục bộ và FASTMINT_CA cho bundle chứng chỉ Node. Host của endpoint được che trong log.

Quy trình sử dụng khuyến nghị

Một lần chạy điển hình có bốn giai đoạn: benchmark môi trường, kiểm tra hợp đồng mint, diễn tập preview rồi thực hiện giao dịch thật.

  1. Bench: xác nhận ví và môi trường mạng đã sẵn sàng.
  2. Recon: tìm địa chỉ hợp đồng, ABI, hàm mint, các tham số, thời điểm và những getter liên quan.
  3. Dry-run: gửi preview nhưng dừng trước khi thực thi.
  4. Fire: chạy transaction engine và cho phép một lần thực thi sau khi preview vượt qua mọi kiểm tra.

1. Kiểm tra website mint

Chạy recon trên trang mint:

./fastmint.sh recon https://mint-site

Nếu đã biết địa chỉ hợp đồng, cung cấp trực tiếp:

./fastmint.sh recon https://mint-site --contract 0x...

Recon tải trang cùng JavaScript liên quan hoặc các tài liệu dành cho tác nhân, sau đó tìm kiếm địa chỉ hợp đồng, chain ID, tên hàm, chữ ký ABI và timestamp. Công cụ cũng xác minh bytecode đã triển khai, lấy ABI từ Sourcify khi có thể, đọc các hàm view và in ra các ứng viên mint cùng tham số phỏng đoán, calldata, kết quả mô phỏng và thời điểm bắt đầu khả dĩ.

Sử dụng kết quả để xác minh thời điểm mở bán, giá, nguồn cung miễn phí, giới hạn mỗi ví, yêu cầu Agent ID và các lỗi hợp đồng đã giải mã. Không dựa vào tham số phỏng đoán nếu chưa kiểm tra chúng.

2. Diễn tập preview

Sử dụng fire --dry để thực hiện các bước kiểm tra và xem trước mà không thực thi giao dịch:

./fastmint.sh fire --to 0xSALE --data 0x195ad114 --start 23:00 --dry

Tùy chọn --start chấp nhận giây Unix, thời gian địa phương theo định dạng HH:MM[:SS] hoặc dấu thời gian ISO-8601. Kiểm tra giá trị call được in ra và xác nhận rằng selector cùng các đối số đại diện cho đúng hàm dự kiến.

Để diễn tập một luồng có kiểm tra thời gian, hãy thêm --gateSim. Tùy chọn này ngăn eth_call vốn đã thành công khiến buổi diễn tập thực thi trước thời điểm mở cửa đã cấu hình.

3. Thực hiện một lần mint

Sau khi xem xét bản chạy thử và nhận được phê duyệt rõ ràng, hãy chạy giao dịch ở chế độ nền để agent vẫn phản hồi:

./fastmint.sh fire --to 0xSALE --data 0x195ad114 --start 23:00 --label project_free

Khi bản xem trước trả về mô phỏng thành công, engine sẽ gọi baw contract-call execute một lần. Báo cáo cuối cùng bao gồm mã băm giao dịch, liên kết BscScan, trạng thái receipt, các tài sản đã nhận nếu có, dòng thời gian và đường dẫn nhật ký.

Ví dụ lệnh cơ bản

Sử dụng chữ ký hàm

Thay vì chuẩn bị calldata thô, hãy cung cấp chữ ký hàm:

./fastmint.sh fire \
  --to 0xSALE \
  --sig "claimFreeShare()" \
  --start 23:00

Gửi mint có phí

Mint có phí yêu cầu số tiền cụ thể và mức giới hạn tối đa tương ứng. Ví dụ, hai share với giá 0.005 BNB mỗi share sẽ sử dụng:

./fastmint.sh fire \
  --to 0xSALE \
  --sig "buyWithBnb(uint256,address,uint256)" \
  --args '[2,"0x0000000000000000000000000000000000000000",0]' \
  --value 0.01 \
  --maxValue 0.01 \
  --start 23:00

Mint miễn phí phải sử dụng --value 0. Công cụ từ chối giá trị khác 0 nếu không có giới hạn và từ chối các giá trị vượt quá --maxValue.

Yêu cầu kết quả NFT cụ thể

Sử dụng --expectNft khi chỉ được thực thi nếu bản xem trước cho biết chính xác số NFT dự kiến sẽ được chuyển vào ví:

./fastmint.sh fire \
  --to 0xNFT \
  --data 0xa0712d68...0002 \
  --value 0 \
  --expectNft 2

Đối số động

Các đối số có thể được đánh giá ngay trước mỗi lần xem trước. Điều này hữu ích khi deadline, địa chỉ ví, Agent ID hoặc bộ đếm của hợp đồng thay đổi gần thời điểm mở cửa.

  • $wallet được phân giải thành địa chỉ ví đã kết nối trên BNB Smart Chain.
  • $agentId được phân giải thành token ID của Agent ID, lấy từ handle đã đăng ký của ví.
  • $zero được phân giải thành địa chỉ zero.
  • $now+1800 được phân giải thành thời gian Unix hiện tại cộng thêm 1.800 giây.
  • {"getter":"totalMinted()","add":1} đọc một getter và cộng một vào kết quả số nguyên không dấu.
  • {"getter":"saleStart()","at":"0x..","mul":2} đọc một getter từ hợp đồng khác và nhân kết quả với hai.

Ví dụ, lệnh này làm mới Agent ID và deadline cho mỗi lần xem trước:

./fastmint.sh fire \
  --to 0xSALE \
  --sig "mintFree(uint256,uint256,uint256,uint256,address)" \
  --args '["$agentId","1","0","$now+1800","0x0000000000000000000000000000000000000000"]' \
  --start 21:00

Các lệnh động sử dụng khóa khóa dựa trên đích đến, selector và giá trị, vì vậy việc thay đổi đối số không vô tình cho phép thực hiện lần thứ hai cùng một mint.

Hành vi về thời gian và kích hoạt

Trước và quanh thời điểm mở cửa, engine có thể gửi các bản xem trước từ nhiều trình kích hoạt độc lập. Đợt gửi mặc định kéo dài ba giây, các bản xem trước cách nhau ít nhất 350 mili giây và tối đa ba bản xem trước có thể đang được xử lý đồng thời.

Sau đợt gửi, vòng lặp eth_call tiếp tục kiểm tra mô phỏng thành công cho đến khi hết thời gian chờ, mặc định là 600 giây. Điều này cho phép công cụ xử lý một đợt bán mở muộn hơn thời gian đã thông báo mà không liên tục tiêu tốn giới hạn xem trước.

Các lần revert được giải mã bằng ABI Sourcify của hợp đồng, các lỗi phổ biến tích hợp sẵn và dữ liệu 4byte khi có. Các lỗi như NotStarted, NotOpen và TooEarly được xem là tạm thời. Các lỗi như SoldOut, FreeGone, AlreadyClaimed, NotEligible và WrongValue được xem là lỗi kết thúc. Các lỗi không xác định sẽ chờ qua thời gian ân hạn trước khi trở thành lỗi nghiêm trọng.

Bạn có thể tùy chỉnh việc phân loại bằng các biểu thức chính quy --waitOn và --fatalOn, nhưng chỉ nên làm vậy khi hiểu rõ hành vi lỗi của hợp đồng.

Các cơ chế an toàn cần hiểu

  • Công cụ yêu cầu chỉ dẫn rõ ràng của người dùng cho lần mint cụ thể.
  • Một tệp khóa được ghi trước khi thực thi, ngăn cùng một lệnh được phát sóng lần nữa.
  • Engine không bao giờ tự động đăng nhập, yêu cầu khóa riêng tư hoặc hỏi cụm từ seed.
  • Các khối rủi ro của Binance, cờ rủi ro, thay đổi allowance và thay đổi quyền hạn sẽ dừng quá trình.
  • Ví phải có đủ số dư cho giá trị được yêu cầu và phí gas.
  • Bản xem trước phải có mã mô phỏng 000000000, request ID, dòng tiền gốc ra ngoài ở mức chấp nhận được và không có thay đổi ví bị cấm.
  • PENDING_CONFIRMATION có nghĩa là người dùng phải phê duyệt trong Binance App; không được gửi lại giao dịch.
  • Sau lỗi execute, giao dịch bị revert hoặc thiếu receipt, không được tự động thử lại.

Để kiểm tra các lần chạy trước đó, hãy sử dụng:

./fastmint.sh logs
./fastmint.sh locks

Chỉ xóa khóa sau khi có chỉ dẫn rõ ràng mới của người dùng, không bao giờ chỉ vì giao dịch có vẻ chậm hoặc thất bại.

Khắc phục sự cố

Lỗi Ví và Chế độ Nhà phát triển

Nếu baw wallet status báo UNCONNECTED, hãy đăng nhập lại thủ công. Các mã 351802 và 351804 thường cho biết Developer Mode đã bị tắt, hết hạn hoặc vượt quá hạn mức số dư. Mã 351803 là lệnh chặn rủi ro của Binance và không được phép vượt qua.

Lỗi mô phỏng và hợp đồng

Các phản hồi 351805 lặp lại là bình thường trước khi backend của Binance ghi nhận block mở, nhưng cũng có thể cho biết tham số không chính xác. Phản hồi NotStarted kéo dài có thể có nghĩa là thời gian đã cấu hình không đúng. SoldOut, FreeGone và AlreadyClaimed là các trạng thái kết thúc.

AgentIdRequired hoặc NotEligible có thể có nghĩa là lệnh gọi cần một tham số Agent ID. Các lỗi thanh toán như PaymentLow và WrongValue cho biết số BNB được cung cấp không khớp với yêu cầu của hợp đồng.

Sự cố mạng và chứng chỉ

Nếu RPC chậm hoặc bị giới hạn tốc độ, hãy cấu hình FASTMINT_RPCS hoặc FASTMINT_RPCS_EXTRA. Nếu Node báo UNABLE_TO_GET_ISSUER_CERT_LOCALLY, hãy tạo hoặc cung cấp gói CA như mô tả trong phần cài đặt.

Việc can thiệp DNS cũng có thể gây lỗi chứng chỉ hoặc trả về các miền ISP bất ngờ. Hãy sử dụng DNS mã hóa hoặc VPN nằm ngoài quyền kiểm soát của agent; không tự động thay đổi DNS hệ thống.

Tệp và lệnh hữu ích

Các tệp chính gồm:

  • fastmint.sh khởi chạy các lệnh benchmark, recon, fire, log và lock.
  • fire.js quản lý kiểm tra trước, trigger, xem trước, thực thi và biên lai.
  • recon.js phát hiện thông tin hợp đồng và các ứng viên mint.
  • bench.js kiểm tra ví và môi trường mạng.
  • lib.js cung cấp chạy đua RPC, WebSocket head, hiệu chỉnh NTP, giải mã revert và các tiện ích ví.
  • runs/ lưu nhật ký, dữ liệu xem trước, dữ liệu thực thi, biên lai và tệp khóa.
  • cache/ lưu các ABI Sourcify đã tải xuống.

Mỗi nhật ký chạy bao gồm dấu thời gian cục bộ và độ lệch T+x.xxxs. Dòng cuối cùng là bản tóm tắt TIMELINE.

Kết luận

fastmint-fcfs kết hợp do thám hợp đồng, đồng bộ thời gian, các tín hiệu blockchain song song, xem trước ví Binance và cơ chế bảo vệ thực thi một lần cho các đợt mint BSC nhạy cảm về thời gian. Hãy bắt đầu bằng bench, kiểm tra mục tiêu bằng recon, diễn tập với --dry, và chỉ thực thi sau khi xác nhận calldata, số tiền, trạng thái ví và quyền cho phép của người dùng.

Dự án hiện nhắm đến BNB Smart Chain. Chain ID, nhóm RPC, registry Agent ID và tích hợp explorer của dự án đều dành riêng cho BSC, vì vậy không nên xem đây là công cụ đa chuỗi.