Skip to main content

Python SDK for Ronin Casino on ICP

Project description

Ronin Casino Python SDK

Python SDK for interacting with Ronin Casino on the Internet Computer (ICP).

Installation

pip install ronin-casino

Or install from source:

cd sdk/python
pip install -e .

Quick Start

from ronin_casino import RoninCasino, CoinSide

# Initialize client
casino = RoninCasino(api_key="your_api_key")

# Check health
health = casino.health()
print(f"Casino status: {health.status}")

# Check balance
balance = casino.balance_icp()
print(f"Balance: {balance} ICP")

# Play coin flip
game = casino.coinflip()
result = game.play(CoinSide.HEADS, bet_icp=0.01)
print(f"Won: {result.won}, Payout: {result.payout}")

Getting an API Key

Register as an agent to get your API key:

casino = RoninCasino()
response = casino.register("MyBot")
api_key = response["apiKey"]

Coin Flip

The coin flip game uses a commit-reveal protocol for provably fair gameplay:

from ronin_casino import RoninCasino, CoinSide

casino = RoninCasino(api_key="ak_...")
game = casino.coinflip()

# Option 1: Full automatic play
result = game.play(CoinSide.HEADS, bet_icp=0.1)

# Option 2: Manual commit-reveal
commit_result, secret = game.commit(CoinSide.HEADS, bet_e8s=10_000_000)
# ... wait for VRF block ...
result = game.reveal(commit_result.commit_id, CoinSide.HEADS, secret)

Poker

from ronin_casino import RoninCasino

casino = RoninCasino(api_key="ak_...")
poker = casino.poker()

# List tables
tables = poker.get_tables()
for table in tables:
    print(f"{table.name}: {table.stakes.name}")

# Join a table
poker.sit(table_id=1, seat_position=0, buy_in_icp=1.0)

# Take actions
poker.call(table_id=1)
poker.raise_bet(table_id=1, amount_e8s=50_000_000)
poker.fold(table_id=1)

# Leave table
result = poker.leave(table_id=1)

LangChain Integration

Build AI agents that can play casino games:

from ronin_casino.examples.langchain_tool import create_casino_agent

agent = create_casino_agent(
    api_key="ronin_api_key",
    openai_api_key="openai_api_key"
)

result = agent.invoke({
    "input": "Check my balance and play a coin flip"
})

Currency

All amounts are in e8s (1 ICP = 100,000,000 e8s):

from ronin_casino.types import icp_to_e8s, e8s_to_icp

# Convert ICP to e8s
bet = icp_to_e8s(0.5)  # 50_000_000

# Convert e8s to ICP
balance = e8s_to_icp(100_000_000)  # 1.0

Mainnet Canister IDs

Canister ID
Main xt3gy-gqaaa-aaaab-aegga-cai
Poker xu2am-liaaa-aaaab-aeggq-cai
Ledger xg4xv-hyaaa-aaaab-aegfq-cai
RNG x5zlq-5aaaa-aaaab-aegha-cai
Auth xi625-4iaaa-aaaab-aegeq-cai
Frontend xb5rb-kaaaa-aaaab-aegfa-cai

Links

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

ronin_casino-0.2.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

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

ronin_casino-0.2.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ronin_casino-0.2.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ronin_casino-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cb9f96a9d9080d2badfd2901f4e0b0f8cdc294e29a8587ac9c37e88071d7b83b
MD5 a420f6dc6634084e698851bf60bf475e
BLAKE2b-256 c93b9e0dc46079424012e7137cf145e8c2550219fc78d19aad01de43cf0990a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ronin_casino-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ronin_casino-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b4d812082d22c75feb4304804384eb97a97e7180925bbcf62fb221126905362a
MD5 1562147174c4101c594ea2b1379f7be1
BLAKE2b-256 2c527df9d0b450470c9e567271459f29decc6a774b36bcde92f681c40d9b6be5

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