The official Lens Protocol React bindings for React Native.
This package enables you to build mobile applications on top of the Lens Protocol using React Native.
Install the Lens React Native SDK package using your package manager of choice:
Package Manager | Command |
---|---|
npm | npm install @lens-protocol/react-native@latest |
yarn | yarn add @lens-protocol/react-native@latest |
pnpm | pnpm add @lens-protocol/react-native@latest |
First we need to create so-called bindings. Bindings are just an object implementing the IBindings
interface. This is used by the Lens SDK to access the Signer and the Provider.
In this example we will limit ourselves to the bare minimum and we will use the ethers.js
library to create the bindings.
// wallet.ts
import { IBindings } from '@lens-protocol/react-native';
import { providers, Wallet } from 'ethers';
const provider = new providers.InfuraProvider('maticmum');
const wallet = new Wallet('<your-private-key>', provider);
export const bindings: IBindings = {
getProvider: async () => provider,
getSigner: async () => wallet,
};
Create the LensConfig
. In this example we will use react-native-mmkk
as underlying storage. You can use any storage you want as long as it implements the IStorageProvider
interface.
First install the react-native-mmkv
package:
Package Manager | Command |
---|---|
npm | npm install react-native-mmkv |
yarn | yarn add react-native-mmkv |
pnpm | pnpm add react-native-mmkv |
Create the LensConfig
object:
import { LensConfig, development } from '@lens-protocol/react-web';
import { storage } from '@lens-protocol/react-web/storage/mmkv';
import { bindings } from './wallet.ts';
const lensConfig: LensConfig = {
bindings,
environment: development,
storage: storage(),
};
Wrap your app with the <LensProvider>
and pass the LensConfig
as a prop.
import { LensProvider } from '@lens-protocol/react-web';
function App() {
return (
<LensProvider config={lensConfig}>
<YourApp />
</LensProvider>
);
}