> For the complete documentation index, see [llms.txt](https://developers.tix.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.tix.xyz/getting-started/overview.md).

# How TDP works

The TIX Developer Platform (TDP) is the API for the TIX ticketing protocol. Your backend uses it over HTTPS to discover events and resale listings, buy tickets for your users, and deliver them.

TIX runs on Solana, and TDP is your interface to it. TDP custodies the wallets and builds, signs, and submits the transactions; you work with events, tickets, listings, and purchases.

## Environments

|                | Sandbox                                    | Production                           |
| -------------- | ------------------------------------------ | ------------------------------------ |
| API            | `https://api.sandbox.tix.xyz`              | `https://api.tix.xyz`                |
| Solana cluster | devnet                                     | mainnet                              |
| Inventory      | test events and listings                   | real tickets                         |
| Money          | test USDC, funded by TDP during onboarding | real funds and tickets move          |
| API keys       | created with **Sandbox** selected          | created with **Production** selected |

Sandbox and production are separate hosts with separate keys; a key only works on its own host. Build and test against sandbox. Move to production after onboarding with your TDP representative.

## Wallets and subjects

TDP custodies wallets so neither your users nor your integration handle private keys. Every custodied wallet is identified by four things: your tenant, the environment, the wallet kind, and a **subject**, a string you choose.

* A **user wallet** belongs to one of your customers. The subject is whatever string identifies that customer in your system: a user ID, an email address, an account number. It must mean one entity, and it must not change.
* An **integrator wallet** represents your marketplace. It must be registered as a TIX integrator with a funded treasury before it can buy; TDP sets this up with you during onboarding.
* A **claim wallet** is created per purchase to hold tickets until the recipient claims them through a private claim URL.

Subjects are namespaced to your tenant and environment: the same subject string in another tenant, or in sandbox rather than production, is a different wallet. There is no create-wallet call. Ask for a subject's address (`GET /wallets/users/{subject}/address`) and TDP derives the wallet.

Continue with [Get started](/getting-started/readme.md) to create a sandbox key and make your first request.
