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

# Wallet Compatibility

> Which Stellar wallets support x402 today, what interface they need to expose, and how the client SDK detects them.

x402 on Stellar requires that a wallet can sign **authorization entries** on a Soroban transaction, not just the full transaction envelope. This is the same interface Soroban dApps use for scoped auth; not every Stellar wallet supports it yet.

## Supported wallets

| Wallet    | Platform           | Auth-entry signing | Notes                                 |
| --------- | ------------------ | ------------------ | ------------------------------------- |
| Freighter | Browser extension  | Yes                | Reference implementation for the SDK. |
| Albedo    | Web modal          | Yes                |                                       |
| Hana      | Mobile             | Yes                |                                       |
| HOT       | Browser + mobile   | Yes                |                                       |
| Klever    | Mobile             | Yes                |                                       |
| OneKey    | Hardware + browser | Yes                | Requires firmware >= 4.7 for Soroban. |

## The required interface

The SDK expects a `signAuthEntries(entries: xdr.SorobanAuthorizationEntry[]): Promise<xdr.SorobanAuthorizationEntry[]>` method on the wallet adapter. In-browser wallets typically expose it on `window.<wallet>`; SDK adapters wrap it in a common shape.

```typescript theme={null}
interface StellarWalletAdapter {
  getPublicKey(): Promise<string>;
  signAuthEntries(entries: xdr.SorobanAuthorizationEntry[], opts: { network: string }): Promise<xdr.SorobanAuthorizationEntry[]>;
}
```

## Detecting a wallet

```typescript theme={null}
import { detectWallets } from "@stellarx402/client";

const available = await detectWallets();
// [{ name: "Freighter", ready: true }, { name: "Albedo", ready: true }]
```

## Signing raw transactions (not enough)

A wallet that can only sign a whole transaction envelope cannot be used with x402. The scoped auth signature is the security property that keeps the facilitator from altering the amount or destination; giving up scope defeats the point.

## Adding a new wallet

1. Implement the adapter interface.
2. PR it to `@stellarx402/wallets`.
3. Include a Playwright test that goes end-to-end through the buyer quickstart.
