← Articles
Openfort: Solana embedded wallets, Kit signing, and Kora gas logo
solana

Openfort: Solana embedded wallets, Kit signing, and Kora gas

· SEP 16, 2026 ·
Read
Share

Overview at openfort.io/docs/overview. React @openfort/react 2.1.2. Node @openfort/openfort-node 0.12.2. Embedded-wallet showdown stays.

devrels.xyz/a/320

Openfort is wallet infrastructure: embedded wallets, funding, backend wallets, and paymasters. Dashboard is dashboard.openfort.io. Demo is demo.openfort.io. Community: t.me/openfort. Keys sit on OpenSigner, MIT licensed, self-hostable. Openfort is the managed cloud on top.

On Solana the embedded wallet is a standard Ed25519 keypair. Gasless is Kora sponsorship, not account abstraction. The comparison piece stays: embedded wallet showdown.

React: SVM config

Package @openfort/react 2.1.2. Set chainType: ChainTypeEnum.SVM. Solana does not use wagmi. No WagmiProvider, no OpenfortWagmiBridge. Cluster is required: mainnet-beta, devnet, or testnet. Commitment default is confirmed.

tsx
import { ChainTypeEnum, OpenfortProvider } from "@openfort/react"

<OpenfortProvider
  publishableKey="YOUR_OPENFORT_PUBLISHABLE_KEY"
  walletConfig={{
    shieldPublishableKey: "YOUR_SHIELD_PUBLISHABLE_KEY",
    chainType: ChainTypeEnum.SVM,
    solana: {
      cluster: "devnet",
      rpcUrls: { devnet: "https://api.devnet.solana.com" },
      commitment: "confirmed",
    },
    connectOnLogin: true,
  }}
>
  {children}
</OpenfortProvider>

Sign with Kit 6

Custom sends use @solana/kit 6 and @solana-program/system. Wrap provider.signTransaction({ messageBytes }) in a Kit TransactionSigner. If the signature is 65 bytes, trim to 64 for Ed25519. Hook: useSolanaEmbeddedWallet from @openfort/react/solana. <OpenfortButton /> already has a Send action for native SOL, with an optional gasless toggle.

Gasless on Solana

Openfort Solana Paymaster integrates @solana/kora. Openfort is the fee payer. Users do not need SOL. In Dashboard, Gas sponsorship, add a policy with sponsorSolTransaction. Modes: app pays (project covers SOL), or user pays in a supported SPL token (Kora prices at request time). Point KoraClient at https://api.openfort.io/rpc/solana/{cluster} with the publishable key.

Sponsorship is project-scoped. No per-request policyId (unlike Ethereum). Kora must attach the fee payer and payment instructions before the user signs. Do not swap the fee payer after the user has signed. Maintained sample: solana-headless quickstart.

Backend wallets

@openfort/openfort-node 0.12.2. Secret key plus walletSecret. Create a Solana backend account with openfort.accounts.solana.backend.create(). create() always returns an EOA. If create fails with Authentication failed, the wallet secret is wrong, not the API key.

typescript
import Openfort from "@openfort/openfort-node"

const openfort = new Openfort(process.env.OPENFORT_SECRET_KEY!, {
  walletSecret: process.env.OPENFORT_WALLET_SECRET!,
})

const account = await openfort.accounts.solana.backend.create()
console.log(account.id, account.address)

Resources

Keep reading

Get new articles in your inbox

Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.

Openfort: Solana embedded wallets, Kit signing, and Kora gas | devrels.xyz