Quay số trúng thưởng livestream minh bạch, kiểm chứng được

Chọn người trúng thưởng từ danh sách hoặc dãy số bằng cơ chế cam kết: công bố mã băm seed trước, quay với salt công khai, ai cũng kiểm tra lại được.

Công cụ miễn phí: 20 request mỗi phút.

Kết quả

Bấm “Chạy” để xem kết quả.

Quay số mà người xem kiểm tra lại được, dùng cho minigame livestream, tặng quà theo bình luận, bốc thăm may mắn. 1) action=commit tạo seed bí mật (hoặc dùng seed của bạn) và trả commitment là SHA-256 của seed: công bố commitment trước sự kiện và chốt danh sách tham gia. 2) action=draw với seed, danh sách (mỗi dòng một người, hoặc [{"name","weight"}]) hoặc dãy số min / max, và một salt công khai chọn lúc quay (số bình luận, kết quả xổ số…) trả về người trúng và người dự phòng. 3) Công bố seed: action=verify cho bất kỳ ai tính lại kết quả và đối chiếu SHA-256(seed) với commitment.

Người trúng được chọn bằng HMAC-SHA256 với khóa là seed trên salt và mã băm của danh sách, lấy mẫu loại bỏ (không lệch do chia lấy dư) và xáo trộn Fisher-Yates một phần, nên không ai đổi được kết quả sau khi đã công bố commitment và người tổ chức không điều khiển được khi salt đã công khai. Tên trùng mặc định bị loại (unique_entries=false để giữ, tính thêm lượt), trọng số cho cơ hội theo tỷ lệ, reserve để quay thêm người dự phòng.

Thuật toán đầy đủ được trả kèm mỗi lần quay để có thể tự viết lại và kiểm tra độc lập. Chương trình khuyến mại có giải thưởng tại Việt Nam vẫn phải tuân thủ quy định về khuyến mại (đăng ký / thông báo): API chỉ là công cụ quay số.

Dùng trong code của bạn

curl -X POST "https://apibox.io.vn/v1/random-draw/draw" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"seed":"a3f1c9e07b5d2486a3f1c9e07b5d2486","entries":"Nguyễn An\nTrần Bình\nLê Chi\nPhạm Dũng\nHoàng Em","salt":"1532","winners":2,"reserve":1}'

Tài liệu API → Nhận API key miễn phí

Hỏi đáp

Vì sao kết quả minh bạch?

Seed đã được cố định bằng commitment công bố trước khi chốt danh sách, còn salt công khai chỉ biết lúc quay, nên không bên nào chọn được kết quả; ai cũng tính lại được từ seed đã công bố.

Seed có được lưu trên máy chủ không?

Không. API không lưu trạng thái: hãy giữ bí mật seed đến lúc quay rồi công bố. Không có seed thì commitment không tiết lộ gì.

Có cho một người nhiều lượt được không?

Có: gửi danh sách dạng [{"name":"An","weight":3}], hoặc đặt unique_entries=false để dòng trùng được tính nhiều vé.