Skip to content

Create session from widget

Create a Glide session from a widget session

Creates a Glide session from a widget session, with the user's chosen payment method and currency. Use it to build your own payment UI on top of widget sessions instead of using the pre-built widget.

Import

import { createSessionFromWidget } from "@paywithglide/glide-js";

Usage

index.ts
import { createSessionFromWidget } from "@paywithglide/glide-js";
import { base } from "@paywithglide/glide-js/chains";
import { usdc } from "@paywithglide/glide-js/currencies";
import { config } from "./config";
 
const widgetSessionId = "c165e159-1f0e-44a1-8fa8-8c963444752e";
const userWalletAddress = "0xc6FfEB1298Eb33Da430d14e5Eb789256ec344625";
 
const session = await createSessionFromWidget(config, {
  sessionId: widgetSessionId,
  account: userWalletAddress,
  paymentMethod: "wallet",
  paymentCurrency: usdc.on(base),
});

Parameters

sessionId*
string

The unique identifier of the widget session, from createWidgetSession.

account
nullable string

The wallet address that will pay for the session.

paymentMethod*
PaymentMethod

How the user pays: wallet, transfer, coinbase_onramp, coinbase_app, moonpay, onramp, or onramper.

paymentCurrency*
CAIP19

The currency the user pays with, in CAIP-19 format.

preferGaslessPayment
nullable boolean

When set to true and if supported by the payment currency, the user pays with a signature only, requiring no gas. Defaults to false.

amount
nullable string

The amount to pay. Defaults to the amount configured on the widget session.

omitStableDepositAddressKey
nullable boolean

When set to true, the widget session's stableDepositAddressKey is not applied, so a fresh deposit address is generated.

depositOwnerAddress
nullable string

The wallet address that owns the deposit. Used with transfer payments to attribute the deposit address to a specific user.

widgetConfig
nullable object

Configuration for Glide-hosted payment pages. Contains an optional appMetadata object (name, logoUrl, faviconUrl) and an optional theme object with custom theme values.

Return Type

sessionId*
string
The unique identifier of the session.
createdAt*
string
The timestamp at which the session was created.
expiresAt*
string
The timestamp at which the session will expire. Generally, this will be 10 minutes after the session is created.
expired*
boolean
A boolean indicating whether the session has expired.
etaInSeconds*
number
Number of seconds it is expected to take for the sponsored transaction after the user has paid for the transaction.
payerAccount
nullable string
The account id that will pay for the transaction. It can be the wallet address when the payment method is wallet.
paymentStatus*
PaymentStatus
The current status of the payment for the session, one of `unpaid`, `waiting_confirmations`, `paid`, `pending_refund`, or `refunded`. The session begins in the unpaid state and transitions to paid when the user completes their payment transaction.
paymentChainId*
CAIP2
The chain id on which the user will pay for the transaction.
paymentChainName*
string
The chain name on which the user will pay for the transaction.
paymentChainLogoUrl*
string
The chain logo URL on which the user will pay for the transaction.
paymentCurrency*
CAIP19
The currency in which the user pays in the CAIP-19 format.
paymentCurrencySymbol*
string
The currency symbol in which the user pays.
paymentCurrencyLogoUrl*
string
The currency logo URL in which the user pays.
paymentCurrencyTier*
'tier1' | 'tier2' | 'tier3'
The currency tier in which the user pays.
paymentAmount*
string
The amount of the payment required by the user to complete the transaction in a human-readable format.
paymentAmountUSD*
string
The amount of the payment required by the user to complete the transaction in USD.
paymentTransactionHash
nullable Hex | null
The hash of the transaction that the user made to complete the payment.
paymentTransactionUrl
nullable string | null
The explorer URL for the payment transaction.
paymentAction*
'signAndSendTransaction' | 'signTypedData' | 'redirectToUrl' | 'transfer'
The action that the user must take to complete the payment.
unsignedTransaction
nullable EVMTransactionResponse | null
The transaction that the user must sign and send to the chain to complete the payment. It is set when the `paymentAction` is set to `signAndSendTransaction`.
unsignedSolanaTransaction
nullable { message: string } | { transaction: string } | null
The base64-encoded Solana message or transaction that the user must sign and send to complete the payment. It is set when the payment is made on Solana and the `paymentAction` is set to `signAndSendTransaction`.
unsignedTypedData
nullable PermitTypedData<Hex> | null
The typed data that the user must sign to complete the payment. It is set when the `paymentAction` is set to `signTypedData`.
redirectUrl
nullable string | null
The URL that the user must be redirected to complete the payment. It is set when the `paymentAction` is set to `redirectToUrl`.
depositAddress
nullable Hex | null
The deposit address that the payment must be sent to. It is set when the `paymentAction` is set to `transfer`.
sponsoredTransactionChainId*
CAIP2
The chain id on which the transaction will be executed.
sponsoredTransactionChainName*
string
The chain name on which the transaction will be executed.
sponsoredTransactionChainLogoUrl*
string
The chain logo URL on which the transaction will be executed.
sponsoredTransactionStatus*
TransactionStatus
The current status of the transaction that Glide is sending to the chain on behalf of the user, one of `created`, `submitted`, `signed`, `pending`, `success`, `failed`, or `dropped`.
sponsoredTransactionHash
nullable Hex | null
The hash of the transaction that Glide sent to the chain on behalf of the user.
sponsoredTransactionUrl
nullable string | null
The explorer URL for the sponsored transaction.
sponsoredTransaction
nullable EVMTransaction | null
The transaction that Glide sent to the chain on behalf of the user.
sponsoredTransactionAmount*
string
The amount required by the sponsored transaction, in a human-readable format.
sponsoredTransactionCurrency*
CAIP19
The currency in which the sponsored transaction is executed, in CAIP-19 format.
sponsoredTransactionCurrencySymbol*
string
The currency symbol in which the sponsored transaction will be executed.
sponsoredTransactionCurrencyLogoUrl*
string
The currency logo URL in which the sponsored transaction will be executed.
sponsoredTransactionAmountUSD*
string
The amount required by the sponsored transaction, in USD.
serviceFeeUSD*
string
The Glide service fee in USD for this transaction.
gasFeeUSD*
string
The gas fee, estimated required for the transaction, in USD.
paymentTransactionGasFeeUSD*
string
The gas fee the user pays to execute their payment transaction, in USD.
totalFeeUSD*
string
The total fee including gas fee, service fee, commission, and payment transaction gas fee, in USD.
metadata*
string
The metadata associated with the session.
gasRefuelAmount
nullable string
The amount of gas refueled, in the native currency.
gasRefuelUSD
nullable string
The USD value of the gas refueled.
gasRefuelTransactionStatus
nullable TransactionStatus
The status of the gas refuel transaction.
gasRefuelTransactionHash
nullable Hex
The hash of the gas refuel transaction.
gasRefuelTransactionUrl
nullable string
The explorer URL for the gas refuel transaction.
refundTransactionHash
nullable string
The hash of the refund transaction, if the payment was refunded.
refundTransactionUrl
nullable string
The explorer URL for the refund transaction.
refundAddress
nullable string
The address the refund was sent to.