import asyncio
from l402kit import L402Client, BudgetExceededError
from l402kit.wallets import BlinkWallet
wallet = BlinkWallet(api_key=os.environ["BLINK_API_KEY"])
client = L402Client(wallet=wallet, budget_sats=1000)
async def autonomous_data_collector(urls: list[str]) -> list[dict]:
results = []
for url in urls:
try:
response = await client.get(url)
results.append({
"url": url,
"status": "success",
"data": response.json(),
"cost_sats": client.last_payment_sats
})
except BudgetExceededError:
results.append({"url": url, "status": "budget_exceeded"})
break
except Exception as e:
results.append({"url": url, "status": "error", "error": str(e)})
print(f"Total spent: {client.spent_sats} sats")
return results
# Run
results = asyncio.run(autonomous_data_collector([
"https://l402kit.com/api/demo",
"https://api.example.com/data",
]))