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

# deploy (Solana)

> Create the account's Swig on a Solana cluster and wait for it to complete.

Creation runs as a sponsored deployment intent. Nothing is signed: the
configured Solana owner is installed as the Swig's root authority.

Creation is one-shot and cannot be repaired. The root authority is
permanent, so a Swig created with the wrong owner permanently strands its
wallet, including anything already sent to it. Each creation is billed to
the integrator's gas sponsorship, which pays the rent and fees.

Without a managed EVM account the Swig is always independent, so `swigId`,
the id it was minted with by `createSolanaSwigId()`, is required. On an
account that also manages EVM, the Swig derived from the EVM account needs
no id; any other Swig still needs its saved one. An id that does not derive
the configured `swig` is refused before anything is sent.

A Swig that already exists resolves `true` without creating anything. Its
root authority is not checked, and a Swig whose root is not the configured
owner cannot be spent by it.

Method on an account instance returned by [`createAccount`](/wallets/custom-signer/sdk-reference/rhinestone-sdk/create-account). Requires a standalone Solana account.

## Usage

```ts theme={null}
import { createSolanaSwigId, solanaDevnet } from '@rhinestone/sdk/solana'

// Once, when provisioning: save `id` and `swig` together.
const { id, swig } = createSolanaSwigId()

const account = await sdk.createAccount({
  solana: { owner: { type: 'ecdsa', account: owner }, swig },
})
await account.deploy('solana', solanaDevnet, { swigId: id })
```

## Parameters

<ParamField path="vm" type="'solana'" required>
  `'solana'`
</ParamField>

<ParamField path="chain" type="SolanaChain" required>
  Solana cluster to create the Swig on (`solanaDevnet` or `solanaMainnet`)
</ParamField>

<ParamField path="options" type="Required<SolanaDeployOptions>" required>
  `swigId`, the 32-byte hex id saved with the configured `swig`; optional only for the Swig derived from a managed EVM account
</ParamField>

## Returns

<ResponseField name="success" type="boolean">
  `true` once the Swig exists
</ResponseField>

## See also

* [createSolanaSwigId](/wallets/custom-signer/sdk-reference/solana/create-solana-swig-id) to mint an independent Swig


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