Getting started

Wallet Setup

Citrate is EVM-compatible, so any Ethereum wallet that supports custom networks can connect to Citrate. We've found that most developers already have one of these wallets installed, so this guide covers the three most common options: MetaMask, Rabby, and the Citrate CLI wallet.

MetaMask

MetaMask is the most widely used browser wallet and works seamlessly with Citrate.

Adding Citrate as a Custom Network

  1. Open MetaMask and click the network selector dropdown at the top of the window
  2. Click "Add network" and then "Add a network manually"
  3. Enter the following values:
FieldValue
Network NameCitrate Testnet
New RPC URLhttps://testnet-rpc.cnidarian.cloud
Chain ID1338
Currency SymbolSALT
Block Explorer URLhttps://testnet-explorer.cnidarian.cloud
  1. Click "Save"
  2. MetaMask will switch to the Citrate Testnet network

For local development against Devnet, add a second network entry:

FieldValue
Network NameCitrate Devnet
New RPC URLhttp://localhost:8545
Chain ID1337
Currency SymbolSALT
Block Explorer URL(leave blank)

Verifying the Connection

After adding the network, your MetaMask balance should display 0 SALT. To get testnet tokens, visit the faucet and enter your wallet address. Tokens arrive within approximately 15 seconds.

Common MetaMask Issues

  • "Chain ID already in use" ... Another network in your MetaMask configuration is using the same Chain ID. Remove the conflicting entry or check for duplicates.
  • Transactions stuck as pending ... Reset the account nonce by going to Settings, Advanced, and clicking "Clear activity tab data." This resyncs MetaMask's local nonce with the network.
  • RPC connection errors ... Verify you have no VPN or proxy interfering with the HTTPS connection. The testnet RPC requires a standard HTTPS connection on port 443.

Rabby Wallet

Rabby is an alternative browser wallet with built-in multi-chain support and improved security features.

Configuring Rabby for Citrate

  1. Open Rabby and navigate to Settings (gear icon)
  2. Select "Custom Network" from the sidebar
  3. Click "Add Custom Network"
  4. Enter the network details:
    • RPC URL: https://testnet-rpc.cnidarian.cloud
    • Chain ID: 1338
    • Symbol: SALT
    • Block Explorer: https://testnet-explorer.cnidarian.cloud
  5. Save and switch to the Citrate Testnet

Rabby will automatically detect the network name and validate the RPC connection before saving. If Rabby shows a warning about an unknown network, this is expected for new chains ... confirm to proceed.

Rabby Advantages for Citrate

  • Transaction simulation ... Rabby previews the effects of each transaction before you sign, which is particularly useful when interacting with inference contracts where gas costs vary
  • Multi-chain overview ... View your SALT balance alongside assets on other chains in a single dashboard
  • Security alerts ... Rabby warns about interactions with unverified contracts, helping you avoid mistakes on the testnet

Citrate CLI Wallet

For developers who prefer command-line workflows or need programmatic wallet operations, the Citrate CLI includes a built-in wallet.

Installation

npm install -g @cnidarian/citrate-cli

Creating a New Wallet

citrate-cli wallet create

This generates a new keypair and outputs the address and a mnemonic phrase. Store the mnemonic securely ... it cannot be recovered if lost.

Importing an Existing Wallet

If you already have a private key or mnemonic from MetaMask or another wallet, you can import it.

Import from a mnemonic phrase:

citrate-cli wallet import --mnemonic "your twelve word mnemonic phrase goes here"

Import from a private key:

citrate-cli wallet import --private-key 0xYOUR_PRIVATE_KEY

Checking Your Balance

citrate-cli wallet balance --rpc https://testnet-rpc.cnidarian.cloud

Sending SALT

citrate-cli wallet send --to 0xRECIPIENT_ADDRESS --amount 1.5 --rpc https://testnet-rpc.cnidarian.cloud

CLI Wallet Configuration File

To avoid passing --rpc on every command, create a configuration file at ~/.citrate/config.json:

{
  "defaultNetwork": "testnet",
  "networks": {
    "devnet": {
      "rpcUrl": "http://localhost:8545",
      "chainId": 1337
    },
    "testnet": {
      "rpcUrl": "https://testnet-rpc.cnidarian.cloud",
      "chainId": 1338
    }
  }
}

With this configuration in place, you can simply run:

citrate-cli wallet balance

Next Steps

Once your wallet is configured and funded with testnet SALT, I recommend heading to the Quickstart guide to deploy your first contract on Citrate.