
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
rosolve
Advanced tools
An async Python client for the RoSolve API, supporting FunCaptcha solving for Roblox.
pip install rosolve
import asyncio
from rosolve import Client
async def main():
# Initialize with a default proxy (optional)
async with Client(
"your_api_key",
proxy="http://user:pass@host:port" # Optional default proxy
) as client:
# Get balance
balance = await client.get_balance()
print(f"Current balance: {balance}")
if __name__ == "__main__":
asyncio.run(main())
Here's a complete example of solving a FunCaptcha challenge:
import asyncio
from curl_cffi import requests
from rosolve import Client
async def main():
# Initialize your Roblox session
roblox_session = requests.Session()
roblox_session.headers.update({
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/122.0.0.0",
"sec-ch-ua": '"Chromium";v="122", "Google Chrome";v="122"'
})
# Your configuration
api_key = "your_api_key_here"
cookie = ".ROBLOSECURITY=your_cookie_here"
# Proxy configuration (multiple options)
default_proxy = "http://user:pass@host:port" # For all requests
solving_proxy = "http://other:pass@host:port" # Just for solving
async with Client(api_key, proxy=default_proxy) as client:
try:
# Solve the FunCaptcha using a specific proxy for this solve
solution = await client.solve_funcaptcha(
roblox_session=roblox_session,
blob="your_blob_data_here",
proxy=solving_proxy, # Override default proxy (optional)
cookie=cookie
)
if solution:
print("Successfully solved captcha!")
print(f"Token: {solution}")
else:
print("Failed to solve captcha")
except Exception as e:
print(f"An error occurred: {e}") # Now with color-coded errors!
if __name__ == "__main__":
asyncio.run(main())
The main class for interacting with the RoSolve API.
client = Client(
api_key: str,
session: Optional[aiohttp.ClientSession] = None,
proxy: Optional[str] = None # Default proxy for all requests
)
api_key (str): Your RoSolve API keysession (Optional[aiohttp.ClientSession]): An optional aiohttp session to useproxy (Optional[str]): Default proxy to use for all requestsGet your current RoSolve balance.
balance = await client.get_balance()
Returns:
float: Your current balanceRaises:
InvalidKey: If the API key is invalidSolve a FunCaptcha challenge.
solution = await client.solve_funcaptcha(
roblox_session: requests.Session,
blob: str,
proxy: str,
cookie: str,
max_retries: int = 60,
retry_delay: float = 1.0
)
Parameters:
roblox_session (requests.Session): The Roblox session objectblob (str): The blob data from the challengeproxy (str): Proxy to use (format: "protocol://user:pass@host:port")cookie (str): Roblox cookiemax_retries (int, optional): Maximum retries for checking solution. Defaults to 60retry_delay (float, optional): Delay between retries in seconds. Defaults to 1.0Returns:
Optional[str]: The solution token if successful, None if failedRaises:
TaskError: If the task creation failsThe package provides several custom exceptions with color-coded error messages:
from rosolve import RoSolveException, InvalidKey, TaskError, ProxyError
try:
solution = await client.solve_funcaptcha(...)
except InvalidKey as e:
print(e) # Yellow error message
except TaskError as e:
print(e) # Red error message
except ProxyError as e:
print(e) # Yellow error message
except RoSolveException as e:
print(e) # Red error message
async with Client(api_key) as client:
# Your code here
balance = await client.get_balance()
if balance < 10:
print("Low balance warning!")
try:
solution = await client.solve_funcaptcha(...)
except Exception as e:
print(f"Error: {e}")
# With authentication
proxy = "http://username:password@host:port"
proxy = "https://username:password@host:port"
proxy = "socks5://username:password@host:port"
# Without authentication
proxy = "http://host:port"
# Set default proxy for all requests
client = Client(api_key, proxy="http://user:pass@host:port")
# Override proxy for specific solves
solution = await client.solve_funcaptcha(..., proxy="http://other:pass@host:port")
This project is licensed under the Unlicense - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue on GitHub.
FAQs
An async Python client for the RoSolve API
We found that rosolve demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.