DreamBay API
Public endpoints for integrating DreamCast pools and Launchpad collections.
REST API
Base:https://dreambay.io/api/dreamcast
List Pools
GET /pools GET /pools?status=all # include inactive GET /pools?light=1 # lightweight (summaries + previews) GET /pools?owner=0.0.XXXXX # filter by owner
Returns pool name, banner, avatar, cast price (HBAR), tier counts, stats, and NFT previews.
Pool Detail
GET /pool/{poolId}
GET /pool/{slug} # also accepts pool slugFull pool info: prices in HBAR, 5 tier odds (computed from inventory), sellback prices, charm config, stats, inventory, and timestamps.
Pool Activity
GET /pool/{poolId}/activityRecent casts, catches, and buybacks for a pool.
Example Response
// GET /pools?light=1
{
"success": true,
"pools": [{
"id": "870983dd-...",
"slug": "hashhogs",
"name": "HashHogs",
"avatar": "https://cdn.dreambay.io/...",
"banner": "https://cdn.dreambay.io/...",
"status": "active",
"mint_price": 5,
"buyback_enabled": true,
"pool_slots_count": 42,
"pool_slots_tiers": {
"smallFry": 20, "keeper": 10,
"siren": 6, "hydra": 4, "kraken": 2
},
"pool_slots_previews": [
{ "image": "...", "tier": "kraken", "name": "..." }
],
"stats": {
"totalCatches": 156,
"totalVolume": 780
},
"created_at": "2026-03-15T...",
"updated_at": "2026-04-07T..."
}]
}Embed Widget
Embed a playable DreamCast pool on any website with a single iframe.
Live Preview
Embed Code
<iframe src="https://dreambay.io/embed/dreamcast?poolId=POOL_ID" width="480" height="220" style="border:none;border-radius:12px" />
URL Format
https://dreambay.io/embed/dreamcast?poolId=POOL_ID
Wallet is sent via DREAMCAST_INIT postMessage from the host page.
postMessage Protocol
←
READYembed loaded, send wallet→
INIT{ wallet: "0.0.xxx" }←
TX_REQUEST{ transactionBytes, requestId }→
TX_RESPONSE{ transactionId, requestId }→
TX_CANCEL{ requestId }←
GAME_STARTrequest fullscreen←
GAME_ENDexit fullscreenExample
const iframe = document.querySelector('iframe');
window.addEventListener('message', (e) => {
if (e.data.type === 'DREAMCAST_READY') {
iframe.contentWindow.postMessage({
type: 'DREAMCAST_INIT',
wallet: '0.0.12345'
}, '*');
}
if (e.data.type === 'DREAMCAST_TX_REQUEST') {
const txId = await signTransaction(
e.data.transactionBytes
);
iframe.contentWindow.postMessage({
type: 'DREAMCAST_TX_RESPONSE',
requestId: e.data.requestId,
transactionId: txId
}, '*');
}
});