> ## Documentation Index
> Fetch the complete documentation index at: https://docs.altude.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Crossmint

> Pair Crossmint's embedded wallet platform with Altude Gas Station to deliver gasless Solana transactions.

[Crossmint](https://crossmint.com) provides wallets that users can provision from email or OAuth — no extensions, no mnemonics. Crossmint handles authentication and key custody on the wallet side. Gas Station handles fee sponsorship and relay: once the user's wallet has signed the transaction, Gas Station submits it to Solana without charging gas.

***

## How the integration works

Crossmint and Gas Station operate on separate layers:

| What Crossmint handles                       | What Gas Station handles                 |
| -------------------------------------------- | ---------------------------------------- |
| User authentication (email, OAuth)           | Fetching the sponsored fee payer address |
| Embedded wallet provisioning                 | Validating the signed transaction        |
| Prompting the user to sign a transaction     | Relaying the transaction to Solana       |
| Returning the signed transaction to your app | Sponsoring the Solana transaction fee    |

Your app builds a transaction using the fee payer returned by `GET /api/transaction/config`. Crossmint signs it. Gas Station relays it. The user never pays gas.

```mermaid theme={null}
%%{init: {'theme': 'base', 'themeVariables': {'fontFamily': 'Inter, ui-sans-serif, sans-serif', 'fontSize': '13px', 'primaryColor': '#0d2233', 'primaryTextColor': '#e2e8f0', 'primaryBorderColor': '#3DBFF2', 'lineColor': '#3DBFF2', 'edgeLabelBackground': 'transparent', 'clusterBkg': 'transparent'}}}%%
flowchart LR
    A([Your App]) -->|sign| B([Gas Station API])
    B -->|relay + fee| C([Solana Network])

    style A fill:#0d2233,color:#e2e8f0,stroke:#3DBFF2,stroke-width:1.5px
    style B fill:#3DBFF2,color:#071922,stroke:#049DD9,stroke-width:1.5px
    style C fill:#049DD9,color:#ffffff,stroke:#037dac,stroke-width:1.5px
    linkStyle default stroke:#3DBFF2,stroke-width:1.5px,fill:none
```

Crossmint loads as an iframe inside your app and handles authentication and signing in that context. From the relay perspective, your app is the origin.

***

## Demo

The Crossmint demo is a working React application that walks through the full gasless transaction flow:

<Card title="altude-crossmint-gas-station-demo" icon="github" href="https://github.com/AltudePlatform/altude-crossmint-gas-station-demo">
  Clone the demo to run a complete Crossmint + Gas Station integration on Solana devnet.
</Card>

The demo covers:

* **Authentication** — Crossmint handles sign-in and wallet provisioning via its React SDK
* **Wallet provisioning** — Users get a Solana wallet automatically on first sign-in
* **Transaction building** — `SystemProgram.createAccount` with Altude as fee payer
* **Gasless relay** — Signed transactions submitted through `POST /api/Account/create` and `POST /api/Transaction/send`
* **Transaction history** — Persistent history with Solscan explorer links
* **Mock fallback** — Runs without an Altude API key, simulating the full flow

***

## Quick setup

### 1. Get your credentials

You need two things before running the demo:

* **Crossmint Client API Key** — from [crossmint.com/console](https://www.crossmint.com/console). Create a project and copy your client API key.
* **Altude API key** — from [app.altude.so](https://app.altude.so). Create an application and copy the devnet key.

### 2. Clone and configure

```bash theme={null}
git clone https://github.com/AltudePlatform/altude-crossmint-gas-station-demo.git
cd altude-crossmint-gas-station-demo
npm install
cp .env.example .env
```

Open `.env` and set your credentials:

```bash theme={null}
# Altude — https://app.altude.so
VITE_ALTUDE_API_KEY_DEVNET=your-devnet-key-here

# Crossmint — https://crossmint.com/console
VITE_CROSSMINT_APIKEY=ck_your-client-api-key-here
```

### 3. Run

```bash theme={null}
npm run dev
```

Open [http://localhost:5000](http://localhost:5000). Sign in with Crossmint, create a transaction, and watch Gas Station relay it without the user paying gas.

***

## Adapter pattern

The demo isolates the Crossmint integration in `src/wallet/crossmint.tsx`. The rest of the app — including Gas Station relay — is provider-agnostic. To see how the adapter interface works, or to adapt this for a different provider, see the [integration overview](/integrations/overview#integration-patterns).

***

## Related

<CardGroup cols={2}>
  <Card title="Integration overview" icon="book" href="/integrations/overview">
    Architecture, custody model, and how Gas Station fits alongside any wallet provider.
  </Card>

  <Card title="Gas Station API reference" icon="code" href="/api-reference/introduction">
    Full reference for `/api/Account/create`, `/api/Transaction/send`, and other endpoints.
  </Card>
</CardGroup>
