Problem
Modern privacy-focused websites, public services, and search engines are increasingly moving away from traditional third-party image CAPTCHAs (reCAPTCHA, hCaptcha) toward Proof-of-Work (PoW) and WebAssembly-based challenges (such as Altcha, Friendly Captcha, mCaptcha, and Wasm-driven interstitials like Brave Search).
Currently, TRAWL has robust solvers for Cloudflare Turnstile, reCAPTCHA v2, hCaptcha, and GeeTest slide in packages/tiers/src/solvers/, but has no dedicated handler for PoW-based widgets or WebAssembly computation interstitials:
- When a scraped form contains an Altcha or Friendly Captcha widget,
solvePageCaptchas() does not identify or trigger the widget, preventing form submission.
- When a site presents an interstitial Proof-of-Work challenge, short navigation timeouts can abort before the background WebAssembly / Web Worker finishes computing the solution nonce.
Proposed solution
Add native Proof-of-Work challenge support into TRAWL's architecture:
-
In-Page Widget Solvers (packages/tiers/src/solvers/):
- Add
altcha.ts to detect <altcha-widget> / .altcha elements and wait for the SHA-256 verification token.
- Add
friendlyCaptcha.ts to detect .frc-captcha widgets, trigger execution if interactive, and capture the solution token.
- Register both in
solvePageCaptchas() alongside existing Turnstile and reCAPTCHA solvers.
-
PoW / Wasm Interstitial Waiter (packages/tiers/src/utils/powWait.ts):
- Add challenge detection for computational Wasm/PoW challenge gates in
detect.ts.
- Route through
challengeRouter.ts with a dedicated waiter that monitors computation clearance cookies and redirects without premature timeouts.
Alternatives considered
- Relying solely on third-party solving APIs: Violates TRAWL's core philosophy of 100% local, free, zero-external-dependency solving.
- Handling PoW as generic timeouts: Causes non-deterministic failures when target sites adjust puzzle difficulty parameters.
Tier impact
Adds in-page solvers under packages/tiers/src/solvers/ and an interstitial waiter under packages/tiers/src/utils/ for Tier 3 browser execution.
Willingness to contribute
Problem
Modern privacy-focused websites, public services, and search engines are increasingly moving away from traditional third-party image CAPTCHAs (reCAPTCHA, hCaptcha) toward Proof-of-Work (PoW) and WebAssembly-based challenges (such as Altcha, Friendly Captcha, mCaptcha, and Wasm-driven interstitials like Brave Search).
Currently, TRAWL has robust solvers for Cloudflare Turnstile, reCAPTCHA v2, hCaptcha, and GeeTest slide in
packages/tiers/src/solvers/, but has no dedicated handler for PoW-based widgets or WebAssembly computation interstitials:solvePageCaptchas()does not identify or trigger the widget, preventing form submission.Proposed solution
Add native Proof-of-Work challenge support into TRAWL's architecture:
In-Page Widget Solvers (
packages/tiers/src/solvers/):altcha.tsto detect<altcha-widget>/.altchaelements and wait for the SHA-256 verification token.friendlyCaptcha.tsto detect.frc-captchawidgets, trigger execution if interactive, and capture the solution token.solvePageCaptchas()alongside existing Turnstile and reCAPTCHA solvers.PoW / Wasm Interstitial Waiter (
packages/tiers/src/utils/powWait.ts):detect.ts.challengeRouter.tswith a dedicated waiter that monitors computation clearance cookies and redirects without premature timeouts.Alternatives considered
Tier impact
Adds in-page solvers under
packages/tiers/src/solvers/and an interstitial waiter underpackages/tiers/src/utils/for Tier 3 browser execution.Willingness to contribute