A framework for enabling Web3 applications to seamlessly operate across different wallet environments.
- Seamless integration with React and React Native applications
- Built-in support for wallet connectivity and messaging
- Portable dApp container components for both web and native applications
npm install universal-portabilityFor React Native applications, you'll also need:
npm install react-native-webviewimport {
UniversalPortabilityProvider,
Port
} from 'universal-portability';
function App() {
return (
<UniversalPortabilityProvider>
<Port appUrl="https://yourdapp.com" />
</UniversalPortabilityProvider>
);
}import {
UniversalPortabilityProvider,
Port,
usePortHandler
} from 'universal-portability';
function DAppContainer() {
const { webViewRef, handleWebViewMessage } = usePortHandler();
return (
<Port
ref={webViewRef}
source={{ uri: "https://yourdapp.com" }}
onMessage={handleWebViewMessage}
/>
);
}The Universal Portability SDK has full React Native support. For detailed instructions on using the SDK in React Native applications, please refer to the React Native Guide.
The package is organized to support both web and native environments:
universal-portability/
├── dist/ # Compiled distribution files
│ ├── index.js # Main bundle for web
│ ├── index.esm.js # ESM version
│ ├── native.js # React Native specific bundle
│ ├── native.esm.js # ESM version
│ ├── react-native.js # Combined React Native bundle
│ └── react-native.esm.js # ESM version
For web applications:
import { Component } from 'universal-portability';For React Native applications:
// ✅ Recommended: Main import (auto-detects React Native)
import { Component } from 'universal-portability';
// ✅ Alternative: Direct React Native imports
import { Component } from 'universal-portability/dist/react-native';Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.