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.4.0.tar.gz (11.9 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.4.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rollhub_dice-0.4.0.tar.gz
  • Upload date:
  • Size: 11.9 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.4.0.tar.gz
Algorithm Hash digest
SHA256 16fba1764be135fcb032bcb622d572e1ef956e2e42ecfffea3692287feb466c1
MD5 e0798e990cf0e3394c66cffbf55d2d04
BLAKE2b-256 6e51c6960e972be8927d1d28a26da6aafbf66d62b23f6096731bb04c16c751da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rollhub_dice-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 abf4191ff35a567fc9e4a873f7d4e7942815f630a69494745a6b69dc319b1b61
MD5 c847c95d01eef83d33f9f5ee1c8e7e3c
BLAKE2b-256 5cf823bd5980aa02673a1e717a2be73ab40045cc6d353461f3593b9f8dd04919

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