diff --git a/blog/2026-07-05-solana-paymaster/index.md b/blog/2026-07-05-solana-paymaster/index.md
new file mode 100644
index 0000000..b5bdd0f
--- /dev/null
+++ b/blog/2026-07-05-solana-paymaster/index.md
@@ -0,0 +1,56 @@
+---
+slug: solana-paymaster
+title: "Solana Paymaster: Pay Gas in USDT"
+description: Candide now supports Solana. Send SPL transfers from accounts that hold zero SOL, with fees paid in USDT, through a paymaster built on Kora.
+authors: [marc]
+tags: [solana, paymaster, kora, usdt, gasless, wdk]
+---
+
+# Solana Paymaster: Pay Gas in USDT
+
+We just shipped our first product outside the EVM. The Solana Paymaster lets accounts that hold zero SOL send SPL token transfers, with the network fee paid in USDT inside the same transaction.
+
+
+
+## The same problem, one more chain
+
+We've spent years on this problem for EVM chains: users hold stablecoins, not gas tokens. On Solana it's the same story with different names. An account holding USDT but no SOL can't move its own money, and asking a stablecoin user to go buy SOL first is where most wallets lose them.
+
+Our EVM answer is the ERC-4337 token paymaster. Our Solana answer is a paymaster built on [Kora](https://solana.com/docs/tools/kora), Solana Foundation's open fee payer standard. The paymaster cosigns each transaction as its fee payer, fronts the SOL for fees and rent, and collects the equivalent in USDT within the same transaction. Because it speaks Kora's JSON-RPC protocol, any Kora client works with it. No proprietary SDK required.
+
+## One config object, one call
+
+The paymaster works with any Kora client. If you're using [Wallet Development Kit (WDK)](https://docs.wallet.tether.io) by Tether, the whole flow is one config object and one call:
+
+```ts
+import { WalletAccountSolanaGasless } from '@tetherto/wdk-wallet-solana-gasless'
+
+const wallet = new WalletManagerSolanaGasless(seedPhrase, {
+ provider: rpcUrl,
+ paymasterUrl, // your Candide Solana Paymaster endpoint
+ paymasterAddress,
+ paymasterToken: { address: USDT_MINT },
+ transferMaxFee: 1_000000n, // abort if the fee exceeds 1 USDT
+})
+
+const account = await wallet.getAccount(0)
+await account.transfer({ token: USDT_MINT, recipient, amount: 100000n })
+```
+
+## Try it
+
+- [Guide: Pay Gas in USDT on Solana](/wallet/guides/pay-gas-in-usdt-solana/)
+- [Runnable example](https://github.com/candidelabs/tether-wdk-candide/tree/main/solana-gasless/01-usdt-gas)
+- Get your Solana Paymaster endpoint at [dashboard.candide.dev](https://dashboard.candide.dev)
+
+## Where this is going
+
+Mainnet USDT is the only fee token today. Sponsored transactions, where you cover fees for your users the way InstaGas does on EVM chains, are next.
+
+If you're building a stablecoin product on Solana, try it and tell us what breaks.
+
+~ Marc
+
+---
+
+*P.S. If you want to see the whole flow including fee quoting and confirmation, it's on [GitHub](https://github.com/candidelabs/tether-wdk-candide/tree/main/solana-gasless/01-usdt-gas).*
diff --git a/docs/wallet/api/supported-networks.mdx b/docs/wallet/api/supported-networks.mdx
index 42a15d1..dcaac8c 100644
--- a/docs/wallet/api/supported-networks.mdx
+++ b/docs/wallet/api/supported-networks.mdx
@@ -174,6 +174,14 @@ export const exclusiveChainList = [
### Testnet
+## Solana
+
+The Solana Paymaster covers transaction fees and collects them in USDT, so accounts never need to hold SOL. It runs [Kora](https://solana.com/docs/tools/kora), the Solana Foundation's open fee-payer standard. See the [guide](/wallet/guides/pay-gas-in-usdt-solana/).
+
+| Network | Service | Fee token |
+|---------|---------|-----------|
+| Solana Mainnet | Solana Paymaster (Kora) | USDT |
+
## Exclusive Networks
These networks are available as an add-on by request. Don't see yours? We can evaluate support for any EVM-equivalent chain on demand. [Contact us](https://t.me/heymarcopolo) to request access.
diff --git a/docs/wallet/intro.mdx b/docs/wallet/intro.mdx
index dc020c5..dce9e33 100644
--- a/docs/wallet/intro.mdx
+++ b/docs/wallet/intro.mdx
@@ -2,7 +2,7 @@
title: Candide Developer Platform
description: Complete toolkit for building user-friendly Ethereum applications with Smart Accounts. Features ERC-4337 and EIP-7702 support, gas abstraction, chain abstraction, social login, and cross-chain deposit routing
image: /img/posters/atelier-meta.png
-keywords: [erc-4337, account abstraction, paymaster, bundler, Smart Wallets, chain abstraction, forwarding address]
+keywords: [erc-4337, account abstraction, paymaster, bundler, Smart Wallets, chain abstraction, forwarding address, solana, solana paymaster]
sidebar_position: 1
---
@@ -55,41 +55,30 @@ export const GETTING_STARTED_ITEMS = [
"Upgrade existing EOAs to smart accounts with Calibur (passkeys, multi-key) or Simple Account",
route: "/wallet/guides/getting-started-calibur",
},
+ {
+ title: "Pay Gas in USDT on Solana",
+ description:
+ "Send SPL transfers from accounts with zero SOL through the Solana Paymaster, built on Kora",
+ route: "/wallet/guides/pay-gas-in-usdt-solana",
+ },
];
- Every page has a Copy Page button in the toolbar. Paste it directly into Claude or ChatGPT with a pre-filled prompt. For agents and IDE integrations like Claude Code or Cursor, point them to /llms.txt for a full index of the docs.
+ Every page has a Copy Page button in the toolbar. Paste it directly into Claude or ChatGPT with a pre-filled prompt. For agents and IDE integrations like Claude Code or Cursor, point them to /llms.txt for a full index, or install the Candide agent skills.
-## Core Features
-
-*Smart accounts are programmable contracts, unlocking capabilities impossible with traditional EOAs.*
-
-### Gas Abstraction
-- Gasless transactions: [Sponsor user fees](/wallet/guides/send-gasless-tx/) with flexible rules and policies
-- ERC-20 gas payments: Let users [pay gas in any token](/wallet/guides/pay-gas-in-erc20/) (USDC, DAI, etc.). No ETH required
+## Look It Up
-### Modern Authentication
-- Passkey integration: [Onchain WebAuthn](/wallet/plugins/passkeys/) support for biometric login. No seed phrases
-- Social login: [Email and OAuth](/wallet/guides/authentication/#social--email) integration
+Reference material for when you're mid-integration and need an answer, not a tutorial.
-### Chain Abstraction
-- Sign once, execute on every chain: one signature authorizes [UserOperations across every chain](/wallet/guides/chain-abstraction-overview/) you target
-- Same account everywhere: one address on every EVM network where Safe is deployed
-
-### Advanced Transactions
-- Batch operations: [Execute multiple transactions](/wallet/guides/getting-started/) atomically
-- Spending controls: [Set limits and policies](/wallet/plugins/allowance) for subscriptions and recurring payments
-
-### Security
-- Account recovery: [Social Recovery](/wallet/plugins/recovery-with-guardians) or [traditional](/wallet/recovery/auth-api/) recovery options
-- Multi-signature: A single account controlled with [multiple signatures](/wallet/guides/multisig/)
-
-## Onboarding & Deposits
-
-Users don't always arrive on the chain your app runs on. [Forwarding Address](/forwarding-address/overview/) gives each user one deposit address that accepts funds from any supported chain and routes them automatically to the destination wallet. Built for onramps, exchange withdrawals, and payment flows.
+| Reference | Concepts |
+|-----------|----------|
+| [Bundler RPC methods](/wallet/bundler/rpc-methods/) | [Account Abstraction](/account-abstraction/intro/) |
+| [Paymaster RPC methods](/wallet/paymaster/rpc-methods/) | [ERC-4337 overview](/wallet/bundler/erc-4337-intro/) |
+| [Bundler error codes](/wallet/technical-reference/bundler-error-codes/) | [Chain abstraction](/wallet/guides/chain-abstraction-overview/) |
+| [Supported networks](/wallet/api/supported-networks/) | [Account recovery](/wallet/recovery/overview/) |
## Developer Tools
@@ -98,6 +87,7 @@ Users don't always arrive on the chain your app runs on. [Forwarding Address](/f
| [AbstractionKit SDK](/wallet/abstractionkit/introduction/) | TypeScript library for building and sending UserOperations. First-class support for Safe and EIP-7702 accounts. |
| [Bundler](/wallet/bundler/rpc-methods/) | ERC-4337 compliant nodes for submitting UserOperations on all major EVM chains |
| [Paymaster](/wallet/paymaster/rpc-methods/) | Sponsor gas or accept ERC-20 token payments with configurable policies |
+| [Solana Paymaster](/wallet/guides/pay-gas-in-usdt-solana/) | Gasless Solana transactions with fees collected in USDT. Built on Kora |
| [InstaGas](/instagas/overview/) | No-code dashboard to set gas sponsorship rules. No Solidity required |
| [Forwarding Address](/forwarding-address/overview/) | One deposit address per user that routes funds from any supported chain to the destination wallet |
| [Account Recovery](/wallet/recovery/overview/) | Email/SMS recovery with an alert system and automatic on-chain execution |
@@ -106,7 +96,7 @@ Access [Candide's Dashboard](https://dashboard.candide.dev) to get API keys and
## Chains Supported
-Candide is available on all major EVM equivalent networks. Reach out if you need a network added.
+Candide is available on all major EVM equivalent networks, plus Solana through the [Solana Paymaster](/wallet/guides/pay-gas-in-usdt-solana/). Reach out if you need a network added.
import { NetworkList } from "/src/components/NetworkList";
@@ -116,9 +106,4 @@ See the full list of [supported networks](/wallet/api/supported-networks/), incl
## Support & Feedback
-- Join our [Discord](https://discord.gg/7R4g9XcxDQ)
-- Twitter: [@candidelabs](https://twitter.com/candidelabs)
-- Email: team@candidelabs.com
-- Telegram: [@heymarcopolo](https://t.me/heymarcopolo)
-
-We have night owls and early birds on the team. Expect a reply regardless of your timezone.
+Find us on [Discord](https://discord.gg/7R4g9XcxDQ), [Twitter](https://twitter.com/candidelabs), [Telegram](https://t.me/heymarcopolo), or at team@candidelabs.com. We have night owls and early birds on the team. Expect a reply regardless of your timezone.
diff --git a/docusaurus.config.js b/docusaurus.config.js
index fcd7da4..e5a245d 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -212,9 +212,9 @@ const config = {
},
image: 'img/posters/atelier-meta.png',
announcementBar: {
- id: 'new-chains-somnia-hyperevm-tempo',
+ id: 'solana-paymaster-launch',
content:
- 'Now live on Somnia, HyperEVM, and Tempo. See all supported networks',
+ 'Pay gas in USDT on Solana is live. Read the guide',
backgroundColor: '#fce7f0',
textColor: '#1a1a1a',
isCloseable: true,
diff --git a/static/img/networks/solana.svg b/static/img/networks/solana.svg
new file mode 100644
index 0000000..1ea2063
--- /dev/null
+++ b/static/img/networks/solana.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file