βRestrict Access to Specific Wallets
A guide to restricting access based on a list of allowed wallet addresses
Requirements
Before continuing make sure you've followed the setup guide
βοΈStart Here: SetupRestrict Access to Specific Wallets
You can use Picket to gate access by a list of allowed wallets. All you need to do is pass the allowedWallets requirements to the login() function.
Login User w/ a Allowed Wallet List
import Picket from "@picketapi/picket-js";
const picket = new Picket('YOUR_PUBLISHABLE_KEY_HERE');
// Restrict access to a set of predefined wallets
const requirements = {
allowedWallets: ["0xYOUR", "0xWALLET", "0xADDRESSES","0xHERE"]
}
const { accessToken, user } = await picket.login(requirements);
console.log(user);import { PicketProvider, usePicket } from "@picketapi/picket-react";
function MyApp({ children }) {
return (
<PicketProvider apiKey="YOUR_PUBLISHABLE_KEY_HERE">
{children}
</PicketProvider>
);
}
// Restrict access to a set of predefined wallets
const requirements = {
allowedWallets: ["0xYOUR", "0xWALLET", "0xADDRESSES","0xHERE"]
}
function MySecurePage() {
const {
isAuthenticating,
isAuthenticated,
authState,
logout,
login
} = usePicket();
// user is logging in
if (isAuthenticating) return "Loading";
// user is not logged in
if (!isAuthenticated) {
return (
<div>
<p>You are not logged in!</p>
<button onClick={() => login(requirements)}>Login with Wallet</button>
</div>
)
}
// user is logged in π
const { user } = authState;
const { walletAddress } = user;
return (
<div>
<p>You are logged in as {walletAddress} </p>
<button onClick={() => logout()}>Logout</button>
</div>
)
}You successfully restricted access to specific wallets
The returned access token can now act as secure proof of wallet ownership until expiration. It can be passed server side and verified there in order to restrict resources to specific wallets
Allowed Wallets and Token Ownership Requirements
Allowed wallet lists can be used in combination with token ownership requirements.
If both allowedWallets and token ownership requirements are passed to the login function, then the user will be granted access if they either are on the allowed wallets list or meet the token ownership requirements.
Using Access Tokens
Congrats π your user is now successfully logged in. After authenticated/authorizing a user, you get an access token. You can use this access token to make secure requests to your backend. Read more in the working with access tokens guide.
πWorking with Access TokensLast updated