Skip to main content

epic-wallet.toml

Complete reference for the wallet's configuration file. Defaults shown are what a fresh mainnet wallet writes.

Where the file lives

  1. ./epic-wallet.toml in the current working directory, if present.
  2. Otherwise ~/.epic/<network>/epic-wallet.toml.

<network> is main, floo, user or auto.

The file is written by epic-wallet init, not by running any other command. init refuses to proceed if both epic-wallet.toml and wallet_data/ already exist in the target directory (impls/src/lifecycle/default.rs:132).

On first run the wallet also creates two credential files in the wallet directory, .owner_api_secret and .api_secret, each a 20-character random string.

A worked example

The generated file contains every key. A minimal configuration for a second wallet on the same machine:

epic-wallet.toml
[wallet]
chain_type = "Mainnet"
api_listen_interface = "127.0.0.1"
api_listen_port = 3415

# Not offset per network, so a second wallet on this machine must move it.
owner_api_listen_port = 3421

api_secret_path = "/home/you/wallets/bob/.owner_api_secret"
node_api_secret_path = "/home/you/.epic/main/.api_secret"
check_node_api_http_addr = "http://127.0.0.1:3413"
data_file_dir = "/home/you/wallets/bob/wallet_data"

[tor]
# The default of true needs a tor binary next to the wallet executable.
use_tor_listener = false
socks_proxy_addr = "127.0.0.1:9050"
send_config_dir = "/home/you/wallets/bob"

[epicbox]
epicbox_domain = "epicbox.epiccash.com"
epicbox_port = 443
epicbox_protocol_unsecure = false

[logging]
log_to_stdout = true
stdout_log_level = "Info"
log_to_file = true
file_log_level = "Debug"
log_file_path = "/home/you/wallets/bob/epic-wallet.log"

[wallet]

KeyTypeDefaultPurpose
chain_typeenum, optionalMainnetMainnet, Floonet, UserTesting, AutomatedTesting
api_listen_interfacestring127.0.0.1Bind address of the Foreign API listener. Set to 0.0.0.0 to accept transfers from other hosts
api_listen_portu163415, 13415 floonet, 23415 usernetForeign API port, used by listen
owner_api_listen_portu16, optional3420 on every networkOwner API port
owner_api_interfacestring, optional127.0.0.1Owner API bind address. Emitted commented out
api_secret_pathstring, optional<wallet dir>/.owner_api_secretBasic auth secret for the Foreign path on the owner listener. /v3/owner takes a token from open_wallet; see authentication
node_api_secret_pathstring, optional<wallet dir>/.api_secretBasic auth secret the wallet presents when calling the node
check_node_api_http_addrstringhttp://127.0.0.1:3413Node the wallet queries. Override per run with -r
owner_api_include_foreignbool, optionalfalseServe the Foreign API on the Owner API port, for single-port environments
data_file_dirstring<wallet dir>/wallet_dataWhere the seed and database live
no_commit_cachebool, optionalfalseReserved
tls_certificate_filestring, optionalunsetTLS certificate for the listener
tls_certificate_keystring, optionalunsetTLS private key. Setting the certificate without this is a startup error
dark_background_color_schemebool, optionaltrueColour scheme for CLI tables
keybase_notify_ttlminutes, optional1440Lifetime of keybase receive notifications. 0 disables
The Owner API port is the same on every network

owner_api_listen_port is not adjusted per network, unlike api_listen_port and check_node_api_http_addr. A mainnet wallet and a floonet wallet both take 3420, so running more than one at a time means overriding it. See the port table.

[tor]

The generated file marks this section experimental. See what this version does not cover.

KeyTypeDefaultPurpose
use_tor_listenerbooltrueStart a hidden service on listen. Override per run with -n / --no_tor
socks_proxy_addrstring127.0.0.1:9050SOCKS proxy address
send_config_dirstring<wallet dir>Reserved

use_tor_listener is not optional. A [tor] section that omits the key fails to parse, so either give it a value or leave the whole section out.

The default of true needs a tor binary sitting next to the wallet executable, which the release archives do not ship. Either supply the binary, or set use_tor_listener = false and pass -n on listen.

[epicbox]

KeyTypeDefaultPurpose
epicbox_domainstring, optionalepicbox.epiccash.comRelay host, and the domain shown after @ in your epicbox address
epicbox_portu16, optional443Relay port
epicbox_protocol_unsecurebool, optionalfalsefalse uses wss://, true uses ws://
epicbox_address_indexu32, optional0Reserved. Every derivation uses index 0

The address and send paths read epicbox_domain and epicbox_port without a fallback, so set both explicitly or leave the whole [epicbox] section out and take the defaults from code.

See the epicbox protocol for what the relay does.

[logging]

KeyTypeDefaultPurpose
log_to_stdoutbooltrueLog to stdout
stdout_log_levelenumInfoError, Warning, Info, Debug, Trace
log_to_fileboolfalseLog to a file
file_log_levelenumDebugLevel for the file log
log_file_pathstring<wallet dir>/epic-wallet.logLog file path
log_file_appendbooltrueAppend rather than truncate on each run
log_max_sizebytes, optional16777216Rotate above this size. Comment out to disable rotation
log_max_filesu32, optional32How many rotated files to keep
tui_runningbool, optionalunsetSet from the node's run_tui at startup

A fresh wallet writes no log file, because log_to_file is false while log_file_path is populated. Set log_to_file = true for a log on disk.

Per-network defaults

Networkapi_listen_portcheck_node_api_http_addrWallet directory
Mainnet3415http://127.0.0.1:3413~/.epic/main
Floonet13415http://127.0.0.1:13413~/.epic/floo
UserTesting23415http://127.0.0.1:23413~/.epic/user
AutomatedTesting3415http://127.0.0.1:3413~/.epic/auto

Paths set on first run

Relative defaults in the code are rewritten to absolute paths when the file is created:

KeyValue written
wallet.data_file_dir<wallet dir>/wallet_data
wallet.api_secret_path<wallet dir>/.owner_api_secret
wallet.node_api_secret_path<wallet dir>/.api_secret
logging.log_file_path<wallet dir>/epic-wallet.log
tor.send_config_dir<wallet dir>

<wallet dir> is ~/.epic/<network> unless you supplied one with --current_dir or init --cwd.

Source

Next