VIBE.MARKETV2.1 · SCHEMA V6

INTEGRATION FIELD GUIDE

BUILD WITH
THE PACK MACHINE.

TL;DR

Every pack is 100,000 units of its collection token. Buying moves real WETH into that token's public Uniswap V4 pool. Opening sells the pack lot back, locks the realized ETH, then reveals a fixed reward or a collectible card.

01

START WITH DISCOVERY

Never hardcode a contract address or choose a graph by array order. Read the versions endpoint, select the non-retired vibemarket.shared-pot.v6 entry, and use the returned chain and addresses together.

curl https://vibechain.com/api/vibemarket2/runtime/versions

HTTP reads are projections, not transaction receipts. Financial writes are signed by the user's wallet and sent directly to Robinhood Chain. There is no custodial REST endpoint for create, buy, sell, or open.

02

READ API

GET/api/vibemarket2/runtime/versionsDiscover every graph. Select schema vibemarket.shared-pot.v6 with retired: false.
GET/api/vibemarket2/runtime/{runtimeId}/healthIndexer and entropy-keeper readiness. Require ready: true before opening.
GET/api/vibemarket2/runtime/{runtimeId}/markets?limit=50Paginated V2.1 packs. Pass the returned before cursor unchanged.
GET/api/vibemarket2/runtime/{runtimeId}/markets/{dropId}One pack, its token, pool, odds, inventory, and opening totals.
GET/api/vibemarket2/runtime/{runtimeId}/board?resource=quoteBuy&dropId={dropId}&packs=1A one-to-ten pack buy quote in ETH.
GET/api/vibemarket2/runtime/{runtimeId}/sealed?owner={wallet}A wallet's sealed-pack balances.
GET/api/vibemarket2/runtime/{runtimeId}/claims?owner={wallet}Pending and revealed cash claims, including V2.1 funding state.
GET/api/vibemarket2/runtime/{runtimeId}/nfts?owner={wallet}Collected card NFTs owned by a wallet.
GET/api/vibemarket2/runtime/{runtimeId}/potShared reward assets, protected claims, free capital, and shortfall.
GET/api/vibemarket2/runtime/{runtimeId}/stream?topics=pot,market:{dropId}SSE invalidations. Re-read the affected bounded endpoint after an event.
03

WALLET CALLS

Quote immediately before the write, keep exact amounts as integers, simulate the exact call from the connected account, then wait for a successful receipt.

CREATEfactory.createClassic(name, symbol, baseURI, ethUsdE8)

Gas only. Creates the token, card collection, and public V4 pool.

BUY + STASHmarket.buySealed(dropId, count, maxEthIn, deadline)

Send maxEthIn as value. The unused amount is refunded.

BUY + OPENmarket.buyAndOpen(dropId, count, maxEthIn, 0, deadline)

Send maxEthIn plus entropy.fee(). The V2.1 reserve argument is always zero.

OPEN STASHEDmarket.openSealed(dropId, count, 0, minOpeningProceeds, deadline)

Send entropy.fee(). The opening sells one 100,000-token lot per pack.

SELL STASHEDmarket.sellSealed(dropId, count, minProceeds, deadline, recipient)

Returns the pool's WETH proceeds as native ETH.

REVEALmarket.resolve(pullId)

Permissionless after entropy is ready. The keeper normally resolves first.

SELL CARDmarket.sell(cardId, minSaleProceeds, minPayout, deadline, recipient)

Pays the fixed, fully funded revealed reward.

KEEP CARDmarket.collect(cardId, minSaleProceeds, minCreatorPayout, deadline, nftRecipient)

Mints the NFT; 90% credits the creator and 10% remains in the pot.

04

CREATE METADATA

The official Studio publishes creator-signed metadata before calling the factory. A same-origin integration may instead send multipart metadata to:

POST /api/vibemarket2/runtime/{runtimeId}/prepare

Fields: name, symbol, description, tiers, ethPerPack, optional packArt, tierArt, and cardsByRarity. The response contains a hosted baseURI and exact createParams. This endpoint prepares metadata only; it cannot launch or spend funds.

05

RULES THAT MATTER

  • 1–10 packs per buy/open call; one pack is 100,000 tokens with 18 decimals.
  • 2% pool fee on the buy and on the opening sale.
  • At reveal, the contract records the exact reward. If it is not fully funded, the amount stays fixed but cannot be sold or collected yet.
  • Sell pays the player. Collect mints the NFT, credits 90% to the creator, and retains 10% in the shared pot.
  • After a mined write, wait until runtime health has indexed past the receipt block before presenting the new state.