Built on Kora Solana Foundation's official fee-payer

Gasless payments on Solana.
In one endpoint.

Your users pay in USDC — never in SOL. We cover the network fee in the same atomic transaction. No cards, no SOL balances, no complex onboarding. Just web3 the way it should feel.

Read the docs →

Live endpoint

https://mainnet.kora-nodes.com
USDC · USDT Dynamic fee · fractions of a cent Devnet + mainnet

How it works

Your app sends the tx

Build a normal Solana transaction.

We pay the SOL gas + account rent

The relayer fronts the network cost.

User is charged in USDC

Reimbursed to the relayer in the same transaction.

All in one atomic transaction.

Why this relayer

Users never touch SOL

The sender pays everything in stablecoin: no gas token, no bank card, no top-ups.

New wallets just work

Sending to an address that has never held USDC? We create its token account for you — no one gets stuck on an empty address.

No lock-in, ever

Kora is an open Solana Foundation standard, not a proprietary wallet. Integrating is just pointing at a URL — so you can leave just as easily. Switch to another provider by changing one line. No re-architecture, no SDK migration. We keep you by being reliable, not by trapping you.

Devnet + mainnet

Build and test free on devnet, flip one URL to go live.

Gasless is the future of seamless payments and great UX. We just made it a single URL.

Integrate in minutes

No SDK required. It's an open Kora endpoint — call it over plain JSON-RPC from Swift, Kotlin, Go, Node, anything. Prefer typed helpers? Use the official @solana/kit client.

// Gasless USDC send via Kora — plain JSON-RPC, no SDK
let relayer = URL(string: "https://mainnet.kora-nodes.com")!

func signAndSend(_ txBase64: String) async throws -> String {
    var req = URLRequest(url: relayer)
    req.httpMethod = "POST"
    req.setValue("application/json", forHTTPHeaderField: "Content-Type")
    req.httpBody = try JSONSerialization.data(withJSONObject: [
        "jsonrpc": "2.0", "id": 1,
        "method": "signAndSendTransaction",
        "params": ["transaction": txBase64, "sig_verify": false]
    ])
    let (data, _) = try await URLSession.shared.data(for: req)
    // → { "result": { "signature": "…" } }  // the relayer paid the SOL gas
}

Pricing

Dynamic, network-based pricing — a small margin over Solana's real, live network cost, charged in USDC/USDT. On Solana that's fractions of a cent per transaction. Fair when the network is quiet, safe when SOL moves. No fixed markup, no surprises.

Feedback