Solve hCaptcha in Dolphin{anty} profiles.
Dolphin{anty} is an anti-detect browser that runs many browser profiles, each with its own fingerprint and proxy. It installs Chrome Web Store extensions into those profiles, and the NoneCap hCaptcha solver is on the Chrome Web Store: add it once in the Extensions section and it solves hCaptcha in your profiles as you browse. If you start profiles from code through Dolphin{anty}'s local API, request tokens from the NoneCap API instead; that route is further down. NoneCap is a captcha solver service that focuses on hCaptcha, and does not solve reCAPTCHA or Turnstile.
Add the extension from the Chrome Web Store
These steps follow Dolphin{anty}'s own
How to add extensions
page. Dolphin{anty} wants the store link without anything after a
?, so use this one:
https://chromewebstore.google.com/detail/nonecap-%E2%80%94-hcaptcha-auto-s/kahepbmokpbbkfognbmimpmnlfibcolf - Copy the link above.
- In Dolphin{anty}, open Extensions in the left menu and click + next to the search bar.
- On the Chrome Web Store tab, paste the link.
- Choose All sites to add it to every profile, or the profile type (FB, Google, Crypto, TikTok) whose profiles should get it. You can also share it with your team, and it then appears in their profiles of that type.
- Click Create, start a profile and open a page with hCaptcha. When the challenge opens, the extension solves it on the page.
Dolphin{anty} recommends this route over installing from the store inside a profile: its extensions FAQ says an in-profile install takes more space and can slow profiles down, and an install through the app reaches every profile of the chosen type at once. The same FAQ says extensions update automatically either way.
Or upload the release zip
Every NoneCap extension release is also published on GitHub. In the same dialog, switch to the Upload file tab, give the extension a name and upload the zip. Dolphin{anty} needs the files at the top of the archive, not inside a subfolder, and zip uploads need the Starter plan or higher.
Things to know
- Extension limits by plan, from Dolphin{anty}'s docs: 10 on Free, 25 on Starter, no limit on Base, Team and Enterprise.
- The extension needs Chrome 120 or newer. Dolphin{anty} warns that extensions can misbehave in profiles with an outdated user agent; its FAQ says to update the profile's user agent if that happens.
- If the extension is missing from a profile, check that it was added for that profile's type, or for All sites.
- While it solves, the browser shows a "started debugging this browser" banner. That is expected: the extension attaches only for the solve and detaches when the attempt ends. The extension privacy policy says what it sends.
- Settings and your API key are stored per profile.
Free solves or your API key
The extension includes 100 free solves a day without an account, which suits a few profiles. For more, create a NoneCap account, copy an API key from the dashboard and paste it into the extension's options in each profile. Solves then draw from your balance, from 1 credit per challenge round, and a failed solve is never charged. See pricing.
Profiles you start from code
Dolphin{anty}'s
Basic Automation
page describes the local API: with the app running and signed in (with your
login, or with an API token from your Dolphin{anty} account), a
GET to /v1.0/browser_profiles/PROFILE_ID/start?automation=1
on port 3001 starts the profile and returns an automation object
with a port and a wsEndpoint. Puppeteer connects
to ws://127.0.0.1:port plus that path; Playwright's
connectOverCDP takes the same address. If port 3001 was busy,
the app picks another one and shows it in its Health window.
In a script, request the token yourself rather than waiting on the
extension: read the page's sitekey,
call NoneCap with the Node SDK (npm install nonecap puppeteer-core),
put the token in h-captcha-response and submit:
import puppeteer from "puppeteer-core";
import { NoneCap } from "nonecap";
const DOLPHIN = "http://localhost:3001/v1.0";
const PROFILE_ID = process.env.DOLPHIN_PROFILE_ID;
const nc = new NoneCap({ apiKey: process.env.NONECAP_KEY });
// The Dolphin{anty} app must be running and signed in; a token signs it in.
await fetch(`${DOLPHIN}/auth/login-with-token`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ token: process.env.DOLPHIN_API_TOKEN }),
});
const started = await (
await fetch(`${DOLPHIN}/browser_profiles/${PROFILE_ID}/start?automation=1`)
).json();
const { port, wsEndpoint } = started.automation;
const browser = await puppeteer.connect({
browserWSEndpoint: `ws://127.0.0.1:${port}${wsEndpoint}`,
});
const page = await browser.newPage();
await page.goto("https://target.example/login", { waitUntil: "networkidle2" });
const sitekey = await page.$eval("[data-sitekey]", (el) =>
el.getAttribute("data-sitekey")
);
const solve = await nc.solve({
type: "hcaptcha",
sitekey,
url: page.url(),
user_agent: await page.evaluate(() => navigator.userAgent),
// proxy: "http://user:pass@host:port", // the profile's own proxy, if it has one
});
await page.evaluate((token) => {
for (const name of ["h-captcha-response", "g-recaptcha-response"]) {
const el = document.querySelector(`textarea[name="${name}"]`);
if (el) el.value = token;
}
}, solve.token);
await Promise.all([page.waitForNavigation(), page.click("[type=submit]")]);
await browser.disconnect();
await fetch(`${DOLPHIN}/browser_profiles/${PROFILE_ID}/stop`);
Pass the profile's user agent as user_agent, as above: some
sites accept a token only from the browser version that solved it. If the
profile runs through a proxy, send that proxy as proxy so the
token is solved from the same address the profile submits it from. For an
invisible widget, call its data-callback with the token after
injecting it; the Puppeteer guide shows
how. For Selenium, Dolphin{anty} recommends its own ChromeDriver
build, linked from the same Basic Automation page.
Dolphin{anty} is a NoneCap partner
Dolphin{anty} is on our partners page, with 20% off Dolphin{anty} for NoneCap users with the code NONECAP20 at dolphin-anty.com.
Use it where you're allowed to
NoneCap's terms rule out fraud, credential stuffing, spam and unauthorised access, and leave it to you to check the terms of the sites your profiles visit.
Last updated November 2026.
Frequently asked
Can I add a captcha solver extension to Dolphin{anty}?
Why doesn't the extension show up in my profile?
Does it work on the Free plan?
Does it solve reCAPTCHA or Cloudflare Turnstile?
Can I use NoneCap with the Dolphin{anty} API?
automation=1, connect Puppeteer or Playwright to the port and wsEndpoint the response returns, and request the token from the NoneCap API. The Node example on this page does exactly that.