KMS General FAQ
Running Multiple KMS Instances
Q: We are setting up development and pre-production configuration on a single server. Can we start KMS twice with separate paths?
Example:
tatum-kms daemon --path=/path/to/wallet/store/directory/wallet.dat
# Running KMS for Development:
docker run -d --env-file .env -v $HOME:/root/.tatumrc tatumio/tatum-kms daemon --period 10 --chain=MATIC --testnet
# Running KMS for Pre-production:
docker run -d --env-file .env-pre-prod -v $HOME:/root/.tatumrc tatumio/tatum-kms daemon --period 10 --chain=MATIC --external-url={{URL}}
A: Yes, with caveats.
- You must use different
.env
files (.env
for dev and.env-pre-prod
for pre-production). - Each instance must have a unique wallet.dat file (e.g.,
wallet-dev.dat
andwallet-preProd.dat
). - Each instance should have its own API key to avoid conflicts.
- Use the
--path
parameter to explicitly separate wallet storage per environment. - Refer to the KMS repository for details: Tatum KMS GitHub.
Four-Eyes Principle in KMS Daemon
Q: Can you give an example of the four-eyes principle in KMS Daemon? What parameters should we set and how should we do this?
A: This is implemented via an additional API call where you validate whether a transaction should be signed. You can use a REST API listener to enforce this check before signing occurs.
Note
Find additional information about the 4 eye principle and Mainnet errors in this article.
Storage and Backup
Q: Where are the private keys stored?
A: Inside wallet.dat
file - encrypted in JSON file in KMS-specific format
Q: If we generate several wallets does it create several [wallet.dat]?
A: No. All wallets are in one wallet.dat
file
Q: Can we restore a Tatum wallet on a different server using backup wallet.dat and password?
A: Yes, as long as you have the encrypted wallet.dat file and the correct password.
Note
- Find additional information about password issues in this article
- If you lost your password, refer to this article.
High Availability & Failover
Q: Can we run two KMS setups in "daemon mode" from two isolated servers, but with the same [wallet.dat] file to have high availability and failover?
A: Yes, but ensure that both KMS instances do not attempt to write to the same wallet.dat
file simultaneously to avoid corruption.
Security & Password Management
Q: Can the KMS password be changed?
A: No, password changes are not currently supported.
KMS with AWS
Q: How can I set up KMS with AWS?
A: Configure AWS access credentials using: TATUM_KMS_AWS_ACCESS_KEY_ID
and TATUM_KMS_AWS_SECRET_ACCESS_KEY
- AWS credentials expire per session. To avoid interruptions, use AWS Long-Term Access Keys.
- For AWS security policies, refer to:
Mnemonic Recovery & Transactions
Q: If we generate new mnemonic phrases in KMS, do previously generated mnemonics remain valid?
A: Yes, previously generated mnemonics remain valid and can still be used.
Q: I am getting an Error 403: "Unable to broadcast transaction", with "16: mandatory-script-verify-flag-failed..."
. What’s wrong?
A: Verify that the signature ID is correct:
- For BTC-based chains, use a key-based signature ID instead of a mnemonic-based one.
Azure Key Vault Integration
Q: How can I make KMS work inside a Linux container while accessing an Azure Key Vault for password retrieval?
A: Follow the implementation details at: Tatum KMS GitHub. Look for:
if (flags.azure) { ... }
Blockchain-Specific Questions
Q: How do I use TRON (TRX) and TRC tokens with KMS?
A: Use TRON for all TRX and TRC20 token transfers. The blockchain supports both TRC-10 and TRC-20 tokens natively.
Q: I sent a transaction with incorrect data. Every time KMS runs, it keeps trying to execute and fails. What can I do?
A: Delete the unsuccessful transaction via this endpoint.
Note
Find more about Tron and common KMS errors in this article.
Language & API Compatibility
Q: I want to work with KMS on PHP. Is that possible?
A: Yes. Start KMS in Docker mode on a server and then you can the Tatum API in any language like PHP to do the transfers.
Gas Pump & Fees
Q: How do I link KMS tx signature with Gas Pump?
A: Check the following article.
Q: What is the cost for each KMS signature withdrawal?
A: 4 credits per transaction:
- 2 credits per signature request
- 2 credits for broadcasting
Exporting Wallet Data
Q: How can I export to file the wallet?
A: Run the following command:
tatum-kms export --path=/pathtodirectory/wallet.dat
Updated 17 days ago