# Gdex Trending Promotion

> Paid trending-slot promotion — book featured slots on the trending feed and check booking status

- Skill: `gemachdao/gdex-trending-promotion` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gemachdao/gdex-trending-promotion`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gemachdao/gdex-trending-promotion/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: GemachDAO (https://skillmd.com/u/gemachdao)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/gemachdao/gdex-trending-promotion

---


# GDEX: Trending Promotion

Book paid trending slots so a token appears in the platform's promoted
trending feed for a defined period.

## When to Use

- A token creator / marketer wants to buy visibility for their token
- Listing the available trending packages, prices, and durations
- Checking the booking status of a previously-registered slot

## Prerequisites

- `@gdexsdk/gdex-skill` installed
- Authenticated via shared API key or wallet sign-in — see **gdex-authentication**
- For paid bookings: a managed-custody `computedData` payload, OR a
  user wallet able to pay on-chain (depending on backend deployment)

## Backend Endpoints

| Method | Path | Purpose |
|--------|------|---------|
| `GET`  | `/v1/trending/list` | Currently active / booked promoted tokens |
| `GET`  | `/v1/trending/options` | Available slot packages, durations, prices |
| `POST` | `/v1/trending/register` | Register / pay for a trending slot |
| `GET`  | `/v1/trending/booking_status` | Check booking status |

## SDK Usage

```typescript
import { GdexSkill } from '@gdexsdk/gdex-skill';

const skill = new GdexSkill();
skill.loginWithApiKey(process.env.GDEX_API_KEY!);

// 1. List available packages
const options = await skill.getTrendingOptions();

// 2. Register a slot
const booking = await skill.registerTrending({
  tokenAddress: '0x...',
  chain: 8453,
  slot: 'gold',
  durationHours: 24,
  userId: '0xUserControlWallet',
  computedData,                  // when paying via managed custody
});

// 3. Poll status
const status = await skill.getTrendingBookingStatus({
  bookingId: booking.bookingId as string,
});
```

## Notes

- Packages (slots) and pricing are configured server-side and may change.
- The backend returns a `bookingId` from `register` that should be persisted
  for status polling.
- Booking status values are typically `pending_payment`, `active`, or
  `expired`.

