Skip to main content

Connect MetaMask

LCV runs an Ethereum-JSON-RPC-compatible EVM alongside its Cosmos side, with a native two-way bridge to the ulcv bank balance — see modules/evm/SPEC.md.

Add the network

With a devnet running (see Run a node), add it to MetaMask manually (Settings → Networks → Add network) or programmatically:

FieldValue
Network nameLastcoinVision Devnet
RPC URLhttp://localhost:8545
Chain ID2611
Currency symbolLCV
Currency decimals18 (EVM-side precision; see below)

Confirm the RPC is actually reachable before adding it:

curl -s -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
# {"jsonrpc":"2.0","id":1,"result":"0xa33"} (0xa33 = 2611)

Programmatically, from a dApp:

import { addLcvNetworkToMetaMask } from "@lastcoinvision/sdk";

await addLcvNetworkToMetaMask(window.ethereum, {
evmChainId: 2611,
chainName: "LastcoinVision Devnet",
rpcUrl: "http://localhost:8545",
});

Why 18 decimals for a 6-decimal token

ulcv (the Cosmos-side bank denom) has 6 decimals, but the EVM always represents native currency at 18 decimals. x/precisebank is the bridge that reconciles this — it tracks the extra precision internally (as alcv) so 1 LCV is worth the same on both sides without minting any new supply. You don't need to do anything for this to work; it's why MetaMask's balance display and x/bank's balance query for the same account agree once you account for the decimal difference.

Key portability caveat

A MetaMask account created fresh (or imported by private key) works fine. What does not work: taking a mnemonic from lcvd keys add --algo eth_secp256k1 and importing it into MetaMask by seed phrase — they derive different addresses, because this chain's BIP44 coin type is still Cosmos's standard 118, not Ethereum's 60. See the technology page for the full explanation.

Get test funds

curl -X POST https://faucet.lastcoinvision.com/faucet \
-H "Content-Type: application/json" \
-d '{"address":"0xYourMetaMaskAddress"}'

The faucet accepts either a bech32 (lcv1...) or 0x... address.