- Node.js v24.13.0 (use
.nvmrc—nvm useorfnm use) - Yarn 4.18.0 (
corepack enablethenyarn --version) - For Android builds: Android SDK,
ANDROID_HOMEset - For iOS builds: Xcode, CocoaPods, Ruby (
bundle installinside the example)
git clone https://github.com/0xPolygon/oms-wallet-react-native-sdk.git
cd oms-wallet-react-native-sdk
yarn install
yarn prepare # build lib/Yarn rejects registry releases published less than 24 hours ago, except for approved first-party
scopes. It also blocks third-party lifecycle scripts and Git-hosted dependencies unless they are
explicitly approved in .yarnrc.yml and the root package metadata. Do not bypass these controls
without reviewing the dependency and documenting why the exception is safe.
| Path | Purpose |
|---|---|
src/ |
TypeScript public API and Turbo Module bindings |
lib/ |
Built output — generated, do not edit directly |
android/ |
Kotlin native module |
ios/ |
ObjC/Swift native module |
examples/sdk-example/ |
React Native CLI example (Yarn workspace) |
examples/trails-actions-example/ |
Trails demo (Yarn workspace) |
examples/expo-example/ |
Expo example — not a Yarn workspace; install with yarn expo-example:install from the repo root |
yarn lint # ESLint + Prettier check
yarn typecheck # tsc
yarn prepare # rebuild lib/ after src/ changes
# Run the SDK example
yarn sdk-example start
# Run the Expo example
yarn expo-example:install
yarn expo-exampleyarn lint && yarn typecheck && yarn preparemust pass cleanly.- Add a user-facing changeset with
yarn changeset, or an empty changeset withyarn changeset add --emptyfor documentation, CI, tooling, or example-only changes. - Update
API.mdif you changed public exports insrc/index.tsx. - Update
TESTING.mdif you added or changed test commands. - If you changed the native layer (
android/,ios/,.podspec), note it in the PR and make sure the Android and iOS CI checks pass before merging. - PR title and commits must follow Conventional Commits,
e.g.
fix(auth): handle expired OTP correctly.
Publishing is CI-only and driven by Changesets. See PUBLISHING.md; never publish or stage a
release from a local machine.
This repo requires signed commits. Configure gpg or SSH signing in your local git config before
contributing.