Discover events and hubs, manage branding, CheckIn venues, bracelets, wallets, and NFT tickets on the Belong platform
---
name: belong-events
description: Discover events and hubs, manage branding, CheckIn venues, bracelets, wallets, and NFT tickets on the Belong platform
metadata: {"openclaw": {"emoji": "π«", "primaryEnv": "BELONG_EVENTS_API_KEY", "optionalEnv": ["BELONG_EVENTS_ENDPOINT"], "requires": {"bins": ["curl"]}}}
---
# Belong Events
Discover events and hubs, buy tickets, create events and communities, manage hub branding, and handle venue check-ins, bracelets, and referral flows on Belong.
## How to call tools
Run `{baseDir}/invoke.sh <method> '<params-json>'` via `system.run`. The script calls the Belong skill API and returns JSON.
Example:
```
system.run {baseDir}/invoke.sh discover_events '{"city":"Miami","limit":5}'
```
All tool calls use this pattern. The `invoke.sh` script handles endpoint URL, authentication headers, validates method names, and streams the JSON-RPC body over stdin instead of interpolating user params into curl arguments.
Default endpoint:
`https://join.belong.net/functions/v1/openclaw-skill-proxy`
Network disclosure:
- All JSON-RPC calls are sent to the endpoint above (or `BELONG_EVENTS_ENDPOINT` if overridden).
- If `BELONG_EVENTS_API_KEY` is set, it is sent to that endpoint as `X-OpenClaw-Key`.
## Account linking (required for protected tools)
Most tools require a linked Belong account. If any tool returns "Belong account not linked" or "BELONG_LINK_REQUIRED", run the OTP flow:
1. Ask the user for their email address.
2. Send OTP:
```
system.run {baseDir}/invoke.sh belong_email_otp_send '{"email":"USER_EMAIL"}'
```
3. Ask for the 6-digit code from their email.
4. Verify OTP:
```
system.run {baseDir}/invoke.sh belong_email_otp_verify '{"email":"USER_EMAIL","otp":"CODE"}'
```
5. The response includes `apiKey`. Store it β set it as `BELONG_EVENTS_API_KEY` env var or update `skills.entries.belong-events.apiKey` in `openclaw.json` so subsequent calls are authenticated.
Never ask end users for an API key. Always use the OTP flow.
## Available tools
### Public (no auth needed)
Public tools are rate-limited. If you hit a 429, wait and retry.
- **list_tools** β List available tools (no params)
- **discover_events** β Search events. Params: `city`, `category`, `startDate`, `endDate`, `limit`, `latitude`, `longitude` (all optional)
- **discover_hubs** β Search public hubs. Params: `search`, `hubType`, `limit`, `cursor`
- **get_event_details** β Get event details. Params: `eventId` (required), `source`, `city`, `latitude`, `longitude` (optional)
- **get_hub_details** β Get hub details. Params: `hubId` (required), `includeEvents`, `includeBranding`
- **get_hub_branding** β Get hub branding. Params: `hubId` (required)
- **buy_ticket** β Get checkout/event URL. Params: `eventId` (required), `tierId`, `quantity`
- **get_checkin_leaderboards** β Load public venue and attendee leaderboards. Params: `limit`, `timeframe` (`all`, `today`, `week`, `month`)
- **belong_email_otp_send** β Send OTP. Params: `email` (required)
- **belong_email_otp_verify** β Verify OTP. Params: `email` (required), `otp` (required)
### Account status (auth required)
- **whoami** β Check link status (no params)
- **get_profile** β Get the linked Belong profile
- **list_wallets** β List linked crypto wallets
- **sync_wallets** β Sync wallets from the configured provider
- **get_referral_code** β Get or create the linked wallet referral code. Params: `chainId` (required), `walletAddress`, `createIfMissing`
### Attendee (auth required)
- **my_tickets** β List purchased tickets. Params: `status` (upcoming/past/all). Returns `ticketCheckinUrl` for each ticket.
- **my_checkins** β List the linked userβs check-in history and stats. Params: `limit`, `offset`
### Organizer (auth required)
- **create_event** β Create event. Params: `name` (required), `startDate` (required), `endDate` (required), `description`, `city`, `venue`, `category`, `hubId`, `coverImage`
- **update_event** β Update event. Params: `eventId` (required), `name`, `description`, `startDate`, `endDate`, `city`, `venue`, `category`, `hubId`, `coverImage`
- **add_event_media** β Upload event media. Params: `eventId` (required), `files` (required base64 file array)
- **update_event_media** β Replace/reorder event media. Params: `eventId` (required), `media` (required)
- **delete_event_media** β Delete event media. Params: `eventId` (required), `mediaId` (required)
- **deploy_tickets** β Deploy NFT tickets. Params: `eventId` (required), `tierName` (required), `price` (required), `maxSupply`, `chainId`, `transferable`, `gasless`. Two-phase: first call returns tx params, second call with `collectionId`+`txHash` completes deployment.
- **my_events** β List owned events. Params: `status` (upcoming/past/draft/all)
- **event_analytics** β Event stats. Params: `eventId` (required)
- **create_hub** β Create hub/community. Params: `name` (required), `slug`, `description`, `location`, `private`, `hubType`, `startDate`, `endDate`, `coverImage`, `communitySkinConfig`, `customDomains`
- **update_hub** β Update hub/community. Params: `hubId` (required), `name`, `slug`, `description`, `location`, `private`, `hubType`, `startDate`, `endDate`, `coverImage`, `connectEventIds`, `categorySubEventIDs`, `communitySkinConfig`, `customDomains`
- **my_hubs** β List owned or joined hubs. Params: `search`, `hubType`
- **configure_hub_branding** β Save hub branding and custom domains. Params: `hubId` (required), `communitySkinConfig`, `customDomains`
### Venue (auth required)
- **check_in** β Process check-ins, quoted venue payments, or owner approvals. Params: `hubId` (required), `accessMode`, `amount`/`paymentAmount`, `paymentCurrency`, `paymentTxHash`/`paymentTransactionHash`, `paymentChainId`, `latitude`, `longitude`, `promoterCode`, `promoterAddress`, `promoterWallet`, `pendingCheckinId`, `nftTokenId`, `nftContractAddress`, `linkedEventId`, `customerWallet`, `listPending`, `checkinId`, `action`, `description`
- **list_pending_checkins** β List pending venue approvals. Params: `hubId` (required), `limit`, `checkinId`
- **approve_checkin** β Approve, reject, or quote. Params: `checkinId` (required), `action`, `amount`, `currency`, `description`
- **get_venue_info** β Load venue settings, stats, and on-chain venue info. Params: `hubId` (required), `venueAddress`, `chainId`, `includeStats`. `chainId` must come from the explicit param or persisted venue settings.
- **configure_venue** β Update venue rules and sync to MCP. Params: `hubId` (required), `venueWallet`, `ownerAddress`, `chainId`, `verificationMethod`, `requireVenueApproval`, `venueLatitude`, `venueLongitude`, `checkinRadius`, `primaryAccessMode`, `accessModeFree`, `accessModeVenuePayment`, `accessModeNftTicket`, `accessModeNftMembership`, `venuePaymentFlow`, `minCheckAmount`, `fixedPaymentAmount`, `acceptUSDC`, `acceptLONG`, `longSettlement`, `enableVisitorRewards`, `visitorVisitBountyUsd`, `visitorSpendPercentage`, `enablePromoterRewards`, `promoterVisitBountyUsd`, `promoterSpendPercentage`, `dailyCheckinLimit`, `requiredNftCollections`, `braceletEnabled`, `braceletDisplayCurrency`, `braceletAcceptedTokens`, `braceletMinTopup`, `braceletMaxTopup`, `braceletAllowRefunds`, `braceletChargeCategories`, `braceletPoolWallet`
- **get_venue_checkin_history** β Load owner-scoped row-level venue history. Params: `hubId` (required), `limit`, `offset`
- **get_owner_checkin_stats** β Load owner dashboard stats. Params: `days`
- **deposit_venue_funds** β Prepare a venue deposit transaction. Params: `hubId` (required), `amount` (required), `venueWallet`, `ownerAddress`, `chainId`, `promoterAddress`
- **pay_to_venue** β Prepare a customer venue payment transaction. Params: `hubId` (required), `amount` (required), `venueAddress`, `walletAddress`, `promoterAddress`, `chainId`
- **setup_venue_rewards** β Configure rewards. Params: `hubId` (required), `visitBounty`, `visitorSpendPercentage`, `cashbackPercent` (legacy alias)
- **get_bracelet_balance** β Load bracelet balance and recent transactions. Params: `braceletUid`, `eventHubId`
- **link_bracelet** β Link a bracelet to the authenticated attendee. Params: `braceletUid`, `eventHubId`, `displayName`
- **topup_bracelet** β Credit a bracelet after a verified payment. Params: `braceletUid`, `eventHubId`, `amount`, `currency`, `txHash`, `chainId`, `displayAmount`, `displayCurrency`, `conversionRate`
- **charge_bracelet** β Charge a bracelet with staff PIN authorization. Params: `braceletUid`, `eventHubId`, `amount`, `currency`, `staffPin`, `displayAmount`, `displayCurrency`, `conversionRate`, `description`, `chargeCategory`, `idempotencyKey`
- **refund_bracelet** β Refund bracelet balance. Params: `braceletUid`, `eventHubId`, `currency`, `amount`, `refundToAddress`, `idempotencyKey`
- **get_bracelet_event_summary** β Load organizer cashless summary. Params: `eventHubId`
- **withdraw_earnings** β Withdrawal link. Params: `hubId` (required), `currency` (USDC/LONG)
don't have the plugin yet? install it then click "run inline in claude" again.