PollarPollar
Getting Started

Overview

Pollar is the onboarding-to-payment infrastructure layer for consumer apps on Stellar, Solana and Polygon: the full stack that takes a new user from clicking Continue with Google to sending USDC, without ever showing them a seed phrase, a wallet address, a transaction fee, a trustline prompt or a rent-exempt minimum.

One login gives the user a wallet on every chain your app enables. Solana is fully supported for the whole wallet lifecycle: managed, co-signed and self-custody wallets, Sign In With Solana for Phantom, Solflare and Backpack, SOL and SPL balances, sponsored transfers with the recipient's token account created for them, and history. See Chain Support for the feature matrix.


The problem

Every team building a consumer product on Stellar or Solana hits the same infrastructure wall before writing a single line of their actual product:

  • Creating or linking an account for each user

  • Handling the XLM reserve, or keeping a Solana account above the rent-exempt minimum

  • Configuring trustlines for each asset, or creating associated token accounts

  • Abstracting transaction fees from users unfamiliar with blockchain

  • Building an onboarding flow that works for people with zero crypto experience

Pollar handles all of this so you can skip straight to building your product.


The solution

import { PollarProvider, usePollar } from '@pollar/react';

function App() {
  const { isAuthenticated, login, runTx } = usePollar();

  if (!isAuthenticated) {
    return (
      <button onClick={() => login({ provider: 'google' })}>
        Continue with Google
      </button>
    );
  }

  return (
    <button
      onClick={() =>
        runTx('payment', {
          destination: 'GXXX...',
          amount: '10',
          asset: { type: 'credit_alphanum4', code: 'USDC', issuer: 'GA5Z...' },
        })
      }
    >
      Send 10 USDC
    </button>
  );
}

export default function Root() {
  return (
    <PollarProvider client={{ apiKey: 'pub_testnet_...' }}>
      <App />
    </PollarProvider>
  );
}

In a handful of lines: OAuth authentication, a funded Stellar wallet, and USDC payments. No seed phrases. No fees for the user. No trustline configuration. The SDK asks the user to confirm each signature unless the app's dashboard says otherwise. (runTx is the one-shot build, sign and submit helper; see the SDK Reference for the split buildTx / signAndSubmitTx flow.)

The same app on Solana: the login is identical, and the payment is one call.

const { sendPayment } = usePollar();

// 10 USDC on Solana (SPL mint, 6 decimals), fee paid by the app
await sendPayment({
  chain: 'SOLANA',
  destination: '7xKX...',
  amount: '10000000',
  mint: 'EPjFWdd5AufqSSqeM3qQw8xJXpY4zFrPyLKS3jcKBVMy',
});

A user who already has Phantom, Solflare or Backpack signs in with Sign In With Solana instead of Google, through @pollar/solana-wallet-standard-adapter; see Wallet Adapters.


How it compares

CrossmintPrivyDynamicStellar Wallets KitPollar
Stellar nativePartialNoNoYes (connector only)Yes
Solana nativeYesYesYesNoYes
One login, a wallet per chainNoPartialPartialNoYes
Deferred fundingNoN/AN/ANoYes (unique)
Fee-bump nativeNoN/AN/ANoYes
Built for startupsNo (enterprise)YesYesPartialYes
Full onboarding stackNoNoNoNoYes

Pollar also integrates with wallets users already have: first-party adapters let any Stellar Wallets Kit wallet or Solana Wallet Standard wallet be a login method on top of Pollar's stack. See Wallet Adapters.

On this page

Was this helpful?