Ledger MCP Tool Reference
This document provides an exhaustive reference for every tool available through the Ledger MCP (Model Context Protocol) server. The Ledger MCP connects to the Regen Network blockchain — a Cosmos SDK-based chain specializing in ecological credits and regenerative finance.
Each tool is documented with its purpose, parameters, return values, and practical usage guidance for digest generation.
Bank Module
The Bank module manages token balances, transfers, and denomination metadata across the Regen Network blockchain. These tools provide access to account information, token supplies, and holder data.
list_accounts
List all accounts on Regen Network with pagination support.
Parameters:
page(int, default: 1) — Page number for paginationlimit(int, default: 100) — Number of results per pagecount_total(bool, default: true) — Return total countreverse(bool, default: false) — Descending order
Returns: Dictionary with accounts list and pagination metadata
When to use in digests: Use when generating ecosystem-level statistics about the number of active accounts or when analyzing network growth over time. Rarely needed for daily digests, more appropriate for monthly or yearly summaries.
get_account
Get detailed information for a specific account.
Parameters:
address(string, required) — Cosmos account address (e.g.,regen1...)
Returns: Dictionary with account type, sequence number, and account details
When to use in digests: Use when profiling specific actors in the ecosystem (project developers, major credit holders, governance participants). Helpful for “spotlight” sections in weekly or monthly digests.
get_balance
Get balance of a specific token for an address.
Parameters:
address(string, required) — Cosmos account address (e.g.,regen1...)denom(string, required) — Token denomination (e.g.,uregen,ibc/...)
Returns: Dictionary with balance amount and denomination
When to use in digests: Use when tracking specific wallets or treasury balances. Good for monitoring community pool holdings or validator commission balances in weekly updates.
get_all_balances
Get all token balances for an address with pagination.
Parameters:
address(string, required) — Cosmos account addresslimit(int, optional, default: 100) — Page size (max 200)page(int, optional, default: 1) — Page number (1-based)count_total(bool, optional, default: true) — Return total countreverse(bool, optional, default: false) — Descending order
Returns: Dictionary with all balances and pagination info
When to use in digests: Use for portfolio analysis of major ecosystem participants. Helpful in monthly digests when profiling top credit holders or analyzing wallet diversification.
get_spendable_balances
Get spendable (unlocked, not staked) balances for an address.
Parameters:
address(string, required) — Cosmos account addresslimit(int, optional, default: 100) — Page sizepage(int, optional, default: 1) — Page numbercount_total(bool, optional, default: true) — Return total countreverse(bool, optional, default: false) — Descending order
Returns: Dictionary with spendable balances and pagination
When to use in digests: Use when analyzing available liquidity in the ecosystem. Relevant for market health assessments in weekly or monthly digests.
get_total_supply
Get total supply of all coin denominations on the network.
Parameters:
limit(int, optional, default: 100) — Page sizepage(int, optional, default: 1) — Page numbercount_total(bool, optional, default: true) — Return total countreverse(bool, optional, default: false) — Descending order
Returns: Dictionary with total supply data for all denominations
When to use in digests: Use for high-level tokenomics summaries. Essential for monthly and yearly digests covering REGEN token inflation, total value locked, and ecosystem growth metrics.
get_supply_of
Get total supply of a specific denomination.
Parameters:
denom(string, required) — Token denomination (e.g.,uregen,ibc/...)
Returns: Dictionary with supply amount and metadata
When to use in digests: Use when tracking REGEN token supply specifically, or when analyzing the supply of basket tokens (NCT, NBO). Helpful for monthly tokenomics sections.
get_bank_params
Get bank module parameters (send enabled, default send enabled).
Parameters: None
Returns: Dictionary with bank module configuration
When to use in digests: Rarely needed unless there’s been a governance change to bank module parameters. Include in governance update sections when parameters change.
get_denoms_metadata
Get metadata for all token denominations.
Parameters:
page(int, default: 1) — Page numberlimit(int, default: 100) — Results per pagecount_total(bool, default: true) — Return total countreverse(bool, default: false) — Descending order
Returns: Dictionary with denomination metadata (display names, decimals, symbols)
When to use in digests: Use when new denominations are registered or when explaining token types to new community members. Good for educational sections in weekly or monthly digests.
get_denom_metadata
Get metadata for a specific token denomination.
Parameters:
denom(string, required) — Token denomination
Returns: Dictionary with denomination metadata
When to use in digests: Use when explaining a specific token in depth, such as a new basket token or IBC token. Helpful for feature stories in weekly digests.
get_denom_owners
Get all holders of a specific token.
Parameters:
denom(string, required) — Token denominationpage(int, default: 1) — Page numberlimit(int, default: 100) — Results per pagecount_total(bool, default: true) — Return total countreverse(bool, default: false) — Descending order
Returns: Dictionary with list of token holders and balances
When to use in digests: Use for holder distribution analysis. Excellent for monthly digests covering token concentration, decentralization metrics, or analyzing who holds specific credit batches.
Distribution Module
The Distribution module handles staking rewards, validator commissions, and the community pool. These tools provide insight into validator economics and delegator rewards.
get_distribution_params
Get distribution module parameters (community tax, base proposer reward, bonus proposer reward, withdraw address enabled).
Parameters: None
Returns: Dictionary with distribution parameters
When to use in digests: Include when governance proposals change distribution parameters. Relevant for governance-focused sections in weekly or monthly digests.
get_validator_outstanding_rewards
Get outstanding (unclaimed) rewards for a validator.
Parameters:
validator_address(string, required) — Validator operator address (starts withregenvaloper)
Returns: Dictionary with outstanding rewards
When to use in digests: Use when profiling validator economics. Helpful for validator spotlight sections in monthly digests or when analyzing validator sustainability.
get_validator_commission
Get accumulated commission for a validator.
Parameters:
validator_address(string, required) — Validator operator address
Returns: Dictionary with validator commission
When to use in digests: Similar to outstanding rewards — use for validator economic analysis. Particularly relevant when discussing validator incentives and profitability.
get_validator_slashes
Get slashing events for a validator within a block height range.
Parameters:
validator_address(string, required) — Validator operator addressstarting_height(int, optional) — Starting block heightending_height(int, optional) — Ending block heightpage(int, default: 1) — Page numberlimit(int, default: 100) — Results per page
Returns: Dictionary with slashing events
When to use in digests: Use when slashing events occur. Critical for network security sections in daily or weekly digests when validators are penalized for downtime or double-signing.
get_delegation_rewards
Get rewards for a specific delegator-validator pair.
Parameters:
delegator_address(string, required) — Delegator account addressvalidator_address(string, required) — Validator operator address
Returns: Dictionary with delegation rewards
When to use in digests: Use when profiling specific delegator-validator relationships. Helpful for case studies in monthly digests.
get_delegation_total_rewards
Get total delegation rewards across all validators for a delegator.
Parameters:
delegator_address(string, required) — Delegator account address
Returns: Dictionary with total rewards and breakdown by validator
When to use in digests: Use when analyzing delegator returns or when profiling major staking participants. Good for staking APR analysis in monthly digests.
get_delegator_validators
Get list of validators that a delegator has bonded to.
Parameters:
delegator_address(string, required) — Delegator account address
Returns: Dictionary with list of validators
When to use in digests: Use for delegator diversification analysis. Helpful when examining staking patterns in monthly ecosystem reports.
get_delegator_withdraw_address
Get the withdraw address configured for a delegator (where rewards are sent).
Parameters:
delegator_address(string, required) — Delegator account address
Returns: Dictionary with withdraw address
When to use in digests: Rarely needed for digests unless there’s a specific security or tax-planning story about reward withdrawal patterns.
get_community_pool
Get current community pool balance.
Parameters: None
Returns: Dictionary with community pool token balances
When to use in digests: Use in every monthly digest and yearly summary. The community pool balance is a key metric for ecosystem treasury health and governance capacity.
Governance Module
The Governance module manages on-chain proposals, voting, deposits, and tally results. These tools are essential for tracking governance activity.
get_governance_proposal
Get details for a specific governance proposal.
Parameters:
proposal_id(string or int, required) — Proposal ID
Returns: Dictionary with proposal details (title, description, status, voting end time, tally)
When to use in digests: Use in daily and weekly digests when proposals are active. Essential for governance sections covering proposal status and voting outcomes.
list_governance_proposals
List governance proposals with optional filters.
Parameters:
page(int, default: 1) — Page numberlimit(int, default: 100) — Results per pageproposal_status(string, optional) — Filter by status (e.g.,PROPOSAL_STATUS_VOTING_PERIOD)voter(string, optional) — Filter by voter addressdepositor(string, optional) — Filter by depositor address
Returns: Dictionary with list of proposals and pagination
When to use in digests: Use in every weekly digest to summarize active and recently concluded proposals. Filter by status to show only active proposals in daily digests.
get_governance_vote
Get a specific vote on a proposal.
Parameters:
proposal_id(string or int, required) — Proposal IDvoter(string, required) — Voter account address
Returns: Dictionary with vote details (option, weight)
When to use in digests: Use when profiling how specific actors voted on important proposals. Good for governance transparency sections in weekly or monthly digests.
list_governance_votes
List all votes for a specific proposal.
Parameters:
proposal_id(string or int, required) — Proposal IDpage(int, default: 1) — Page numberlimit(int, default: 100) — Results per page
Returns: Dictionary with list of votes and pagination
When to use in digests: Use to analyze voting patterns and participation rates. Essential for post-vote analysis in weekly digests covering governance outcomes.
list_governance_deposits
List all deposits for a specific proposal.
Parameters:
proposal_id(string or int, required) — Proposal IDpage(int, default: 1) — Page numberlimit(int, default: 100) — Results per page
Returns: Dictionary with list of deposits and pagination
When to use in digests: Use when proposals are in deposit period or when analyzing who supports proposals financially. Helpful for early-stage proposal coverage in daily digests.
get_governance_params
Get governance parameters for a specific parameter type.
Parameters:
params_type(string, required) — Type of parameters:voting,deposit, ortally
Returns: Dictionary with governance parameters
When to use in digests: Include when governance parameters change via proposals. Important for governance update sections explaining new voting periods, deposit requirements, or quorum thresholds.
get_governance_deposit
Get a specific deposit for a proposal.
Parameters:
proposal_id(string or int, required) — Proposal IDdepositor(string, required) — Depositor account address
Returns: Dictionary with deposit details
When to use in digests: Use when profiling deposit activity for specific proposals. Helpful for stories about community support or lack thereof.
get_governance_tally_result
Get vote tally for a proposal.
Parameters:
proposal_id(string or int, required) — Proposal ID
Returns: Dictionary with tally counts (yes, no, abstain, no_with_veto)
When to use in digests: Essential for every governance digest. Use to show current vote counts for active proposals and final tallies for concluded votes.
Ecocredit Module
The Ecocredit module is the heart of Regen Network’s ecological asset infrastructure. These tools provide access to credit types, classes, projects, and batches.
list_credit_types
List all enabled credit types on Regen Network.
Parameters: None
Returns: Dictionary with credit types (abbreviation, name, unit, precision)
When to use in digests: Use when new credit types are added via governance. Good for explaining the ecosystem’s diversity in monthly or yearly digests.
Example output:
{
"credit_types": [
{"abbreviation": "C", "name": "carbon", "unit": "metric ton CO2 equivalent", "precision": 6},
{"abbreviation": "BIO", "name": "biodiversity", "unit": "biodiversity unit", "precision": 6}
]
}list_classes
List all credit classes (methodologies).
Parameters:
limit(int, default: 100, max: 1000) — Number of classes to returnoffset(int, default: 0) — Number to skip for paginationcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse order
Returns: Dictionary with credit classes including resolved names from metadata
When to use in digests: Use in monthly digests to show methodology diversity. Essential when new methodologies are registered or when explaining the difference between credit classes (e.g., C01 vs C02).
Example: List all carbon credit methodologies currently available on-chain.
list_projects
List all registered projects on Regen Network.
Parameters:
limit(int, default: 100, max: 1000) — Number of projects to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse order
Returns: Dictionary with projects (id, admin, class_id, jurisdiction, metadata, reference_id)
When to use in digests: Use in weekly and monthly digests to track new project registrations. Essential for “new projects” sections and geographic diversity analysis.
Example: Show how many new projects were registered this month and where they’re located.
list_credit_batches
List all issued credit batches.
Parameters:
limit(int, default: 100, max: 1000) — Number of batches to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse order
Returns: Dictionary with credit batches (issuer, project_id, denom, metadata, start_date, end_date, issuance_date, open)
When to use in digests: Use in every weekly digest to show new credit issuances. Critical for tracking total credits issued, vintage years, and issuance velocity.
Example: List all batches issued in the last 7 days with their vintage periods and quantities.
Marketplace Module
The Marketplace module facilitates peer-to-peer trading of ecocredits. These tools provide access to sell orders and market pricing.
get_sell_order
Get details for a specific sell order.
Parameters:
sell_order_id(string or int, required) — Unique sell order identifier
Returns: Dictionary with sell order (id, seller, batch_denom, quantity, ask_denom, ask_amount, disable_auto_retire, expiration, market_id)
When to use in digests: Use when profiling specific large or notable sell orders. Helpful for market analysis in weekly digests.
list_sell_orders
List all active sell orders on the marketplace.
Parameters:
limit(int, default: 100, max: 1000) — Number of orders to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse orderkey(string, optional) — Pagination key for next page
Returns: Dictionary with sell orders and pagination
When to use in digests: Use in every weekly digest to analyze market liquidity and pricing trends. Essential for understanding market depth and available inventory.
Example: Show current ask prices for different credit classes and analyze price distribution.
list_sell_orders_by_batch
List all sell orders for a specific credit batch.
Parameters:
batch_denom(string, required) — Batch denomination to filter bylimit(int, default: 100, max: 1000) — Number of orders to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse orderkey(string, optional) — Pagination key
Returns: Dictionary with sell orders for specified batch
When to use in digests: Use when analyzing pricing and liquidity for specific batches. Good for batch-level market analysis in monthly digests.
list_sell_orders_by_seller
List all sell orders created by a specific seller.
Parameters:
seller(string, required) — Seller address to filter bylimit(int, default: 100, max: 1000) — Number of orders to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse orderkey(string, optional) — Pagination key
Returns: Dictionary with sell orders for specified seller
When to use in digests: Use when profiling major market participants. Helpful for “seller spotlight” sections in monthly digests.
list_allowed_denoms
List all denominations approved for marketplace payments.
Parameters:
limit(int, default: 100, max: 1000) — Number of denoms to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse orderkey(string, optional) — Pagination key
Returns: Dictionary with allowed denoms (bank_denom, display_denom, exponent)
When to use in digests: Use when new payment tokens are approved via governance. Relevant for marketplace infrastructure updates in monthly digests.
Basket Module
Baskets are fungible pools of ecocredits meeting specific criteria. These tools provide access to basket information and composition.
list_baskets
List all active ecocredit baskets.
Parameters:
limit(int, default: 100, max: 1000) — Number of baskets to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse order
Returns: Dictionary with baskets (basket_denom, name, disable_auto_retire, credit_type_abbrev, date_criteria, exponent, curator)
When to use in digests: Use in monthly digests to show all available baskets and their characteristics. Essential when new baskets are created or when explaining basket functionality.
Example baskets:
- NCT (Nature Carbon Tonne)
- NBO (Nature Biodiversity Offset)
get_basket
Get detailed information about a specific basket.
Parameters:
basket_denom(string, required) — Basket denomination (e.g.,eco.uC.NCT)
Returns: Dictionary with basket information
When to use in digests: Use when profiling a specific basket or when explaining basket mechanics. Good for educational sections in weekly digests.
list_basket_balances
List all credit batches held in a specific basket.
Parameters:
basket_denom(string, required) — Basket denominationlimit(int, default: 100, max: 1000) — Number of balances to returnoffset(int, default: 0) — Number to skipcount_total(bool, default: true) — Return total countreverse(bool, default: false) — Reverse order
Returns: Dictionary with basket balances (basket_denom, batch_denom, balance)
When to use in digests: Use to analyze basket composition and diversity. Essential for monthly basket health reports showing which batches are in each basket and in what quantities.
get_basket_balance
Get balance of a specific credit batch within a basket.
Parameters:
basket_denom(string, required) — Basket denominationbatch_denom(string, required) — Credit batch denomination
Returns: Dictionary with balance
When to use in digests: Use when analyzing specific batch contributions to baskets. Helpful for detailed basket composition analysis.
get_basket_fee
Get current fee required to create a new basket.
Parameters: None
Returns: Dictionary with basket creation fee
When to use in digests: Include when governance changes basket fees. Relevant for governance update sections in weekly or monthly digests.
Analytics Module
Advanced analytical tools for portfolio impact assessment, market trend analysis, and methodology comparison. These tools synthesize on-chain data into higher-level insights.
analyze_portfolio_impact
Analyze the ecological impact of a portfolio with advanced metrics.
Parameters:
address(string, required) — Regen Network address (e.g.,regen1...)analysis_type(string, default:full) — Type of analysis:full,carbon,biodiversity, ordiversification
Returns: Dictionary with comprehensive impact analysis including:
- Ecological impact scores and metrics
- Portfolio composition breakdown
- Diversification metrics
- Optimization recommendations
- Risk assessment
When to use in digests: Use in monthly digests to profile major ecosystem participants or community treasury. Excellent for “portfolio spotlight” sections showing impact metrics and diversification.
Example: Analyze the Regen Foundation treasury to show total ecological impact, credit type diversity, and geographic distribution.
analyze_market_trends
Analyze market trends across credit types with pricing and volume analysis.
Parameters:
time_period(string, default:30d) — Time period:7d,30d,90d, or1ycredit_types(list of strings, optional) — Credit types to analyze (e.g.,["C", "BIO"]). If None, analyzes all types.
Returns: Dictionary with market trend analysis including:
- Price trends and volatility
- Volume trends and market activity
- Market sentiment indicators
- Projection insights
When to use in digests: Use in every weekly digest to show market health and trends. Essential for understanding pricing dynamics, market depth, and trading activity across different credit types.
Example: Show 30-day price trends for carbon credits (type C) and highlight market liquidity changes.
compare_credit_methodologies
Compare different credit class methodologies for impact efficiency.
Parameters:
class_ids(list of strings, required) — Credit class IDs to compare (minimum 2)
Returns: Dictionary with methodology comparison including:
- Methodology scores (additionality, measurability, permanence, co-benefits, scalability)
- Market performance metrics
- Investment recommendation scores
- Comparative analysis matrix
When to use in digests: Use in monthly digests when explaining methodology differences or when helping stakeholders understand which credit classes to prioritize. Excellent for educational content comparing VCS, GHG Protocol, or other methodologies.
Example: Compare C01, C02, and C03 to show which methodology has the highest impact scores and best market performance.
Usage Patterns for Digest Generation
Daily Digests
- Governance:
list_governance_proposals(filter by active status) - Market:
list_sell_orders(new orders in last 24 hours) - Credits:
list_credit_batches(new issuances in last 24 hours)
Weekly Digests
- Governance:
list_governance_proposals,get_governance_tally_result,list_governance_votes - Market:
list_sell_orders,analyze_market_trends(7d period) - Credits:
list_credit_batches(week’s issuances),list_projects(new projects) - Treasury:
get_community_pool
Monthly Digests
- Governance: Full governance summary with all proposals, votes, and outcomes
- Market:
analyze_market_trends(30d period),list_sell_orders_by_seller(top sellers) - Credits:
list_classes(new methodologies),list_projects(geographic breakdown),list_credit_batches(monthly totals) - Baskets:
list_baskets,list_basket_balances(composition analysis) - Treasury:
get_community_pool,get_total_supply(tokenomics) - Analytics:
analyze_portfolio_impact(treasury or major holders),compare_credit_methodologies
Yearly Digests
- All modules: Comprehensive year-over-year analysis
- Key metrics: Total credits issued, total value locked, governance participation rate, market volume
- Analytics:
analyze_market_trends(1y period), portfolio impact for all major stakeholders - Growth: Account growth via
list_accounts, project growth vialist_projects
Common Patterns
Pagination Best Practices
Most list endpoints support pagination. For digest generation, you typically want complete data sets:
# Get all proposals (not just first page)
page = 1
all_proposals = []
while True:
result = await list_governance_proposals(page=page, limit=100)
proposals = result.get("proposals", [])
all_proposals.extend(proposals)
pagination = result.get("pagination", {})
if not pagination.get("next_key"):
break
page += 1Filtering Recent Activity
For daily and weekly digests, filter by date fields:
# Get batches issued in the last 7 days
from datetime import datetime, timedelta
batches = await list_credit_batches(limit=1000)
recent_batches = [
batch for batch in batches.get("batches", [])
if batch.get("issuance_date") and
datetime.fromisoformat(batch["issuance_date"]) > datetime.now() - timedelta(days=7)
]Cross-Module Queries
Many insights require combining data from multiple modules:
# Get governance proposal with current tally
proposal = await get_governance_proposal(proposal_id=123)
tally = await get_governance_tally_result(proposal_id=123)
votes = await list_governance_votes(proposal_id=123, limit=1000)
# Combine for complete governance story
governance_summary = {
"proposal": proposal,
"tally": tally,
"total_votes": len(votes.get("votes", [])),
"participation_rate": calculate_participation(votes, total_staked)
}Error Handling
All tools return error dictionaries when requests fail:
{
"error": "Query failed: Not found",
"retryable": false
}When building digests, always check for errors and handle gracefully:
result = await get_governance_proposal(proposal_id=999)
if "error" in result:
# Log error, skip this item, or show placeholder
logger.warning(f"Failed to fetch proposal 999: {result['error']}")
else:
# Process successful result
process_proposal(result)Rate Limiting and Performance
The Ledger MCP includes automatic retry logic with exponential backoff for transient errors (5xx, 429, timeouts). When generating digests:
- Batch requests when possible (use pagination efficiently)
- Cache results for expensive queries (especially analytics tools)
- Parallelize independent queries using
asyncio.gather() - Use summary modes when available (e.g., batch supply summaries)
Conclusion
This reference covers all 45+ tools available through the Ledger MCP. Each tool is designed to provide specific blockchain data, and together they enable comprehensive ecosystem analysis.
For digest generation, the most commonly used tools are:
- Governance:
list_governance_proposals,get_governance_tally_result - Credits:
list_credit_batches,list_projects,list_classes - Market:
list_sell_orders,analyze_market_trends - Treasury:
get_community_pool,get_total_supply - Analytics:
analyze_portfolio_impact,compare_credit_methodologies
Combine these tools strategically to tell compelling stories about the Regen Network ecosystem’s growth, governance, and ecological impact.