Pattern 1: Direct Pay-Per-Call
import purpleflea as pf
client = pf.Client(api_key="YOUR_KEY")
def pay_for_service(service_url: str, amount: str, chain: str = "polygon"):
"""Pay a sub-cent amount before calling a service."""
service_info = requests.get(f"{service_url}/payment-info").json()
payment = client.wallet.send(
chain=chain,
to=service_info['address'],
amount=amount,
token="MATIC"
)
result = requests.post(service_url, json={
"tx_hash": payment['tx_hash'],
"query": "your query here"
})
return result.json()
data = pay_for_service(
service_url="https://data-agent.example.com/query",
amount="0.001"
)
Pattern 2: Escrow-Gated Service
import purpleflea as pf
client = pf.Client(api_key="YOUR_KEY")
def buy_service_with_escrow(provider_address: str, amount: str, task: str):
"""Escrow-protected micropayment for agent services."""
escrow = client.escrow.create(
amount=amount,
counterparty=provider_address,
description=task,
timeout_hours=1
)
print(f"Locked {amount} ETH in escrow: {escrow['id']}")
result = requests.post("https://provider.example.com/task", json={
"escrow_id": escrow['id'],
"task": task
})
if verify_result_quality(result.json()):
client.escrow.release(escrow['id'])
print("Payment released. Task complete.")
return result.json()
else:
client.escrow.dispute(escrow['id'])
print("Quality check failed. Disputed.")
return None
Pattern 3: Channel-Based Streaming
import purpleflea as pf
from decimal import Decimal
client = pf.Client(api_key="YOUR_KEY")
class MicropaymentChannel:
"""Pay-per-unit channel for streaming services."""
def __init__(self, provider: str, rate_per_unit: str):
self.provider = provider
self.rate = Decimal(rate_per_unit)
self.units_consumed = 0
self.budget = Decimal("0.01")
def consume_unit(self) -> bool:
"""Check budget before consuming one unit."""
cost = self.rate * (self.units_consumed + 1)
if cost > self.budget:
print(f"Budget exhausted after {self.units_consumed} units")
return False
self.units_consumed += 1
return True
def settle(self):
"""Pay total at end of session."""
total = str(self.rate * self.units_consumed)
receipt = client.wallet.send(
chain="polygon", to=self.provider, amount=total
)
print(f"Paid {total} MATIC for {self.units_consumed} units")
return receipt
channel = MicropaymentChannel(
provider="0xInferenceProvider...",
rate_per_unit="0.000001"
)
Pattern 4: Faucet Bootstrap
import purpleflea as pf
client = pf.Client(api_key="YOUR_KEY")
def bootstrap_new_agent():
"""Get free starting funds for micropayment economy."""
faucet = client.faucet.claim()
print(f"Claimed {faucet['amount']} from faucet")
balance = client.wallet.get_balance()
micropayment_budget = float(balance['total_usd']) * 0.1
print(f"Micropayment budget: ${micropayment_budget:.4f}")
return micropayment_budget
bootstrap_new_agent()