New Merchant & Wallet SDKs now in private beta

The next card network
for banks, merchants and wallets.

GeniusPay™ lets banks issue cards backed by regulated Payment Stablecoins on the rails they already run — and gives merchants and third-party wallets the SDKs to accept and spend them anywhere. Instant. Non-custodial. GENIUS Act compliant on day one.

GeniusPay™ BANKS MERCHANTS WALLETS ATMS
T+0
Instant, final payment
~100ms
Authorization time
$0
Custody — funds never touch us
2 SDKs
Merchant & Wallet — one network

For banks

New revenue from the accounts you already hold.

GeniusPay™ runs alongside your existing card and deposit rails. Customers transact with the debit cards they already carry — you capture the network economics behind every swipe.

Interchange-grade economics, no legacy network tax

Earn on PSC issuance, redemption and transaction volume. Because GeniusPay™ cuts the legacy card networks out of the chain, more of every basis point stays on your balance sheet.

issuance fees redemption spread volume share

No custody risk

Stablecoins move directly between accounts via cryptographic authorization. We never hold funds.

Compliance by construction

Only GENIUS Act Payment Stablecoins move on the network. Reserves, attestations and audit trails are properties of the rails.

Same cards, same core

No re-issuance, no new core banking modules. A configuration change, not a migration.

Always-on acceptance

No cut-off times, no batch windows. Payments clear on weekends and holidays like any other day.

For merchants

Accept stablecoins
with one SDK.

The GeniusPay™ Merchant SDK lets any point of sale, e-commerce checkout or ATM accept GENIUS Act Payment Stablecoins from any card or wallet on the network. Funds reach your account instantly — no chargebacks, no T+2 float, no new hardware.

  • Works on existing terminals — a software update for Genmega, PAI, Clover and Pax estates
  • Accept debit-card taps and wallet QR scans through the same API
  • Get paid in PSC or auto-convert to fiat — your choice, T+0 either way
  • Cryptographic finality — no disputes, no reversals, no chargeback fees
Android POS iOS Web / JS REST Webhooks
@geniuspay/merchant
import { GeniusMerchant } from "@geniuspay/merchant";

const pos = new GeniusMerchant({ terminalId: "TER_0412" });

// Show a charge — accepts card tap or wallet scan
const charge = await pos.createCharge({
  amount:   48.50,
  asset:    "PSC-USD",
  payout:   "fiat"          // or "psc"
});

charge.on("approved", tx => {
  // { status: "approved", finality: "T+0", fee: 0.17 }
});
val pos = GeniusMerchant(terminalId = "TER_0412")

val charge = pos.createCharge(
    amount   = 48.50,
    asset    = Asset.PSC_USD,
    payout   = Payout.FIAT
)

charge.onApproved { tx ->
    // tx.finality == "T+0"
}
POST /v1/charges
{
  "terminal_id": "TER_0412",
  "amount":      48.50,
  "asset":       "PSC-USD",
  "payout":      "fiat"
}

// 201 Created · 91ms
{
  "id":       "chg_01J8…",
  "status":   "approved",
  "finality": "T+0",
  "tx_hash":  "0x4b7f…c019"
}

For wallets

Let any wallet spend
stablecoins in the real world.

The GeniusPay™ Wallet SDK plugs into any third-party wallet — custodial or self-custodial — and gives its users tap-to-pay at every terminal on the network and cash-out at GeniusPay™ ATMs. Keys stay where they are. We never touch funds.

  • NFC tap-to-pay and QR scan-to-pay at any GeniusPay™-enabled merchant
  • Cash-out to fiat at thousands of ATMs nationwide
  • Bring your own signer — passkeys, secure enclave, MPC or hardware
  • Only GENIUS Act Payment Stablecoins — compliance handled by the rails, not by you
Swift Kotlin React Native Flutter Web
@geniuspay/wallet
import GeniusWallet

let genius = GeniusWallet(signer: PasskeySigner())

// Tap-to-pay: sign a PSC release at the terminal
let tx = try await genius.authorizeTap(
    terminal: "TER_0412",
    amount:   48.50,
    asset:    .pscUSD
)

// tx.status == .approved · tx.latencyMs == 82
val genius = GeniusWallet(signer = PasskeySigner())

val tx = genius.authorizeTap(
    terminal = "TER_0412",
    amount   = 48.50,
    asset    = Asset.PSC_USD
)

// tx.status == Status.APPROVED
import { GeniusWallet } from "@geniuspay/wallet-react-native";

const genius = new GeniusWallet({ signer: passkey });

const tx = await genius.authorizeTap({
  terminal: "TER_0412",
  amount:   48.50,
  asset:    "PSC-USD"
});

// → { status: "approved", finality: "T+0", latency_ms: 82 }

One network, both sides

Every wallet on the Wallet SDK can pay every merchant on the Merchant SDK — and every bank card works at both. No bilateral integrations.

Non-custodial by design

The SDKs coordinate authorization and payment. They never hold keys or balances — funds move directly between bank, merchant and wallet.

Sandbox in minutes

Test keys, a simulated terminal and a funded test wallet ship with every SDK. Go from install to first approved transaction the same afternoon.

How it works

Familiar on the outside.
Faster underneath.

Card or wallet, the customer experience is what it is today. Only the network underneath changes.

1

Tap or scan

The customer taps a bank-issued debit card or scans with a wallet running the Wallet SDK at any merchant running the Merchant SDK.

// identity: issuer or wallet signer
2

Route

The transaction travels to GeniusPay™ over existing payment rails. Where the network isn't available, it falls back to legacy processing seamlessly.

// fallback: automatic
3

Clear

Authorization returns in ~100ms. Payment Stablecoins clear on the Ethpar network — bank, merchant and wallet all see one immutable record.

// finality: T+0

Ready to build on the next card network?

Banks, merchants, acquirers and wallet teams — integrate once to reach the whole network.