arkose-solver
v1.2.0
Published
Arkose Labs / FunCaptcha solver producing sup=1 suppressed tokens, with the site RSA key derived per solve
Maintainers
Readme
arkose-solver (Node)
Arkose Labs / FunCaptcha solver producing sup=1 suppressed tokens. The site's
RSA public key is derived from the served api.js on every solve, so there is
nothing to capture or pin.
npm install arkose-solver node-tls-clientconst { Solver } = require('arkose-solver');
(async () => {
const s = new Solver({
surl: 'https://verify.example.com',
publicKey: '00000000-0000-0000-0000-000000000000',
site: 'https://www.example.com',
proxy: 'http://user:pass@host:port', // optional
});
const res = await s.solve();
console.log(res.token, res.suppressed);
await s.close();
await Solver.shutdown(); // tears down the native TLS client
})();solve() resolves to { token, suppressed, timings }. suppressed is true
when the token carries sup=1.
Conformance
npm testChecks every derivation against ../testvectors.json (generated by the Go
implementation, which asserts each value against captured ground truth) and
then verifies 20 freshly generated payloads are internally self-consistent —
f, ife_hash, webgl_hash_webgl, network_info_rtt_type and
screen_pixel_depth all recomputed from the payload itself.
Transport
Uses node-tls-client for the Chrome TLS fingerprint. Arkose reads JA3/JA4, so
fetch/axios will not do regardless of how correct the payload is. It is an
optional dependency: the derivation and BDA layers work without it, only
solve() needs it.
Solver.shutdown() releases the shared native client; call it once when your
process is done solving.
