roblox answers a login with a math problem. compute a^(2^t) mod n against a 309 digit modulus. we grind it on our own machines and hand the answer back in under half a second, over one https call. there is no account to make and no sdk to install.
pick a pack, pay with litecoin, get a code. redeem it at /redeem for a new key or to add onto the key you already have.
quantity stacks onto one code. 10 packs is a single code worth 1,000,000 solves.
the code is shown once, right after your payment confirms. save it.
roblox locks logins behind a math problem. before you even see a captcha, their server answers your login request with a challenge: compute a^(2^t) mod n. n is a 309 digit number. t can go up to 160,000,000.
your client has to grind that out and attach the answer, or the login dies right there. doing it on one cpu core takes seconds per solve. if you are checking accounts, that speed is the whole game.
we solve everything up to our difficulty cap, shown live in the readout above. the normal login challenge sits far below it. the occasional giant (t in the hundreds of millions) is rejected instantly and free, because one of those would pin a core for the better part of a minute -- your client falls back to solving those locally, and pays nothing for them here.
POST /login
<- 403 pow challenge: a=..., n=...(309 digits), t=160000000
solve a^(2^t) mod n <- this is the part we do
POST /login (answer attached)
<- 200
[ captcha comes after this, if it even triggers ]
no sdk, no wrapper, no client install. one https call from whatever you already run.
buy a top up, redeem the code for a key, put the key in a header, post the challenge fields. you get the answer and your remaining balance in the same response. 1 credit per successful solve. nothing charged on failure or reject.
python:
import requests
r = requests.post(
"https://proflex.dev/v1/solve",
headers={"X-Api-Key": "pow_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"a": "<the a from the 403 challenge>",
"n": "<the 309 digit n from the challenge>",
"t": 400000,
},
timeout=30,
)
print(r.json()) # {"result": "1234...", "balance": 999999}
luau (from a wrapper with a request function):
local HttpService = game:GetService("HttpService")
local body = HttpService:JSONEncode({
a = challenge.a,
n = challenge.n,
t = challenge.t,
})
local req = request({
Url = "https://proflex.dev/v1/solve",
Method = "POST",
Headers = { ["X-Api-Key"] = KEY, ["Content-Type"] = "application/json" },
Body = body,
})
local res = HttpService:JSONDecode(req.Body)
print(res.result, res.balance)
POST https://proflex.dev/v1/solve
X-Api-Key: pow_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
{"a": "<digit string>", "n": "<digit string>", "t": 400000}
<- 200
{"result": "<the answer>", "balance": 999999}
| code | meaning | what to do |
|---|---|---|
| 400 | bad body, or challenge over the difficulty cap | check the fields, do not retry the same one |
| 401 | bad key | check the key |
| 402 | no credits left, or a day key that expired | buy a top up, redeem it onto the same key at /redeem |
| 503 | servers busy | retry, this is normal under load |
| 504 | worker timeout | retry with backoff |
full docs with more examples (python, javascript, luau): /API.md / ready made python client, drop it straight in: /client.py
pick a pack at the top of this page, pay the litecoin amount it quotes, and a code appears once the payment confirms. take it to /redeem and either leave the key box empty to get a brand new key, or paste your existing key to add the top up onto it. the key is shown once, so write it down.
the code is released after 1 confirmation, usually a couple of minutes on litecoin. the checkout page shows the transaction and counts the confirmation as it lands. leave it open.
no. codes are delivered instantly and a code is worth exactly what it says, so once it is issued it is yours whether you redeem it or not. the one thing we do fix is a failed delivery: if you paid and no code came back, bring the order id to discord and you get the code you paid for.
there is a difficulty cap. challenges over it get rejected instantly and never charge. if your workload actually needs the big ones, ask in discord, the cap can be raised per key.
no. a credit is taken only when a solve succeeds and the answer is returned to you. rejects and errors are free.
the math itself finishes in a few ms on our hardware. the 150 to 500ms you see end to end is almost all network, mostly the cloudflare hop in front of the api. customers running on our rdps hit the gateway over lan, skip cloudflare entirely, and get much lower.
no cap on solves per second. a day key is one ip at a time, so run it from one box. beyond that it is fair usage: sustained abuse that pins the fleet for everyone gets throttled, normal checker traffic never comes close.
yes. it is a plain https api with one endpoint. there are copy paste examples in the docs and a ready made python client you can drop in.
no. everything is open source: the docs and the python client are a few readable lines that do one thing, post the challenge and hand back the answer. no request hooking, no reading your accounts, no middleman between you and roblox. open devtools or wireshark and watch every request it sends, there is nothing hidden.
customers running on our rdps can hit the gateway directly over lan and skip cloudflare entirely. ask in discord.