
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@abstract-foundation/agw-react
Advanced tools
The @abstract-foundation/agw-react package provides React hooks and components to integrate the Abstract Global Wallet (AGW) into your React applications.
Abstract Global Wallet (AGW) is a cross-application smart contract wallet that users can use to interact with any application built on Abstract, powered by Abstract's native account abstraction.
Install the React integration package via NPM:
npm install @abstract-foundation/agw-react
import { useAbstractClient, useLoginWithAbstract } from '@abstract-foundation/agw-react';
useLoginWithAbstract Hookimport React from 'react';
import { useLoginWithAbstract } from '@abstract-foundation/agw-react';
export default function App() {
const { login, logout } = useLoginWithAbstract();
return (
<div>
<button onClick={login}>Connect with Abstract</button>
<button onClick={logout}>Disconnect</button>
</div>
);
}
useAbstractClient Hookimport React from 'react';
import { useAbstractClient } from '@abstract-foundation/agw-react';
export default function App() {
const { data: abstractClient, error, isLoading } = useAbstractClient();
if (isLoading) return <div>Loading Abstract Client...</div>;
if (error) return <div>Error: {error.message}</div>;
// Use the abstractClient instance here
return <div>Abstract Client is ready!</div>;
}
useAbstractClient: Hook to create and access an instance of the Abstract Client within your React application.useLoginWithAbstract: Hook for signing in and signing out users with the Abstract Global Wallet.useGlobalWalletSignerAccount: Hook to retrieve the Global Wallet Signer's account information.useGlobalWalletSignerClient: Hook to access the wallet client associated with the Global Wallet Signer's account.useWriteContractSponsored: Hook to perform sponsored contract write operations.Using @abstract-foundation/agw-react to send a transaction:
import React from 'react';
import { useAbstractClient } from '@abstract-foundation/agw-react';
export default function SendTransactionButton() {
const { data: abstractClient } = useAbstractClient();
const handleSendTransaction = async () => {
if (!abstractClient) return;
try {
const txHash = await abstractClient.sendTransaction({
to: '0xRecipientAddress',
value: 1000000000000000000n, // 1 ETH in wei
});
console.log('Transaction Hash:', txHash);
} catch (error) {
console.error('Error sending transaction:', error);
}
};
return (
<button onClick={handleSendTransaction} disabled={!abstractClient}>
Send Transaction
</button>
);
}
useWriteContractSponsoredimport React from 'react';
import { useWriteContractSponsored } from '@abstract-foundation/agw-react';
import { Abi } from 'viem';
const contractAbi: Abi = [/* Your contract ABI here */];
export default function SponsoredContractWrite() {
const {
writeContractSponsored,
data,
error,
isLoading,
isSuccess,
} = useWriteContractSponsored();
const handleWriteContract = () => {
writeContractSponsored({
address: '0xYourContractAddress',
abi: contractAbi,
functionName: 'yourFunctionName',
args: ['arg1', 'arg2'],
});
};
return (
<div>
<button onClick={handleWriteContract} disabled={isLoading}>
{isLoading ? 'Processing...' : 'Execute Sponsored Transaction'}
</button>
{isSuccess && <div>Transaction Hash: {data?.hash}</div>}
{error && <div>Error: {error.message}</div>}
</div>
);
}
For detailed documentation, please refer to the Abstract Global Wallet Documentation.
FAQs
Abstract Global Wallet React Components
We found that @abstract-foundation/agw-react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.