@wauth/sdk
Version:
Web2 auth sdk for Arweave
110 lines (82 loc) • 2.74 kB
Markdown
for Arweave applications. It creates arweaveWallet compatible wallet instances for users after they authenticate with popular social providers.
Install the SDK in your project:
```bash
npm i @wauth/sdk@latest
```
```ts
import { WAuth, WAuthProviders } from "@wauth/sdk";
// Initialize the SDK
const wauth = new WAuth({ dev: false });
// Optional: Listen for authentication state changes
wauth.onAuthDataChange((authData) => {
if (authData) {
console.log("User authenticated:", authData);
} else {
console.log("User logged out");
}
});
```
```ts
// Connect with social provider
async function connectWithGoogle() {
try {
const authData = await wauth.connect({
provider: WAuthProviders.Google
});
if (authData) {
console.log("Successfully authenticated!");
const address = await wauth.getActiveAddress();
console.log("Wallet address:", address);
}
} catch (error) {
console.error("Authentication failed:", error);
}
}
// Available providers
WAuthProviders.Google // "google"
WAuthProviders.Github // "github"
WAuthProviders.Discord // "discord"
```
```ts
// Get connected wallets
const wallets = await wauth.getConnectedWallets();
// Add a new wallet
await wauth.addConnectedWallet(window.arweaveWallet);
// Remove a wallet
await wauth.removeConnectedWallet(walletId);
```
```ts
// Sign a transaction
const transaction = await arweave.createTransaction({
data: new TextEncoder().encode("Hello WAuth!")
});
const signedTx = await wauth.sign(transaction);
// Sign raw data
const signature = await wauth.signature("Data to sign");
// Get AO Protocol signer
const signer = wauth.getAoSigner();
const ao = connect({ MODE: "legacy" });
const res = await ao.message({
process: processId,
data: "Hello AO!",
tags: [{ name: "Action", value: "Info" }],
signer: signer
});
```
For React applications, we recommend using `@wauth/strategy` with Arweave Wallet Kit for a seamless integration. Check out the [strategy package](https://github.com/ankushKun/wauth/tree/main/strategy) for more details.
Check out our [live demo](https://github.com/ankushKun/wauth/tree/main/demo) to see WAuth in action with all features:
- Social Authentication
- Wallet Management
- Transaction Signing
- Data Signing
- AO Protocol Integration

The WAuth SDK provides seamless Web2 social authentication