@particle-network/authkit
v2.0.16
Published
Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.
Downloads
7,353
Readme
Particle Auth Core Modal
Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.
Modal is implemented based on React, provides a rich set of hook functions and custom components.
Installation
Install Auth Core and its peer dependencies.
npm install @particle-network/authkit
# or
yarn add @particle-network/authkit
Configure
Init Auth Core with Particle project config, you can get the config from Particle Dashboard.
The modal support custom style, refer to Customize.
Wrap your application with AuthCoreContextProvider
.
import { AuthCoreContextProvider } from '@particle-network/authkit';
const App = () => {
// replace 'xxxx' with particle project config.
return (
<AuthCoreContextProvider
options={{
projectId: 'xxxx',
clientKey: 'xxxx',
appId: 'xxxx',
}}
>
<YourApp />
</AuthCoreContextProvider>
);
};
Connect
Custom you own connect button and call connect
function to connect Auth Core.
import { useConnect } from '@particle-network/authkit';
const { connect, disconnect, connectionStatus, requestConnectCaptcha } = useConnect();
// connect with email.
const userInfo = await connect({
email: '[email protected]',
code: 'xxxxxx', // optional
});
// connect with phone.
const userInfo = await connect({
phone: '+8618888888888',
code: 'xxxxxx', // optional
});
// connect with social type.
const userInfo = await connect({
socialType: 'google',
prompt: 'select_account', //optional
});
// connect with JWT.
const userInfo = await connect({
jwt: 'xxxxxxxxxx',
});
// disconnect
await disconnect();
EVM Wallet
EVM Wallet will be created when connect with EVM chains.
import { useEthereum } from '@particle-network/authkit';
// you can use eip1193 provider with `web3.js` or `ethers.js`
const { provider, address, chainId, chainInfo, switchChain, signMessage, signTypedData, sendTransaction, enable } =
useEthereum();
// send transaction.
const txHash = await sendTransaction(txData);
// sign message.
const signature = await signMessage(message);
Solana Wallet
import { useSolana } from '@particle-network/authkit';
const {
address,
chainId,
chainInfo,
switchChain,
signMessage,
signTransaction,
signAllTransactions,
signAndSendTransaction,
enable,
} = useSolana();
// send transaction.
const txHash = await signAndSendTransaction(txData);
// sign message.
const signature = await signMessage(message);