viem-goviem-go

requestPermissions

Requests permissions for a wallet

Import

Import the wallet actions package so you can call this action.

import "github.com/ChefBingbong/viem-go/actions/wallet"

Usage

See how to construct a wallet client and call this action.

import (
"context"
"log"
"github.com/ChefBingbong/viem-go/actions/wallet"
"github.com/ChefBingbong/viem-go/client"
"github.com/ChefBingbong/viem-go/client/transport"
"github.com/ChefBingbong/viem-go/chain/definitions"
)
ctx := context.Background()
walletClient, err := client.CreateWalletClient(client.WalletClientConfig{
Chain: definitions.Mainnet,
Transport: transport.HTTP("https://eth.llamarpc.com"),
})
if err != nil {
log.Fatal(err)
}
defer func() { _ = walletClient.Close() }()
permissions, err := wallet.RequestPermissions(ctx, walletClient, wallet.RequestPermissionsParameters{
"eth_accounts": {},
})
if err != nil {
log.Fatal(err)
}
log.Printf("Permissions: %+v", permissions)

Returns

[]WalletPermission

A list of granted wallet permissions.

Parameters

Permissions

Define which permissions to request from the connected wallet.

  • Type: RequestPermissionsParameters (map[string]map[string]any)

  • Required

A map where keys are permission names (e.g., "eth_accounts") and values are permission-specific configuration objects.

permissions, err := wallet.RequestPermissions(ctx, walletClient, wallet.RequestPermissionsParameters{
"eth_accounts": {},
})

JSON-RPC Method