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.2.0.tar.gz (10.2 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.2.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rollhub_dice-0.2.0.tar.gz
  • Upload date:
  • Size: 10.2 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.2.0.tar.gz
Algorithm Hash digest
SHA256 0ceeff017f6e43ed443e9f0b6bb43cfcea710ffdaec336d9ebc4d7932738b3b3
MD5 605c1da9b67406f4c08a5537f8709c5e
BLAKE2b-256 2a1b66aeafc20e952b51174e9555486ba7027b1638022d46e39dce2a0ac90b79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rollhub_dice-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7c0a74366a7d84820ee4440367d587aa87f43d45dfef0d4d681573903ac0cd4
MD5 23266af4f1b8d1e1c45a7ea0e2236910
BLAKE2b-256 7888acd3083e48eb84985bc1572243a279b75242e081dd160d95673b5ac017ab

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