@justgold/rn-sdk
v1.0.0
Published
JustGold Connect SDK for React Native — embeddable gold & silver trading UI
Readme
@justgold/rn-sdk
Embed the JustGold gold & silver trading experience in your React Native app with JustGoldConnect.
The trading UI ships inside this package — no separate UI deploy or CDN.
Documentation: React Native integration guide · Session tokens · SDK overview
Installation
yarn add @justgold/rn-sdk react-native-webview react-native-safe-area-context| Peer dependency | Version |
| -------------------------------- | ------- |
| react | >= 18 |
| react-native | >= 0.70 |
| react-native-webview | >= 13 |
| react-native-safe-area-context | >= 4 |
iOS: run pod install in your ios/ directory after adding the packages.
Wrap your app (or SDK screen) in SafeAreaProvider.
Quick start
Your backend issues a short-lived session JWT (and optional refresh token). Pass them to JustGoldConnect — never put client_secret in the app.
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { JustGoldConnect } from '@justgold/rn-sdk';
<SafeAreaProvider>
<JustGoldConnect
token={sessionToken}
refreshToken={refreshToken}
sandbox={false}
locale="en"
theme={{ mode: 'light', primaryColor: '#2563eb' }}
onClose={() => navigation.goBack()}
onSessionExpired={() => refreshSessionFromBackend()}
onTokensRefreshed={({ sessionToken, refreshToken: rt }) => persistTokens(sessionToken, rt)}
onPaymentRequired={(payload, _resume) => {
navigation.navigate('PartnerPayment', payload);
}}
onError={err => console.warn(err)}
/>
</SafeAreaProvider>;| Prop | Description |
| ------------------- | -------------------------------------------------------- |
| token | Required. Session JWT from your backend |
| refreshToken | Enables silent renewal before JWT expiry |
| sandbox | true → sandbox API; omit or false → production |
| locale | 'en' or 'ar' |
| theme | Light/dark mode, brand colors, optional partner branding |
| onClose | User closed the SDK |
| onSessionExpired | Re-issue session from your backend |
| onPaymentRequired | User confirmed a quote — collect payment on your side |
| onError | Unrecoverable SDK error |
Partners do not pass apiBaseUrl — the SDK resolves it from the sandbox flag.
Metro configuration
Add .html to Metro asset extensions so the bundled UI loads:
const { getDefaultConfig } = require('@react-native/metro-config');
const config = getDefaultConfig(__dirname);
config.resolver.assetExts.push('html');
module.exports = config;Payment handoff
When the user confirms buy, sell, or delivery, the SDK creates a Pending transaction and calls onPaymentRequired. Your app:
- Collects payment (your PSP / wallet)
- Updates status via your backend:
PATCH /v1/transactions/:id(HMAC) - Closes your payment screen — the SDK polls and shows the result
Recommended: keep JustGoldConnect mounted and present your payment UI on top (modal, overlay, or new screen).
If you must unmount JustGoldConnect during payment (for example a native PSP SDK), remount it afterward with the same token and refreshToken. The SDK restores the payment flow automatically — do not re-fetch tokens unless the session expired.
The second argument to onPaymentRequired (resume) is optional and can speed up navigation after payment completes.
Permissions
The SDK does not require camera, location, or other sensitive permissions.
Your app must declare Android INTERNET. iOS uses standard HTTPS (App Transport Security).
Environments
| Environment | API base |
| ----------- | -------------------------------------- |
| Sandbox | https://api.dev.partner.justgold.app |
| Production | https://api.partner.justgold.app |
Match the sandbox flag to the environment your backend credentials target.
Support
- React Native integration guide
- Session token lifecycle
- Contact your JustGold onboarding team for sandbox credentials and go-live approval
