| name | mvx-sdk-go-interactors |
| description | Components for interacting with the blockchain (Wallets, Transaction Interactors, Nonce Handlers) in Go. |
MultiversX SDK-Go Interactors
Wallet Management
Loading keys and addresses.
import "github.com/multiversx/mx-sdk-go/interactors"
wallet := interactors.NewWallet()
privateKey, err := wallet.LoadPrivateKeyFromPemFile("wallet.pem")
privateKey, err := wallet.LoadPrivateKeyFromKeystoreFile("wallet.json", "password")
address, err := wallet.GetAddressFromPrivateKey(privateKey)
bech32Address := address.AddressAsBech32String()
Transaction Nonce Handler (V3)
Automatically fetches and increments nonces. Recommended way to manage nonces.
import "github.com/multiversx/mx-sdk-go/interactors/nonceHandlerV3"
args := nonceHandlerV3.ArgsAddressNonceHandler{
Proxy: proxy,
Address: address,
}
handler, err := nonceHandlerV3.NewAddressNonceHandler(args)
nonce, err := handler.GetNonce(ctx)
handler.ApplyNonceAndGasPrice(tx)
Transaction Interactor
High-level wrapper for sending transactions.
import "github.com/multiversx/mx-sdk-go/interactors"
txInteractor, err := interactors.NewTransactionInteractor(proxy, txBuilder)
txHash, err := txInteractor.SendTransaction(ctx, tx, privateKey)
txHashes, err := txInteractor.SendTransactions(ctx, txs, privateKey)
Creating a Wallet Instance
privateKey, publicKey := wallet.GeneratePrivateKey()
Best Practices
- Use NonceHandlerV3 for robust nonce management, especially in concurrent environments
- Use TransactionInteractor to simplify signing + sending flow
- Secure Key Management - avoid hardcoding private keys