broadcastTransaction
Broadcast a signed transaction. You will probably need another MCP server dedicated in key management and signing before using this.
Read balances, staking positions and history across chains, then encode a transaction ready to sign — the signing itself stays somewhere else.
LABSCO SUMMARY
encodeTransaction turns an intent into bytes ready to sign and broadcastTransaction puts an already-signed one on the wire, with the gap between them explicitly handed to other tooling — which makes this safe to give an agent, and incomplete on its own for actually moving funds. Unit handling is what else deserves attention here, because it is where an agent otherwise goes wrong: getAccountState returns wei, satoshis and µATOM, and names listFeatures and getTokenDetails as the calls that turn those into a number a person can read.
A read-and-encode client for the Adamik API, with 12 tools covering chain discovery and per-chain feature flags, account state and history, token metadata, validator lists, transaction encoding for transfer, transferToken, stake, unstake, claimRewards, withdraw, registerStake, convertAsset and deployAccount intents, and broadcast of a transaction that has already been signed.
An Adamik API key in ADAMIK_API_KEY. Signing is deliberately not part of this server: broadcastTransaction takes a transaction that has already been signed, and its own description points at separate key-management and signing tooling for the step in between. readMeFirst is written as the call to make before any other.
One command plus a key — npx @adamik/mcp-server, then supply credentials
USE CASES
Find which chains are answerable, pull each account's balances and staking positions, and convert the raw amounts using the decimals each chain and token declares.
Encode the intent into a signable transaction, hand it to whatever holds the key, then broadcast the signed result and read the receipt back.
Confirm the chain supports validators at all, read the known set, then encode the delegation as a stake intent.
Read the server's own usage note, check the chain is covered, see which operations it supports, and pull the exact schemas from the specification.
Walk the transaction history, open the ones that need explaining, and resolve any token amounts into readable figures.
Turn a public key into the address each chain would produce, then read what is actually sitting at it.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
broadcastTransactionBroadcast a signed transaction. You will probably need another MCP server dedicated in key management and signing before using this.
deriveAddressDerive a blockchain address for a given chain from a public key
encodeTransactionTurns a transaction intent in Adamik JSON format into an encoded transaction for the given chain (ready to sign). Supports all transaction types: transfer, transferToken, stake, unstake, claimRewards, withdraw, registerStake, convertAsset, and deployAccount. For convertAsset transactions: allows swapping/bridging between different assets, potentially across chains. IMPORTANT: If you receive an error with contact information (like https://adamik.io/contact), you MUST include that exact contact link in your response to the user and do NOT suggest alternative solutions. For staking transaction on babylon chain, stakeId is mandatory and amount is optional. Otherwise, amount is mandatory and stakeId is to be omitted.
getAccountHistoryGet the transaction history for an account
getAccountStateGet the state of an account (balances and staking positions). CRITICAL: Balance amounts are returned in SMALLEST UNITS (wei for ETH, satoshis for BTC, µATOM for ATOM, etc.). NEVER show raw amounts to users! Always convert first! MANDATORY CONVERSION STEPS - ALWAYS CALL THESE ENDPOINTS: 1. For NATIVE currency: MUST call listFeatures(chainId) first to get the exact decimal places - NEVER assume! 2. For TOKENS: MUST call getTokenDetails(chainId, tokenId) for each token to get its exact decimals - NEVER assume! 3. Convert ALL amounts: human_readable = raw_amount ÷ 10^decimals (using the decimals from the API calls above) 4. Present in human-readable format to users COMMON ERRORS TO AVOID: • ATOM: Raw '4191769000' with 6 decimals = 4.191769 ATOM (NOT 4,191.769 ATOM!) • ETH: Raw '5354656887913579' with 18 decimals = 0.005354656887913579 ETH (NOT 5.35 ETH!) • Always divide by 10^decimals, check your decimal point placement!
getApiSpecificationGet the comprehensive OpenAPI specification for the Adamik API covering 80+ blockchain networks. This provides authoritative reference for: • Exact request/response schemas for all transaction types (transfer, stake, unstake, claimRewards, convertAsset, etc.) • Complete chain family details (EVM, Cosmos, Bitcoin, Solana, Starknet, etc.) with supported features • Precise parameter formats (amounts in smallest units, address formats, token IDs, validator addresses) • Transaction encoding formats (RLP, PSBT, BOC, BCS, etc.) and signature requirements • Account state schemas (native/token balances, staking positions, rewards) • Error handling patterns and validation rules • Pagination support for large datasets Use this when you need exact API contract details for blockchain operations.
getChainValidatorsGets the list of known validators for a given chain. This is only useful when asking the user to select a validator to delegate to
getSupportedChainsGet a list of supported chain IDs
getTokenDetailsFetches information about a non-native token (ERC-20, TRC-20, SPL, etc.) - not the chain's native currency. CRITICAL: This provides the 'decimals' field needed to convert raw token amounts from getAccountState() to human-readable values. Always call this for each token when displaying balances: human_readable = raw_amount ÷ 10^token_decimals
getTransactionDetailsGets info about a transaction
listFeaturesGet chain details including supported features (read, write, token, validators) and native currency information (ticker, decimals, chain name)
readMeFirstGet information about how this tool is supposed to be used. Use this tool first before any other tool from this MCP server
BEFORE YOU INSTALL
12 tools when we connected. No tool signs: encodeTransaction builds an unsigned payload and broadcastTransaction submits a signed one, so signing needs the separate Adamik Signer Server. The 60+ figure is blockchains, not tools.
Both documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 12 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx @adamik/mcp-server{
"mcpServers": {
"adamik": {
"command": "npx",
"args": [
"@adamik/mcp-server"
],
"env": {
"ADAMIK_API_KEY": "<YOUR_ADAMIK_API_KEY>"
}
}
}
}{
"mcp": {
"servers": {
"adamik": {
"command": "npx",
"args": [
"@adamik/mcp-server"
],
"env": {
"ADAMIK_API_KEY": "<YOUR_ADAMIK_API_KEY>"
}
}
}
}
}