
type: "EMBEDDED_WALLET". It uses the same customer, quote, transaction, and webhook primitives as other accounts. Receiving funds works the same way, too. To move money out, the customer must authorize the transfer on their device, which signs the payment with a session signing key.
Why a Global Account?
- Self-custodial. Neither Lightspark nor your platform can move funds unilaterally. Outbound transfers require authorization from the customer’s device.
- Stablecoin-denominated. Balances can be held in stablecoins like Brale-issued USDB. You can also issue your own stablecoin and request enablement in Grid. Use the
/quotesAPI to convert from fiat or withdraw through supported payment rails. - Native. Reuse the customer, internal-account, quote, transaction, and webhook primitives you already use for payouts or P2P. Global Accounts add authentication and signing at the account level.
Payment flow
Global Accounts use the same/quotes and /quotes/{id}/execute pattern as other payments. Outbound transfers also require a client signature.
- Incoming funds. Funding an account works like any other internal account. Create a quote with the Global Account as the
destination, execute it, and Grid converts the source currency into USDB and credits the account. Incoming funds do not require customer approval. - Outgoing funds. Withdrawals and transfers out require the customer to authorize them on their device. Grid returns a
payloadToSignin the quote’spaymentInstructions; the client signs those bytes with its session signing key and passes the base64 signature as theGrid-Wallet-Signatureheader on/quotes/{id}/execute. Only then does Grid release the funds.
Architecture
Three parties participate in every signed action:
The client never talks to Grid directly. Every request flows client → integrator backend → Grid.
Auth credentials, client keys, and session signing keys
Three distinct pieces of crypto collaborate to authorize actions on the Global Account (withdrawals, credential changes, session revocations, wallet exports, and wallet privacy updates):
The flow is always the same: verify an auth credential → receive a short-lived session signing key → build a Grid wallet signature over the
payloadToSign bytes on the client → pass that signature as the Grid-Wallet-Signature header on the request that actually moves funds or changes account state. This applies to withdrawals, adding or removing credentials, refreshing or revoking sessions, exporting the wallet seed, updating customer email for tied email OTP credentials, and updating wallet privacy.
Core capabilities
Additional capabilities
Some Global Accounts capabilities require platform enablement before you can build with them. Book a demo to see how they fit your platform.Where to next
Implementation overview
End-to-end walkthrough: create a customer, register a passkey, fund the account, and execute a signed withdrawal.
Agents (experimental)
Native Grid support for connected AI agents, managed permissions, and partner approval surfaces.
Authentication
Passkey, OAuth (OIDC), and email OTP registration and reauthentication flows.
Client keys & signing
Generate the P-256 key pair, decrypt the session signing key, and sign payloads on Web, iOS, and Android.
Sandbox testing
Magic values for OTP and signatures, plus sandbox OIDC token rules that exercise the full request shape without standing up real auth providers.