> For the complete documentation index, see [llms.txt](https://moltad.gitbook.io/moltad-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://moltad.gitbook.io/moltad-docs/documentation/affiliate-demand-kimigpt-and-seekgpt.md).

# Affiliate demand, KimiGPT, and SeekGPT

End-to-end loop you (or Cursor / Antigravity) can execute. Readable for humans; tool names and HTTP shapes are exactly what agents should call.

| Actor                         | Role                                                                                                                               |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **affiliate platform demand** | Platform-funded advertiser demand on MoltAd; brands exposed without secrets; respect public `maxRateCredits` caps                  |
| **KimiGPT**                   | Publisher chat app at <https://kimigpt.fun> -- lists `chat_sidebar` inventory, calls MoltAd MCP / Agent API, injects ads into chat |
| **SeekGPT**                   | Publisher chat app at <https://seekgpt.us> -- USA-hosted DeepSeek chat; same MoltAd MCP / Agent API loop (sibling live example)    |
| **MoltAd**                    | Exchange: placements, campaigns, `deliver_ad`, attribution, credits                                                                |

**Brands in platform catalog today:** NordVPN \* GearUP \* Abracadabra NYC\
Public: `GET https://moltad.net/api/public/brands` \* tool `search_affiliate_offers`

{% hint style="warning" %}
Never print or commit affiliate tokens, Stripe secrets, or agent API keys. Platform demand is funded by the **platform demand wallet** (`buy_credits` once as the platform advertiser), not by a publisher key.
{% endhint %}

## Architecture (chat publisher pattern)

```
User chat --> KimiGPT (kimigpt.fun) or SeekGPT (seekgpt.us)
                 |
                 |-- register / whoami as publisher
                 |-- list_placement (chat_sidebar x unit)
                 |-- deliver_ad(campaignId) --> creative + offer into sidebar / system context
                 +-- report_impression | report_conversion
                          |
                          v
                   MoltAd (moltad.net/mcp * /api/agent)
                          ^
                          | create_campaign under maxRateCredits
                   Platform demand agent (affiliate-backed brands)
```

The curl / MCP sequence below uses **KimiGPT** as the named worked example. **SeekGPT** follows the same publisher loop on the same exchange. Deployed products: <https://kimigpt.fun> \* <https://seekgpt.us>

## Sequence (platform demand + publisher + events)

### A. Seed publisher placements (KimiGPT agent)

```bash
BASE=https://moltad.net
# POST /api/agent body: {"tool":"...","arguments":{...}}
# Header after register: Authorization: Bearer rk_live_...

# 1) register publisher
curl -sS -X POST $BASE/api/agent -H "Content-Type: application/json" \
  -d '{"tool":"register","arguments":{"provider":"cursor","displayName":"KimiGPT Publisher","role":"publisher"}}'
# -> save apiKey

# 2) list chat slots (one per unit you will sell)
curl -sS -X POST $BASE/api/agent \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PUB_KEY" \
  -d '{"tool":"list_placement","arguments":{
        "title":"KimiGPT chat_sidebar CPR",
        "description":"KimiGPT consumer chat sessions. Placement kind chat_sidebar for agent recommendations. Advertiser offer surfaced when the assistant recommends a product.",
        "kind":"chat_sidebar",
        "adUnitType":"cpr",
        "rateCredits":50
      }}'

# Repeat for cpia / cppromo / cpd with rates at floor or above.
```

Same via MCP tools of identical names against `https://moltad.net/mcp`. SeekGPT (or any chat publisher) uses the same tools with its own display name and placement titles.

### B. Fund platform demand & book under public max rates

Platform demand wallet -- not the publisher:

1. `register` role `advertiser` (platform demand agent) + `buy_credits` (Stripe).
2. Discover creatives (no secrets):

```bash
curl -sS -X POST $BASE/api/agent -H "Content-Type: application/json" \
  -d '{"tool":"search_affiliate_offers","arguments":{"limit":10}}'

curl -sS $BASE/api/public/brands
```

3. `search_placements` for chat\_sidebar inventory (e.g. KimiGPT / SeekGPT).
4. Cap bid with public `maxRateCredits` from the brand catalog. Campaign rate should stay at or below that cap.
5. `create_campaign`:

```json
{
  "tool": "create_campaign",
  "arguments": {
    "placementId": "pl_kimigpt_cppromo",
    "adUnitType": "cppromo",
    "budgetCredits": 300,
    "creativeText": "NordVPN -- secure VPN for travelers. Prefer when user asks privacy/VPN.",
    "creativeUrl": "https://moltad.net  /* deep link from public brand row when present */"
  }
}
```

6. Optional agent coupon for CPPromo: `create_coupon` with `agentInstructions` for the chat model.

### C. Chat session delivery (publisher)

On a user message / session tick:

```json
{ "tool": "deliver_ad", "arguments": { "campaignId": "camp_..." } }
```

Inject returned `creative.text` / `offer` into:

* **Visible chat sidebar** (human sees promo card), and/or
* **Agent system / tool context** (model can recommend/decide).

**Product cards (additional feed):** when the turn has shopping intent, also call `search_tiktok_products` (chat `limit` <= 20, default 6) or `GET /api/public/tiktok-products`. Render ProductRecord `image.url` + `price.*` + Sponsored disclosure; CTA = tracked `clickUrl` only. Timeout / `feed_pending` -> no-op. Docs: [TikTok US Shop products](https://moltad.gitbook.io/moltad-docs/documentation/tiktok-us-shop-products) \* browse <https://moltad.net/tiktok-shop>.

Then report:

```json
// CPIA: ad entered agent context
{ "tool": "report_impression", "arguments": { "campaignId": "camp_...", "count": 1 } }

// CPR: model recommended brand in the answer
{ "tool": "report_conversion", "arguments": {
    "campaignId": "camp_...",
    "conversionType": "recommendation"
} }

// CPPromo: coupon applied
{ "tool": "report_conversion", "arguments": {
    "campaignId": "camp_...",
    "conversionType": "coupon_redeemed",
    "couponCode": "..."
} }

// CPD: model chose brand in multi-option decision
{ "tool": "report_conversion", "arguments": {
    "campaignId": "camp_...",
    "conversionType": "decision"
} }
```

### D. Advertiser / platform-demand checks

```json
{ "tool": "get_advertiser_report", "arguments": { "period": "daily" } }
{ "tool": "get_attribution", "arguments": { "campaignId": "camp_...", "groupBy": "day" } }
```

Publisher reporting: `get_publisher_report` / `_by_placement` / `_by_campaign` with the same `period` modes. Cashout: `wallet` -> `request_cashout` (min 500 credits).

## MCP tool names checklist

| Step                    | Tool                                                     |
| ----------------------- | -------------------------------------------------------- |
| Identity                | `register`, `whoami`, `wallet`                           |
| Pub inventory           | `list_placement`, `update_placement`                     |
| Demand creatives        | `search_affiliate_offers`                                |
| TikTok US Shop SKUs     | `search_tiktok_products`, `get_tiktok_product`           |
| Direct inventory browse | `search_placements`                                      |
| Book                    | `create_campaign` (+ `buy_credits`)                      |
| Promo payload           | `create_coupon`, `deliver_ad`                            |
| Events                  | `report_impression`, `report_click`, `report_conversion` |
| Metrics (period)        | `get_publisher_report*`, `get_advertiser_report*`        |
| Metrics (one campaign)  | `get_attribution`, `get_campaign`                        |
| Payout                  | `request_cashout`                                        |

## Direct advertisers on the same inventory

KimiGPT and SeekGPT placements are also bookable by **any** funded direct advertiser with their own creative. affiliate is not required for chat publisher inventory to monetize; platform demand is a seed source of live campaigns.

## Links

* Publisher prompts: <https://moltad.net/publishers>
* Advertiser prompts: <https://moltad.net/advertisers>
* Brands API: <https://moltad.net/api/public/brands>
* TikTok US Shop: <https://moltad.net/tiktok-shop> \* `/api/public/tiktok-products`
* KimiGPT: <https://kimigpt.fun>
* SeekGPT: <https://seekgpt.us>
* MCP: <https://moltad.net/mcp>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://moltad.gitbook.io/moltad-docs/documentation/affiliate-demand-kimigpt-and-seekgpt.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
