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

# Solana Exact Payment Scheme

> SPL token transfer payment handlers for Solana

# exact

## Type Aliases

### Wallet

> **Wallet** = `object`

Defined in: [packages/payment-solana/src/exact/client.ts:50](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L50)

#### Properties

##### buildTransaction()?

> `optional` **buildTransaction**: (`instructions`, `lifetimeConstraint`) => `Promise`\<`Transaction`>

Defined in: [packages/payment-solana/src/exact/client.ts:53](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L53)

###### Parameters

###### instructions

readonly `Instruction`\[]

###### lifetimeConstraint

`WalletLifetimeConstraint`

###### Returns

`Promise`\<`Transaction`>

##### network

> **network**: `string` | [`SolanaCAIP2Network`](/api/info.src.Namespace.solana#solanacaip2network)

Defined in: [packages/payment-solana/src/exact/client.ts:51](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L51)

##### partiallySignTransaction()?

> `optional` **partiallySignTransaction**: (`tx`) => `Promise`\<`Transaction`>

Defined in: [packages/payment-solana/src/exact/client.ts:57](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L57)

###### Parameters

###### tx

`Transaction`

###### Returns

`Promise`\<`Transaction`>

##### publicKey

> **publicKey**: `Address`

Defined in: [packages/payment-solana/src/exact/client.ts:52](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L52)

##### sendTransaction()?

> `optional` **sendTransaction**: (`tx`) => `Promise`\<`string`>

Defined in: [packages/payment-solana/src/exact/client.ts:58](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L58)

###### Parameters

###### tx

`Transaction`

###### Returns

`Promise`\<`string`>

## Functions

### createFacilitatorHandler()

> **createFacilitatorHandler**(`network`, `rpcInput`, `feePayerSignerInput`, `mintInput`, `config?`): `Promise`\<`FacilitatorHandler`>

Defined in: [packages/payment-solana/src/exact/facilitator.ts:209](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/facilitator.ts#L209)

Creates a facilitator handler for the Solana exact payment scheme.

The handler validates incoming payment transactions, signs them with the
fee payer keypair, and submits them to the Solana network.

#### Parameters

##### network

Solana network identifier (cluster name, CAIP-2 string, or SolanaCAIP2Network object)

`string` | [`SolanaCAIP2Network`](/api/info.src.Namespace.solana#solanacaip2network)

##### rpcInput

Solana RPC client

`string` | `Rpc`\<`SolanaRpcApiForTestClusters`>

##### feePayerSignerInput

Keypair or signer for paying transaction fees

`KeyPairSigner` | \{ `publicKey`: \{ `toBase58`: `string`; }; `secretKey`: `Uint8Array`; }

##### mintInput

SPL token mint public key

`Address` | \{ `toBase58`: `string`; }

##### config?

`FacilitatorOptions`

Optional configuration for retries, fees, and hooks

#### Returns

`Promise`\<`FacilitatorHandler`>

A FacilitatorHandler for processing Solana exact payments

***

### createPaymentHandler()

> **createPaymentHandler**(`wallet`, `mintInput`, `rpcInput?`, `options?`): `PaymentHandler`

Defined in: [packages/payment-solana/src/exact/client.ts:216](https://github.com/faremeter/faremeter/blob/main/packages/payment-solana/src/exact/client.ts#L216)

Creates a payment handler for the Solana exact payment scheme.

The handler builds SPL token transfer transactions that can be signed
and submitted by the client to fulfill x402 payment requirements.

#### Parameters

##### wallet

[`Wallet`](#wallet)

Wallet providing signing capabilities

##### mintInput

SPL token mint address

`Address` | \{ `toBase58`: `string`; }

##### rpcInput?

Optional Solana RPC client for fetching blockhash and mint info

`string` | `Rpc`\<`SolanaRpcApiForTestClusters`>

##### options?

`CreatePaymentHandlerOptions`

Optional configuration for token address and features

#### Returns

`PaymentHandler`

A PaymentHandler function for use with the x402 client


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.