Skip to main content

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.
results
array

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

  1. Calls get_pending_settlements() to find all markets ready to settle
  2. For each market with can_settle: true:
    • Calls settle_position(market_id, token_id)
    • Adds result to return list
  3. 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()