Sign Transactions
In this guide, you will learn how Web3 apps that integrate with the Arcana Auth SDK can use the standard Ethereum JSON RPC calls supported by the Arcana wallet and programmatically allow authenticated users to sign blockchain transactions.
Prerequisites
-
Use the Arcana Developer Dashboard to register the app and obtain a unique Client ID required for integrating the app with the Arcana Auth SDK.
-
Follow the instructions to configure authentication providers before integrating the app with the Arcana Auth SDK.
-
Use the appropriate integration method as per the app type and integrate the app with the Arcana Auth SDK.
-
Add code in the integrated app to onboard users. The Web3 wallet operations can be invoked programmatically in an app only in the context of an authenticated user.
Steps
Make sure you have addressed the prerequisites before adding code to invoke any Web3 wallet operations supported by the Arcana wallet. After that, plug in the necessary code to set up requisite hooks for JSON/RPC standard Ethereum calls.
// Assuming Auth SDK is integrated and initialized
try {
provider = auth.provider
const connected = await auth.isLoggedIn()
console.log({ connected })
setHooks()
} catch (e) {
// Handle exception case
}
// setHooks: Manage chain or account switch in Arcana wallet
function setHooks() {
provider.on('connect', async (params) => {
console.log({ type: 'connect', params: params })
const isLoggedIn = await auth.isLoggedIn()
console.log({ isLoggedIn })
})
provider.on('accountsChanged', (params) => {
//Handle
console.log({ type: 'accountsChanged', params: params })
})
provider.on('chainChanged', async (params) => {
console.log({ type: 'chainChanged', params: params })
})
}
Sign Transaction
async function signTransaction() {
const { sig } = await provider.request({
method: 'eth_signTransaction',
params: [
{
from, // sender account address
gasPrice: 0,
to: '0xE28F01Cf69f27Ee17e552bFDFB7ff301ca07e780', // receiver account address
value: '0x0de0b6b3a7640000',
},
],
})
console.log({ sig })
}
The following figure shows how the Arcana wallet displays the details of a blockchain sign transaction request and asks the user to approve or reject it:
That is all!
The Web3 app is all set to programmatically allow the authenticated app users to sign blockchain transactions.
What's Next?
After registering the app, configuring authentication providers, integrating the Arcana Auth SDK with the app and onboarding users, developers can further add code in the app to sign blockchain transactions, send and receive native, ERC20, or custom tokens, and other Web3 wallet operations.
For a complete list of other JSON RPC calls supported by the Arcana wallet, see JSON-RPC Specifications.
See also
- Arcana wallet capabilities
- Configure Arcana wallet visibility
- Configure Arcana wallet visibility
- Send transactions
- Check the wallet account balance
- Watch crypto assets
- Arcana Auth SDK Reference Guide