# @integraledger/lcp/x402-exact-solana

> The exports of @integraledger/lcp/x402-exact-solana.

Source: https://lcp.integraledger.com/reference/api/x402-exact-solana

## Interfaces

### SvmChoice

#### Properties

| Property             | Type                                                             |
| -------------------- | ---------------------------------------------------------------- |
|  `accepted`          | [`PaymentRequirements`](https://lcp.integraledger.com/reference/api/x402#paymentrequirements) |
|  `computeUnitLimit?` | `number`                                                         |
|  `computeUnitPrice?` | `bigint`                                                         |
|  `decimals`          | `number`                                                         |
|  `payer`             | `string`                                                         |
|  `recentBlockhash`   | `string`                                                         |
|  `required`          | [`PaymentRequired`](https://lcp.integraledger.com/reference/api/x402#paymentrequired)         |
|  `tokenProgram`      | `string`                                                         |

***

### SvmPaymentPayload

A payment on this pairing: the base64 partially signed versioned transaction.

#### Properties

| Property              | Type                                                             |
| --------------------- | ---------------------------------------------------------------- |
|  `accepted`           | [`PaymentRequirements`](https://lcp.integraledger.com/reference/api/x402#paymentrequirements) |
|  `extensions?`        | `object`                                                         |
|  `payload`            | `object`                                                         |
| `payload.transaction` | `string`                                                         |
|  `resource?`          | `object`                                                         |
| `resource.url`        | `string`                                                         |
|  `x402Version`        | `2`                                                              |

***

### SvmUnsigned

What the payer signs, and how its signature completes the payment.

#### Type Parameters

| Type Parameter | Default type                              |
| -------------- | ----------------------------------------- |
| `P`            | [`SvmPaymentPayload`](#svmpaymentpayload) |

#### Properties

| Property          | Type               |
| ----------------- | ------------------ |
|  `request`        | `object`           |
| `request.kind`    | `"solana-message"` |
| `request.message` | `Uint8Array`       |

#### Methods

##### complete()

> **complete**(`signature`): [`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | `P`

A 64-byte Ed25519 signature by the payer.

###### Parameters

| Parameter   | Type         |
| ----------- | ------------ |
| `signature` | `Uint8Array` |

###### Returns

[`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | `P`

## Variables

### exactSvm

> `const` **exactSvm**: `Readonly`\<\{ `advertise`: (`doc`, `h`, `link`, `offer`, `agreementUrl?`) => [`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | [`PaymentRequired`](https://lcp.integraledger.com/reference/api/x402#paymentrequired); `bound`: (`presented`) => `Promise`\<`` `0x${string}` `` | [`Refusal`](https://lcp.integraledger.com/reference/api#refusal)>; `build`: (`c`, `h`) => `Promise`\<[`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | [`SvmUnsigned`](#svmunsigned)\<[`SvmPaymentPayload`](#svmpaymentpayload)>>; `carrier`: `"extra.memo"`; `claims`: `boolean`; `id`: `"x402/exact/solana"`; `pattern`: [`LcpPattern`](https://lcp.integraledger.com/reference/api/x402#lcppattern); `read`: (`doc`) => [`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | [`X402Read`](https://lcp.integraledger.com/reference/api/x402#x402read); `recover`: (`ref`, `reader`) => `Promise`\<`` `0x${string}` `` | [`Refusal`](https://lcp.integraledger.com/reference/api#refusal)>; `reference`: (`presented`) => `Promise`\<[`Refusal`](https://lcp.integraledger.com/reference/api#refusal) | `Omit`\<[`SvmRef`](https://lcp.integraledger.com/reference/api/svm#svmref), `"fromSlot"`>>; `status`: (`ref`, `reader`) => `Promise`\<[`SvmStatus`](https://lcp.integraledger.com/reference/api/svm#svmstatus)>; `tie`: (`accepts`, `request`) => \[`"x402"`, \{ `accepts`: readonly [`PaymentRequirements`](https://lcp.integraledger.com/reference/api/x402#paymentrequirements)\[]; `request`: [`RequestCommitment`](https://lcp.integraledger.com/reference/api/x402#requestcommitment); }]; `unplaced`: (`option`) => [`PaymentRequirements`](https://lcp.integraledger.com/reference/api/x402#paymentrequirements); }>

## Functions

### pairingOf()

> **pairingOf**(`option`): `"x402/exact/solana"` | `undefined`

This pairing's id for an option it can pay, or undefined.

#### Parameters

| Parameter | Type                                                             |
| --------- | ---------------------------------------------------------------- |
| `option`  | [`PaymentRequirements`](https://lcp.integraledger.com/reference/api/x402#paymentrequirements) |

#### Returns

`"x402/exact/solana"` | `undefined`
