Skip to main content

Python SDK for the Rollhub Dice Agent API — provably fair dice betting for AI agents

Project description

🎲 rollhub-dice

PyPI version Python License: MIT

Python SDK for the Rollhub Dice Agent API — provably fair dice betting for AI agents.

Quick Start

pip install rollhub-dice
from rollhub_dice import DiceAgent

agent = DiceAgent(api_key="rh_sk_...")
result = agent.bet(target=0.5, direction="over", amount=100)
print(result)  # Bet #1: rolled 0.7234 → WIN (payout: 198)

Register a New Agent

agent = DiceAgent.register(wallet_address="0xYourWallet...")
print(agent.api_key)  # rh_sk_...

API Reference

DiceAgent(api_key, base_url="https://agent.rollhub.com/api/v1")

Create a client with an existing API key. Use base_url to point at staging:

agent = DiceAgent(api_key="rh_sk_...", base_url="https://agent.rollhub.com/api/v1")

DiceAgent.register(wallet_address, base_url) → DiceAgent

Register a new agent wallet and return an authenticated client.

agent.balance() → Balance

bal = agent.balance()
print(bal.balance_usd)   # "10.00"
print(bal.balance_cents)  # 1000

agent.bet(target, direction, amount, client_secret) → BetResult

Place a dice bet. Amount is in cents.

Param Default Description
target Threshold (0.0–1.0)
direction "over" "over" or "under"
amount 100 Wager in cents
client_secret auto Your secret for verification
result = agent.bet(target=0.5, direction="over", amount=200)
print(result.win, result.roll, result.payout)

agent.bets() → List[Bet]

Get your bet history.

agent.verify(bet_id) → VerifyResult

Verify any bet was provably fair:

v = agent.verify(bet_id=1)
print(v.verified)  # True

Provably Fair

Every bet is verifiable using SHA3-384 HMAC:

  1. Before you bet, Rollhub publishes server_seed_hash = SHA3-384(server_secret)
  2. You provide a client_secret (auto-generated if omitted)
  3. Roll = first 8 bytes of HMAC-SHA3-384(server_secret, client_secret:nonce)[0, 1)
  4. After the bet, the server_secret is revealed so you can recompute the roll

You can also verify locally:

from rollhub_dice import verify_bet

is_fair = verify_bet(
    server_secret="...",
    client_secret="...",
    nonce=1,
    server_seed_hash="...",
    expected_roll=0.7234,
)

Error Handling

from rollhub_dice import DiceAgent, AuthenticationError, InsufficientBalanceError

try:
    result = agent.bet(target=0.5, amount=100)
except AuthenticationError:
    print("Bad API key")
except InsufficientBalanceError:
    print("Need more funds")

All exceptions inherit from RollhubError and include status_code and response attributes.

Docs

Full documentation: rollhub.com/docs

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rollhub_dice-0.3.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rollhub_dice-0.3.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file rollhub_dice-0.3.0.tar.gz.

File metadata

  • Download URL: rollhub_dice-0.3.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for rollhub_dice-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d6aeabac8e6bd7aba060ce147f974961d0590172c4cf5d749234b5b46f82d8ee
MD5 d21cea101c9888636b379bac82717ad9
BLAKE2b-256 1a5f7b87ccf096e3de96870f00186037ea273c0eb202e48cb741c626f1e87173

See more details on using hashes here.

File details

Details for the file rollhub_dice-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: rollhub_dice-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for rollhub_dice-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2799f09de11aa1b00e46bfa523f27917847bb9a1d0bf83883073fd6c79a34c1a
MD5 7cfa0f9876ef6eedb503f3160f761c9e
BLAKE2b-256 d764b444185f5f5630e61a05803d1c32e19ff7be650c024736cffc0e41100fc1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page