Skip to main content
Glama

Vibecoins MCP

An MCP (Model Context Protocol) server that lets AI assistants launch coins on Ethereum and manage crypto wallets.

What is this?

This server connects AI assistants (like Claude) to the Vibecoins platform, enabling:

  • Wallet Management - Create encrypted Ethereum wallets, check balances, transfer ETH

  • Coin Launching - Deploy ERC-20 tokens on Ethereum with built-in liquidity

  • Fee Collection - Earn 1% of every trade on coins you launch, forever

  • Listings - Browse and search all launched coins

Related MCP server: Armor Crypto MCP

Installation

With Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "vibecoin": {
      "command": "npx",
      "args": ["github:surfer77/vibecoin-mcp"]
    }
  }
}

With Claude Code

claude mcp add vibecoin -- npx github:surfer77/vibecoin-mcp

Manual Installation

git clone https://github.com/surfer77/vibecoin-mcp.git
cd vibecoin-mcp
npm install
npm start

Then add to Claude Desktop config:

{
  "mcpServers": {
    "vibecoin": {
      "command": "node",
      "args": ["/path/to/vibecoin-mcp/index.js"]
    }
  }
}

Available Tools

Tool

Description

info

Platform overview, tokenomics, fees, and contract addresses

wallet

Create wallet, check balance, transfer ETH, collect fees

launch

Deploy a new coin on Ethereum mainnet

my-fees

View earnings from your launched coins

listings

Browse all coins, search, or filter by top market cap

How Coin Launches Work

  1. Create a wallet - Your private key is encrypted locally with a password

  2. Launch your coin - Pick a name and symbol (e.g., "DogeCoin", "DOGE")

  3. Automatic deployment - 1 billion tokens created with Uniswap v4 liquidity

  4. Earn forever - You get 1% of every trade on your coin

Token Distribution

  • 49% to you (vested over 6 months)

  • 51% to public trading pool

Environment Variables (Optional)

All defaults are pre-configured. You only need these if you want to override:

Variable

Default

Description

LAUNCHER_API_URL

https://vibecoin.up.railway.app

Vibecoins API endpoint

RPC_URL

Sepolia RPC

Ethereum RPC endpoint

Security

  • Wallets are encrypted with AES-256

  • Private keys never leave your machine

  • Passwords are never stored or transmitted

  • See SECURITY.md for details

License

MIT

Available Tools

6 tools
infoA

Get information about Vibecoins - the platform for launching coins on the Ethereum world computer.

Actions:

  • platform: Overview of Vibecoins, how it works, and why use it

  • tokenomics: Token distribution, vesting, and supply details

  • fees: Fee structure for launching and trading

  • contracts: Smart contract addresses and chain info

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoWhat info to retrieve: platform (overview), tokenomics (token details), fees (fee structure), contracts (addresses)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It is transparent about what each action returns: platform overview, tokenomics details, fee structure, and contract addresses. It also clarifies scope (e.g., 'chain info' for contracts). The read-only nature is implicit in 'Get information'. It does not disclose response format or if data is static, but for a simple info tool this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It front-loads the core purpose in one sentence, then uses a clean bulleted list for actions. There is no redundant filler, and every sentence contributes value. The structure makes the information easily scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter tool with no output schema, the description is complete. It covers all possible action values and explains what each returns. Sibling tool differentiation is not explicitly addressed, but the description's clarity makes it sufficient for a basic informational tool. No additional context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the single 'action' parameter with enum values and descriptions. The tool description adds further detail beyond the schema, such as 'how it works and why use it' for platform, 'vesting' for tokenomics, 'for launching and trading' for fees, and 'chain info' for contracts. This enhances understanding of the parameter values beyond the schema's brief labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get information about Vibecoins' and enumerates four specific action types (platform, tokenomics, fees, contracts). This is a specific verb+resource combination. It does not explicitly distinguish from sibling tools like 'my-fees' or 'wallet', but the scope (general info vs personal data) is reasonably implied by the content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or note that this tool is for general information while other siblings (e.g., 'my-fees', 'vesting') are user-specific. The action list implies usage, but there is no explicit comparison or decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

launchA

Deploy a new coin/token on Ethereum mainnet.

What happens:

  1. Your coin is deployed with 1 billion total supply

  2. You receive 49% (vested over 6 months)

  3. 51% goes to the public trading pool

  4. You earn 1% of every trade forever

Requirements:

  • Must have a wallet (use wallet tool first)

  • Password to sign the launch transaction

  • Coin name

  • Trading symbol (e.g., DOGE, PEPE)

Optional (but encouraged):

  • URL: Project website

  • GitHub: Source code repository

  • Description: What your project does

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoProject website URL (optional but encouraged)
nameYesCoin name
githubNoGitHub repository URL (optional but encouraged)
symbolYesTrading symbol
passwordYesWallet password to sign the launch
descriptionNoBrief description of your project (optional but encouraged)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral transparency. It proactively discloses key effects: 1B supply, 49% vested over 6 months, 51% to public pool, and 1% perpetual trade fee. It also notes the need for a wallet and password to sign, giving a clear behavioral contract, though it does not mention irreversibility or gas costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections: 'What happens', 'Requirements', and 'Optional'. Each bullet is informative and directly useful, with no filler or repetition. It is appropriately sized for a deployment tool and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the deployment process, requirements, and optional fields, making it sufficient for most use cases. However, since there is no output schema, it does not clarify what the tool returns (e.g., transaction hash, confirmation), but the step-by-step 'What happens' mitigates this gap. Overall it is contextually strong for a medium-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% parameter descriptions, so the baseline is 3. The tool description adds meaningful context by explaining the purpose of password ('to sign the launch'), and explicitly labeling url, github, and description as 'optional but encouraged', which reinforces their role beyond the schema entries. This adds value above the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Deploy a new coin/token on Ethereum mainnet,' which is a specific verb+resource statement that clearly differentiates from sibling tools like wallet, info, and vesting. It also enumerates the deployment outcome (total supply, distribution, fee) in the 'What happens' section, leaving no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use this tool (to launch a token) and lists prerequisites such as having a wallet and password, but it does not explicitly mention when NOT to use it or name alternative tools. It is more than implied usage, but falls short of full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listingsA

Browse coins launched on Vibecoins.

Actions:

  • all: View most active tokens in the past 24 hours (default)

  • mine: View only your launched coins

  • top: View top 10 coins by trading volume

  • search: Search coins by token address

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoToken address to search for (required for: search)
actionNoBrowse mode: all (most active 24h), mine (your coins), top (by volume), search (by address)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavioral traits. It conveys read-only browsing ('View', 'Browse') but does not explicitly state the tool is non-destructive, nor does it describe edge cases, result pagination, or possible errors. It gives a reasonable overview but lacks explicit safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a short lead sentence followed by a bulleted list of actions. Every line provides useful information with no redundant or filler text, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, yet the description explains what each action displays (active tokens, user coins, top volume, address search). It covers all enumeration options and the purpose of the 'query' parameter. It does not detail the exact fields returned or pagination, but for a browse tool this is reasonably complete given the straightforward nature and 100% schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, and the description adds a readable mapping of the enum values to their meanings ('all (most active 24h)', 'mine (your coins)', etc.). This matches the schema and provides a bit of extra context, but the schema already explains the parameters adequately, so no major additional value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Browse coins launched on Vibecoins.' It also enumerates specific action modes (all, mine, top, search) with clear one-line explanations, making the tool's functionality very distinct and understandable. It differentiates from siblings by focusing on browsing/listing, not launching or wallet operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use each action (e.g., 'search' for by-address lookup, 'mine' for user-specific listings), providing basic usage context. However, it does not explicitly contrast with sibling tools or mention when not to use this tool, leaving some ambiguity for an agent deciding between this and 'info' or 'launch'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

my-feesA

View your earnings from coin launches and trading.

Actions:

  • summary: Total earnings across all your coins

  • by-coin: Breakdown of earnings per coin you've launched

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoView type: summary (totals) or by-coin (per-coin breakdown)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description uses the verb 'View', indicating a read-only operation. It is a non-mutating tool that only retrieves earnings information. No annotations are provided, so the description carries the burden; the word 'View' effectively communicates the safety profile. However, it does not elaborate on any potential limitations (e.g., rate limits, authentication requirements) or return format specifics, which would be additional context. Since the core behavioral nature is clear, a score of 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the first sentence states the tool's purpose, and the following list clearly explains the two actions. Each sentence is informative, with no fluff. The structure is clean and scannable, deserving a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter and no output schema. The description covers the purpose and the available actions. It doesn't explain the exact response format, but for a view tool without an output schema, the return values (total earnings / per-coin breakdown) are implied by the action names and descriptions. It adequately covers the necessary information for an agent to select and invoke the tool, though some details about output structure or default behavior if no action is specified would enhance completeness. A score of 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter (action) is fully described in the input schema with an enum and description. The tool description repeats similar wording for each action, adding marginal value but also providing a concise overview. With schema description coverage at 100%, the baseline is 3; the description doesn't add significant semantic meaning beyond what's already in the schema, hence a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'View your earnings from coin launches and trading' – a specific verb ('View'), a clearly defined resource ('your earnings'), and an explicit scope. It distinguishes itself from sibling tools like wallet or listings by focusing on earnings from launches and trading. The listed actions (summary and by-coin) further clarify the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly communicates when to use this tool: when you need to view earnings from coin launches and trading. The summary vs by-coin action distinction is described. However, it does not explicitly compare to sibling tools (e.g., wallet for balances, vesting for schedules), so no alternative exclusion is provided. This gives a clear context but no exclusions, earning a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vestingA

Check and claim your vested tokens from coin launches.

When you launch a coin, you receive 49% of the total supply vested over 6 months. Use this tool to:

  • Check how many tokens have vested and are available to claim

  • Check how many tokens are still locked

  • Claim your vested tokens

Actions:

  • check: View vesting status for a specific token (requires tokenAddress)

  • claim: Claim all available vested tokens (requires tokenAddress and password)

The vesting schedule releases tokens linearly over 6 months from the coin launch date.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: check (view vesting status) or claim (claim vested tokens)
passwordNoWallet password (required for: claim)
tokenAddressYesThe token contract address to check or claim from

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It explains the linear 6-month vesting schedule, shows that claiming requires a password (a side-effect hint), and differentiates between check (view-only) and claim (state-changing). It lacks explicit details about post-claim effects such as token transfer, but the behavior is adequately transparent for a tool of this complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear opening statement, action-oriented bullets, and a one-sentence vesting schedule explanation. Every sentence serves a purpose, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity and the absence of an output schema, the description adequately covers its purpose, actions, parameter requirements, and underlying vesting model. It does not describe return values or error scenarios, but these are not critical for a straightforward check/claim tool with well-defined actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the input schema already documents all three parameters at 100% coverage, the description adds significant meaning by mapping each action to its required parameters (action=check uses tokenAddress, action=claim uses tokenAddress and password). This goes beyond the schema's generic field descriptions and clarifies usage logic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope: 'Check and claim your vested tokens from coin launches.' It then enumerates two concrete actions (check and claim) and explains the vesting context, making it unmistakably distinct from sibling tools like 'launch' or 'wallet.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use the tool: after launching a coin, to check vesting status or claim tokens. It also provides action-specific prerequisites (tokenAddress for check; tokenAddress and password for claim). It does not explicitly mention alternatives or exclusions, but the context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

walletA

Manage your local Ethereum wallet. This wallet receives your trading fees and signs transactions.

IMPORTANT: Your wallet is encrypted with a password. This is the ONLY way to access your wallet. If you lose your password, your wallet and funds are UNRECOVERABLE.

Actions:

  • create: Create a new wallet (requires password you'll remember forever)

  • get: Get your wallet address (no password needed)

  • balance: Check your ETH balance

  • transfer: Send ETH to another address (IRREVERSIBLE - shows warning before sending)

  • collect-fees: Claim accumulated trading fees from the contract

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
amountNoAmount in ETH (required for: transfer)
passwordNoWallet password (required for: create, transfer, collect-fees)
toAddressNoDestination address (required for: transfer)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It goes well beyond a basic description by warning that the password is the only way to access the wallet, funds are UNRECOVERABLE if the password is lost, and transfers are IRREVERSIBLE. It also notes that transfer shows a warning before sending, and specifies which actions require a password, offering important safety-related behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It opens with a clear one-line overview, includes a critical security warning in bold caps, and then presents a bulleted list of actions. Every sentence adds value: the warning is essential for safe usage, and the action list is necessary for a multi-action tool. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, 5 actions, no output schema), the description covers the essential aspects: what each action does, password requirements, and irreversible operations. The lack of an output schema is compensated by action names that implicitly indicate return values (e.g., 'Get your wallet address' implies returning an address, 'Check your ETH balance' implies returning a number). It does not explicitly describe response formats or error handling, but the critical behavioral information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all parameters with 100% coverage, providing a baseline of 3. The description adds value by mapping each action to its required parameters (e.g., 'create: Create a new wallet (requires password you'll remember forever)', 'transfer: Send ETH to another address (IRREVERSIBLE...)'). This clarifies the relationship between action and parameters beyond the schema's flat 'required for' notes, though it does not go into format details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Manage your local Ethereum wallet.' It enumerates five concrete actions (create, get, balance, transfer, collect-fees), each with a brief explanation. This fully distinguishes it from sibling tools like info, my-fees, and launch, which address different functionalities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool, stating it 'receives your trading fees and signs transactions.' The action list further clarifies usage by specifying which actions require a password or are irreversible. However, it does not explicitly mention when to use this tool over alternatives (e.g., 'use my-fees to view fees'), so it stops short of full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedinfo
    • First observedlaunch
    • First observedlistings
    • First observedmy-fees
    • First observedvesting
    • First observedwallet

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct domain area: platform info, wallet management, coin launching, browsing listings, vesting claims, and fee tracking. There is no overlap in primary purpose, making it clear which tool to use for a given task.

Naming Consistency4/5

Tool names are all lowercase single words or hyphenated (info, wallet, launch, listings, vesting, my-fees), forming a consistent and readable pattern. The minor deviation is 'my-fees' being the only hyphenated and possessive name, but it still fits the overall style.

Tool Count5/5

With only 6 tools, the server is well-scoped for a coin-launch platform, covering all major user actions without unnecessary redundancy. Each tool earns its place, and the count is within the ideal range for an MCP server.

Completeness4/5

The tool set covers the core user journey: creating a wallet, launching a coin, viewing listings, checking and claiming vesting, and monitoring fees. Minor gaps exist, such as no tool to update coin metadata or transfer tokens after claiming, but these are peripheral to the platform's stated purpose.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful toolkit that enables seamless interaction with EVM-compatible networks through natural language processing and AI assistance, allowing users to manage wallets, launch tokens, and interact with blockchain networks.
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI applications to interact with the COTI blockchain for private token operations, including deployment and management of private ERC20 tokens and ERC721 NFTs using COTI's Multi-Party Computation (MPC) technology.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Universal AI gateway that enables interaction with Ethereum blockchain through natural language across multiple AI platforms (Claude, ChatGPT, Gemini, etc.). Supports contract deployment, token operations, NFT minting, DeFi operations, and general blockchain transactions.
    1
    MIT