Usage
results = client.settle_all_positions()
This is a convenience method that automatically finds all markets ready for settlement and settles each one.
Response
Returns a list of settlement results, one per position.
Whether settlement was successful.
Amount credited (if settled).
Shares settled (if settled).
Winning outcome (if settled).
Whether you won (if settled).
Error message (if failed).
Example
from polyhush import PolyhushClient
client = PolyhushClient(api_key="your-api-key")
# Settle all pending positions
results = client.settle_all_positions()
# Calculate totals
total_payout = 0
wins = 0
losses = 0
errors = 0
for result in results:
if result.get('settled'):
total_payout += result['payout']
if result['was_winner']:
wins += 1
else:
losses += 1
else:
errors += 1
print(f"⚠️ Failed to settle: {result.get('error')}")
print(f"\n📊 Settlement Summary")
print(f" Wins: {wins}")
print(f" Losses: {losses}")
print(f" Errors: {errors}")
print(f" Total Payout: ${total_payout:.2f}")
Response
[
{
"settled": true,
"payout": 100.00,
"original_size": 100,
"winning_outcome": "Yes",
"was_winner": true
},
{
"settled": true,
"payout": 0,
"original_size": 50,
"winning_outcome": "No",
"was_winner": false
},
{
"settled": false,
"market_id": "0xfailed...",
"token_id": "987654321",
"error": "Market not yet resolved"
}
]
How It Works
- Calls
get_pending_settlements() to find all markets ready to settle
- For each market with
can_settle: true:
- Calls
settle_position(market_id, token_id)
- Adds result to return list
- Returns all results (successes and failures)
This method is safe to call multiple times - already settled positions won’t be double-processed.
Automated Settlement Script
#!/usr/bin/env python3
"""Daily settlement script"""
from polyhush import PolyhushClient
import os
def run_daily_settlement():
client = PolyhushClient(api_key=os.environ["POLYHUSH_API_KEY"])
# Settle all positions
results = client.settle_all_positions()
if not results:
print("No positions to settle")
return
# Report results
total = sum(r['payout'] for r in results if r.get('settled'))
print(f"Settled {len(results)} positions")
print(f"Total claimed: ${total:.2f}")
# Check new balance
balance = client.get_balance()
print(f"New balance: ${balance['balance']:.2f}")
if __name__ == "__main__":
run_daily_settlement()