Build a CryptoWallet, Fast
Tatum gives you a reliable and simple back-end for your crypto wallet application.
.your-odometer .odometer-inside .odometer-digit:nth-child(1),
.your-odometer .odometer-inside .odometer-digit:last-child {
display: none
}
/* Optional hide specific formatting mark */
.your-odometer .odometer-inside .odometer-formatting-mark:nth-child(NUMBER) {
display: none
}
.starter-odometer {
/* Change regular animation speed
A bit of trial and error is required here,
as this value is related to the interval
and duration in the script. */
--time: 2s;
/* Specify your desired easing here */
--odometer-easing: ease;
vertical-align: middle;
}
.starter-odometer .odometer-inside {
/* Flex spacing between Elements - works only if .odometer-inside
is set to flex oder inline-flex */
gap: 0.5rem;
}
.starter-odometer .odometer-digit {
display: inline-block;
vertical-align: middle;
}
.starter-odometer .odometer-digit .odometer-digit-spacer {
display: block;
vertical-align: middle;
visibility: hidden;
}
.starter-odometer .odometer-digit .odometer-value.odometer-last-value {
position: absolute;
left: 0%;
right: 0%;
}
.starter-odometer .odometer-ribbon-inner {
-webkit-backface-visibility: hidden;
}
.starter-odometer.odometer-animating-up .odometer-ribbon-inner {
-webkit-transition: -webkit-transform var(--time);
-moz-transition: -moz-transform var(--time);
-ms-transition: -ms-transform var(--time);
-o-transition: -o-transform var(--time);
transition: transform var(--time);
}
.starter-odometer.odometer-animating-up.odometer-animating .odometer-ribbon-inner {
-webkit-transform: translateY(-100%);
-moz-transform: translateY(-100%);
-ms-transform: translateY(-100%);
-o-transform: translateY(-100%);
transform: translateY(-100%);
}
.starter-odometer.odometer-animating-down .odometer-ribbon-inner {
-webkit-transform: translateY(-100%);
-moz-transform: translateY(-100%);
-ms-transform: translateY(-100%);
-o-transform: translateY(-100%);
transform: translateY(-100%);
}
.starter-odometer.odometer-animating-down.odometer-animating .odometer-ribbon-inner {
-webkit-transition: -webkit-transform var(--time);
-moz-transition: -moz-transform var(--time);
-ms-transition: -ms-transform var(--time);
-o-transition: -o-transform var(--time);
transition: transform var(--time);
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-ms-transform: translateY(0);
-o-transform: translateY(0);
transform: translateY(0);
}
.starter-odometer.odometer-animating-up .odometer-ribbon-inner,
.starter-odometer.odometer-animating-down.odometer-animating .odometer-ribbon-inner {
-webkit-transition-timing-function: var(--odometer-easing);
-moz-transition-timing-function: var(--odometer-easing);
-ms-transition-timing-function: var(--odometer-easing);
-o-transition-timing-function: var(--odometer-easing);
transition-timing-function: var(--odometer-easing);
}
.starter-odometer .odometer-digit .odometer-value {
-webkit-transform: translateZ(0);
}
We Make Building a Wallet Really Easy
So you can focus on UX - not the back-end.
Generate Address Method
// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
(async () => {
try {
const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
configureWalletProviders: [
EvmWalletProvider,
]});
const addressFromMnemonic = await tatumSdk.walletProvider
.use(EvmWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
const addressFromXpub = await tatumSdk.walletProvider
.use(EvmWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
console.log(addressFromMnemonic);
console.log(addressFromXpub);
} catch (error) {
console.error("Error generating address:", error);
}
})();
await tatum.destroy()
Create as Many Addresses as You Need
Create limitless user addresses effortlessly with our streamlined code — choose between Mnemonic and Xpub for seamless integration.
Safely Handle
Private Keys
It's integral that every wallet has its private generated in the most safe and reliable way as possible - with Tatum this is easy.
Generate Private Key Method
// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
(async () => {
try {
const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
configureWalletProviders: [
EvmWalletProvider,
]});
const privateKey = await tatumSdk.walletProvider.use(EvmWalletProvider)
.generatePrivateKeyFromMnemonic(mnemonic, 0);
console.log(privateKey);
} catch (error) {
console.error("Error generating private key:", error);
}
})();
await tatum.destroy()
Sign and Broadcast Method
// Install with: npm install @tatumio/evm-wallet-provider @tatumio/tatum
const { EvmWalletProvider } = require("@tatumio/evm-wallet-provider");
const { TatumSDK, Network, Ethereum } = require("@tatumio/tatum");
(async () => {
try {
const tatumSdk = await TatumSDK.init({ network: Network.ETHEREUM,
configureWalletProviders: [
EvmWalletProvider,
]});
const payload = {
privateKey: 'YOUR_PRIVATE_KEY',
// other fields for your transaction...
}
const txHash = await tatumSdk.walletProvider.use(EvmWalletProvider)
.signAndBroadcast(payload);
console.log(txHash);
} catch (error) {
console.error("Error signing and broadcasting transaction:", error);
}
})();
await tatum.destroy()
Sign and Broadcast
Transactions Reliably
Your wallet app has to work smoothly - every time. Tatum SDK provides you with simple code that's battle tested by thousands of wallets.
Generate Address Method
// Import the necessary library and initialize the SDK
import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
configureWalletProviders: [
UtxoWalletProvider,
]});
// Generate address from mnemonic or xpub
const addressFromMnemonic = await tatumSdk.walletProvider
.use(UtxoWalletProvider).generateAddressFromMnemonic(mnemonic, 0);
const addressFromXpub = await tatumSdk.walletProvider
.use(UtxoWalletProvider).generateAddressFromXpub(xpubDetails.xpub, 0);
// This will print the generated address from mnemonic
console.log(addressFromMnemonic);
// This will print the generated address from xpub
console.log(addressFromXpub);
await tatum.destroy();
Create as Many Addresses as You Need
Create limitless user addresses effortlessly with our streamlined code — choose between Mnemonic and Xpub for seamless integration.
Safely Handle
Private Keys
It's integral that every wallet has its private generated in the most safe and reliable way as possible - with Tatum this is easy.
Generate Private Key Method
// Import the necessary library and initialize the SDK
import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
configureWalletProviders: [
UtxoWalletProvider,
]});
// Generate private key from mnemonic
const privateKey = await tatumSdk.walletProvider.use(UtxoWalletProvider)
.generatePrivateKeyFromMnemonic(mnemonic, 0);
console.log(privateKey); // This will print the generated private key
await tatum.destroy();
Sign and Broadcast Method
// Import the necessary library and initialize the SDK
import { UtxoWalletProvider } from '@tatumio/utxo-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.BITCOIN,
configureWalletProviders: [
UtxoWalletProvider,
]});
// Define your transaction details
const payloadUtxo = {
fromAddress: [{ address: 'YOUR_WALLET_ADDRESS', privateKey: 'YOUR_PRIVATE_KEY'}],
to: [{ address: 'TARGET_WALLET_ADDRESS', value: 0.0001 }], // BTC_AMOUNT
fee: '0.00001', // BTC_AMOUNT
changeAddress: 'CHANGE_WALLET_ADDRESS',
}
// Sign and broadcast the transaction using the UTXO Wallet Provider submodule
const txHash = await tatumSdk.walletProvider.use(UtxoWalletProvider)
.signAndBroadcast(payloadUtxo);
// This will print the transaction hash of the broadcasted transaction
console.log(txHash);
await tatum.destroy();
Sign and Broadcast
Transactions Reliably
Your wallet app has to work smoothly - every time. Tatum SDK provides you with simple code that's battle tested by thousands of wallets.
Generate Address Method
// Import the necessary library and initialize the SDK
import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
// Initialize the SDK for Tron
const tatumSdk = await TatumSDK.init({
network: Network.TRON,
configureWalletProviders: [TronWalletProvider]
});
// Derive address from mnemonic
const addressFromMnemonic = await tatumSdk.walletProvider
.use(TronWalletProvider)
.generateAddressFromMnemonic(mnemonic, 0);
// Derive address from xpub
const addressFromXpub = await tatumSdk.walletProvider
.use(TronWalletProvider)
.generateAddressFromXpub(xpubDetails.xpub, 0);
// Output the derived addresses
console.log(addressFromMnemonic); // Prints the address derived from mnemonic
console.log(addressFromXpub); // Prints the address derived from xpub
await tatum.destroy();
Create as Many Addresses as You Need
Create limitless user addresses effortlessly with our streamlined code — choose between Mnemonic and Xpub for seamless integration.
Safely Handle
Private Keys
It's integral that every wallet has its private generated in the most safe and reliable way as possible - with Tatum this is easy.
Generate Private Key Method
// Import the necessary library and initialize the SDK
import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
import { TatumSDK, Network, Tron } from '@tatumio/tatum';
// Initialize the SDK for Tron
const tatumSdk = await TatumSDK.init({
network: Network.TRON,
configureWalletProviders: [TronWalletProvider]
});
// Generate private key from mnemonic
const privateKey = await tatumSdk.walletProvider
.use(TronWalletProvider)
.generatePrivateKeyFromMnemonic(mnemonic, 0);
console.log(privateKey); // This will print the generated private key
await tatum.destroy()
Sign and Broadcast Method
// Import the necessary library and initialize the SDK
import { TronWalletProvider } from '@tatumio/tron-wallet-provider';
import { TatumSDK, Network, Tron } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.TRON,
configureWalletProviders: [
TronWalletProvider,
]});
// Define your transaction details
const payloadTron = {
privateKey: 'YOUR_PRIVATE_KEY',
to: 'TARGET_WALLET_ADDRESS',
amount: '0.01' // TRX_AMOUNT
}
// Sign and broadcast the transaction using the Tron Wallet Provider submodule
const txHash = await tatumSdk.walletProvider.use(TronWalletProvider)
.signAndBroadcast(payloadTron);
// This will print the transaction hash of the broadcasted transaction
console.log(txHash);
await tatum.destroy();
Sign and Broadcast
Transactions Reliably
Your wallet app has to work smoothly - every time. Tatum SDK provides you with simple code that's battle tested by thousands of wallets.
Generate Address Method
// Import the necessary library and initialize the SDK
import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
configureWalletProviders: [TezosWalletProvider],
});
// Generate Address from Private Key
const address = await tatumSdk.walletProvider
.use(TezosWalletProvider)
.generateAddressFromPrivateKey(privateKey);
console.log(address); // This will print the generated address
await tatum.destroy();
Create as Many Addresses as You Need
Create limitless user addresses effortlessly with our streamlined code — choose between Mnemonic and Xpub for seamless integration.
Safely Handle
Private Keys
It's integral that every wallet has its private generated in the most safe and reliable way as possible - with Tatum this is easy.
Generate Private Key Method
// Import the necessary library and initialize the SDK
import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
configureWalletProviders: [TezosWalletProvider],
});
// Generate Private Key from Mnemonic
const privateKey = await tatumSdk.walletProvider
.use(TezosWalletProvider)
.generatePrivateKeyFromMnemonic(mnemonic, 0);
console.log(privateKey); // This will print the generated private key
await tatum.destroy();
Sign and Broadcast Method
// Import necessary libraries
import { TezosWalletProvider } from '@tatumio/tezos-wallet-provider';
import { TatumSDK, Network } from '@tatumio/tatum';
// Initialize the SDK for Tezos
const tatumSdk = await TatumSDK.init({network: Network.TEZOS,
configureWalletProviders: [
{ type: TezosWalletProvider, config: { rpcUrl: 'https://ghostnet.ecadinfra.com' } },
]
});
// Get private key, address and mnemonic
const { privateKey, address, mnemonic } = await tatumSdk.walletProvider
.use(TezosWalletProvider)
.getWallet();
// Output the retrieved data
console.log(privateKey); // Prints the private key
console.log(address); // Prints the address
console.log(mnemonic); // Prints the mnemonic
Sign and Broadcast
Transactions Reliably
Your wallet app has to work smoothly - every time. Tatum SDK provides you with simple code that's battle tested by thousands of wallets.
What Devs Say About Us
Zac Barron
Product Lead at Binance
David Spitzer-Dulagan
CTO at Limewire
Hitoshi Harada
Co-founder & CPO at Alpaca
Access All Tatum Tools
A powerful SDK, lightning-fast RPC nodes, faucets and a whole lot more - for free.
Sign Up