Skip to main content
Open Wallet Standard (OWS) provider for React Native. Exposes Glide’s mobile hardware-backed signer — iOS Secure Enclave on Apple devices, Android StrongBox on qualifying Android devices — as an OWS-conformant wallet so any agent runtime that discovers an OWS provider on the device can use Glide’s hardware-attested keys without Glide-specific integration code. OWS launched March 2026 (MoonPay-led, MIT-licensed, 15+ org backers including PayPal, Circle, Solana Foundation, and Ethereum Foundation). The canonical @open-wallet-standard/core ships Rust, Node, and Python only; there is no official React Native SDK. This package fills that gap.

Install

npmjs.com/package/@glideco/ows-react-native

Why OWS?

Agent runtimes (Claude, ChatGPT Plugins, Gemini extensions, custom MCP clients) discover wallets through the Wallet Standard event bus rather than hardcoding vendor SDKs. A wallet that registers on the bus becomes visible to any runtime that listens — no per-integration code. The OWS spec defines the exact event names, feature-string keys, and WalletAccount shape that runtimes expect.

CAIP-2 chains supported

These are CAIP-2 identifiers — distinct from Glide’s internal short-ids (eth, sol). chainIdToCaip2() from @glideco/schemas translates between them at the apps/mobile boundary.

Live features

Stubs throw an error with code: 'E_NOT_IMPLEMENTED'. Agent runtimes that probe features before calling them will route to a fallback wallet rather than treating Glide as non-conformant.

Wiring

Build the wallet with a OwsSignerBackend that your app provides, then register it on the event bus.

Event protocol

Two registration paths co-exist:
  1. Legacy: registerGlideOwsWallet dispatches wallet-standard:register-wallet on startup. Apps that pre-load wallets listen for this event and add Glide to their wallet picker.
  2. Modern: registerGlideOwsWallet also attaches a wallet-standard:app-ready listener. Apps that bootstrap late fire app-ready with a register callback; Glide calls register(wallet) to introduce itself.
Both events are handled. The unregister handle returned by registerGlideOwsWallet removes the app-ready listener — call it on vault switch before calling registerGlideOwsWallet again.

OwsSignerBackend contract

Returning null from getAddress or getPublicKey signals that the backend has no key for that chain; buildGlideOwsWallet omits that chain from wallet.accounts.

Duplicate chain guard

buildGlideOwsWallet throws if chains contains duplicate CAIP-2 entries. Agent runtimes dispatch via wallet.chains.includes(target) and pick the first match; duplicates cause the change event to fire twice for the same chain on refreshAccounts.

Reading list