Signing - Ethereum
Overview
Transaction Payload with EVM Support
Basic Usage
import { createTransactionPayload, TxContext, MsgTransferTokens } from 'bitbadgesjs-sdk';
// Create your messages
const msg = new MsgTransferTokens({
creator: 'bb1...', // BitBadges address
collectionId: '1',
transfers: [/* ... */]
});
// Create transaction context with evmAddress
const txContext: TxContext = {
testnet: false,
sender: {
address: 'bb1...', // BitBadges address (bb-prefixed)
sequence: 0,
accountNumber: 1,
publicKey: '', // Not needed for EVM transactions
},
fee: {
amount: '0',
denom: 'ubadge',
gas: '200000',
},
memo: '',
evmAddress: '0x1234...', // β
Add EVM address to enable precompile conversion
};
// Create payload - SDK will automatically convert to EVM format
const payload = createTransactionPayload(txContext, msg);
// Check if EVM transaction is available
if (payload.evmTx) {
// Use EVM transaction details
const { to, data, value, functionName } = payload.evmTx;
// to: precompile address (0x1001, 0x1002, or 0x1003)
// data: encoded function call data
// value: always "0" for precompiles
// functionName: function name for debugging
}Signing EVM Transactions
Using Privy (Recommended)
Using ethers.js
Precompile Addresses
Precompile
Address
Message Types
Supported Message Types
Tokenization Messages
Gamm Messages
Bank Messages
Multiple Messages
Transaction Context for EVM
Error Handling
Complete Example
Differences from Cosmos Signing
Aspect
Cosmos
Ethereum
See Also
Last updated