Connecting MetaMask
Manual setup
- Open MetaMask and click the network selector
- Click Add Network then Add a network manually
- Enter the following:
| Field | Value |
|---|---|
| Network Name | Specter Testnet |
| New RPC URL | https://testnet.specterchain.com |
| Chain ID | 5445 |
| Currency Symbol | GHOST |
| Block Explorer URL | https://explorer.specterchain.com |
- Click Save
Programmatic setup
Add Specter to MetaMask from your dApp:
async function addSpecterNetwork() {
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0x1545',
chainName: 'Specter Testnet',
nativeCurrency: {
name: 'GHOST',
symbol: 'GHOST',
decimals: 18,
},
rpcUrls: ['https://testnet.specterchain.com'],
blockExplorerUrls: ['https://explorer.specterchain.com'],
}],
});
}
Adding GhostERC20 tokens
To see GhostERC20 token balances in MetaMask, import them as custom tokens:
| Token | Contract Address |
|---|---|
| gUSDC | 0x65c9091a6A45Db302a343AF460657C298FAA222D |
| gWETH | 0x923295a3e3bE5eDe29Fc408A507dA057ee044E81 |
| gLABS | 0x062f8a68f6386c1b448b3379abd369825bec9aa2 |
All GhostERC20 tokens use 18 decimals and are standard ERC20-compatible.
WalletConnect
For WalletConnect integration, register a project at WalletConnect Cloud and use your project ID:
import { specterTestnet } from './chains';
const projectId = 'YOUR_WALLETCONNECT_PROJECT_ID';
Troubleshooting
MetaMask shows 0 gas price: This is expected. The Cosmos EVM module may report 0, but the chain enforces 1 gwei minimum. Set gas price explicitly in your transactions.
Transaction stuck pending: Ensure you're using the correct chain ID (5445) and RPC URL. Try resetting the account in MetaMask (Settings > Advanced > Clear activity tab data).
Nonce too low: If you've been testing and restarting, MetaMask may have a stale nonce. Reset the account to fix this.