Application Configuration

The application config object is passed to the Application instance and must follow the configuration schema.

It is not necessary to include all options that are included in the schema. The application will use the default configuration options in case a config option is not specified.

For more information about the config schema, see the application config schema file at GitHub.
Default config options
const config = {
    // label defines the process name and folder within the root path
	"label": "beta-sdk-app",
	// version must follow semver format
	"version": "0.0.0",
	// network version defines a P2P network version
	"networkVersion": "1.0",
    // rootPath defines the root path for all data to be stored
	"rootPath": "~/.lisk",
	// logger holds information for the logging
	"logger": {
	    // fileLogLevel defines the log level output for the file logging
		"fileLogLevel": "info",
		// consoleLogLevel defines the log level output for the console logging
		"consoleLogLevel": "info",
		// logFileName defines a name for the log file
		"logFileName": "lisk.log"
	// rpc defines communication behavior
	"rpc": {
	    // enabled creates IPC or WS socket if true
		"enable": false,
		// enabled communication through 'ipc' or 'ws'
		"mode": "ipc",
		// In case of `mode` is set to `ws`, this port used
		"port": 8080,
        // Change to to connect from a remote server
        "host": ""
	// genesisConfig holds the blockchain protocol configuration
    // it is also passed to the module constructor
	"genesisConfig": {
	    // blockTime defines the frequency of blocks to be created
		"blockTime": 10,
		// communityIdentifier defines a community identifier used to create the network identifier
		"communityIdentifier": "sdk",
		// maxPayloadLength defines a maximum payload size allowed in a block in bytes
		"maxPayloadLength": 15360,
		// bftThreshold defines a threshold for pre-vote and pre-commit
		"bftThreshold": 68,
		// minFeePerByte defines a minimum fee per byte for a transaction
		"minFeePerByte": 1000,
		// baseFees defines an additional base fee to be included in the calculation of the minimum fee for a transaction
		"baseFees": [
				"moduleID": 5,
				"assetID": 0,
				"baseFee": "1000000000"
		// rewards defines a block reward schedule
		"rewards": {
		    // milestones defines the block reward for every distance
			"milestones": ["500000000", "400000000", "300000000", "200000000", "100000000"],
			// offset defines at which height the block reward is given
			"offset": 2160,
			// distance defines the duration of the each milestone
			"distance": 3000000
		// The minimum balance of accounts
		"minRemainingBalance": "5000000",
		// Number of actively forging delegates.
		"activeDelegates": 101,
		// Number of random standy delegates that are allowed to forge each round.
		"standbyDelegates": 2,
		 // The offset of rounds from the current round, which will be used to calculate the vote weights for the next forging round.
		"delegateListRoundOffset": 2
	// forging holds delegate information for forging
	"forging": {
		"force": true,
		// waitThreshold defines the Number of seconds to wait for previous block before forging
		"waitThreshold": 2,
		// delegates holds the delegate information for forging
		"delegates": [
			    // encryptedPassphrase defines the encrypted passphrase
				"encryptedPassphrase": "iterations=1000000&cipherText=5c53db41ec94b46049ca5a5b8312e6b38c7bbad775153a8091bafade3f78ac855b55d5d33318e13f22ec961510061c8a07726aeb4d2d2b30fbcc6ddfabc82dd6f233891a06ae54b2&iv=8c0419422b6e81c32c10ac6a&salt=1f2308d0d12480d0c788a4c60a8f272d&tag=23cf9840cb985550a96b463f878de99d&version=1",
				// hashOnion holds the seed reveal to put in block header
				"hashOnion": {
				    // count holds the total number of hash onions
					"count": 100000,
					// distance holds a distance between each hash onion
					"distance": 1000,
					// hashes holds the seed reveal for every distance
					"hashes": [
                        // ...
				// address defines the address of the delegate
				"address": "68d6b039567ebbfc714176d87cdd6906cf526cc7"
		// defaultPassword defines a password to use to decrypt the encrypted Passphrase
		"defaultPassword": "state dawn marriage honey cinnamon sadness crumble someone file caution sell oxygen"
	// network holds the network information of the node
	"network": {
	    // seedPeers defines an entry point of the network
		"seedPeers": [
				"ip": "",
				"port": 5000
		// port defines an open port for P2P incoming connections
		"port": 5000,
		// (Optional) blacklistedIPs defines IP address which the node will reject the connection for both outbound and inbound connections
        //"blacklistedIPs": string[],
        // (Optional) fixedPeers defines peers which will always try to connect for outbound connections
        // Warning! The connectivity of the node might be negatively impacted if using this option.
        // "fixedPeers": { ip: string, port: number }[],
        // (Optional) whitelistedPeers defines peers that are always allowed to connect to the node on inbound connections
        // Warning! Beware of declaring only trustworthy peers in this array as these could attack a
		// node with a denial-of-service attack because the banning mechanism is deactivated.
        // whitelistedPeers?: { ip: string, port: number }[],
        // (Optional) peerBanTime defines the length of banning in milliseconds
        // Default: 86400000 (24h)
        //"peerBanTime": number,
        // (Optional) connectTimeout defines a timeout for a connection
        // "connectTimeout": number,
        // Optional.
        // (Optional) actTimeout defines a timeout for response from a peer
        //"ackTimeout": number,
        // (Optional) maxOutboundConnections defines a maximum number of outbound connection allowed
        // Default: 20
        //"maxOutboundConnections": number,
        // (Optional) maxInboundConnections defines a maximum number of inbound connection allowed
        // Default: 100
        //"maxInboundConnections": number,
        // (Optional) sendPeerLimit defines a maximum peer to send information when “send” is called
        // Default: 16
        //"sendPeerLimit": number,
        // (Optional) maxPeerDiscoveryResponseLength defines a maximum length for the peer information response of peer discovery
        // Default: 200
        //"maxPeerDiscoveryResponseLength": number,
        // (Optional) wsMaxPayload defines maximum size of the payload allowed per communication
        // Default: 3048576
        //"wsMaxPayload": number,
        // (Optional) advertiseAddress defines whether to announce the IP/Port other peers
        // Default: true
        //"advertiseAddress": boolean
	// (Optional) transactionPool defines custom properties of the transaction pool
	"transactionPool": {
	    // maxTransactions defines a maximum number of transactions in the pool
		"maxTransactions": 4096,
		// maxTransactionsPerAccount defines a maximum number of transactions in the pool per sender account
		"maxTransactionsPerAccount": 64,
		// transactionExpiryTime defines timeout of the transaction in the pool in milliseconds
		"transactionExpiryTime": 10800000,
		// minEntranceFeePriority defines a minimum fee priority required to be added to the transaction pool
		"minEntranceFeePriority": "0",
		// minReplacementFeeDifference defines a minimum fee difference to replace a transaction with the same nonce
		"minReplacementFeeDifference": "10"
	// (Optional) plugins holds a group of plugin-specific configs which is passed to a particular plugin.
	"plugins": {
	    // Example config for the HTTP API plugin
        /*"httpApi": {
            "port": 4000,
            "host": "",
            "whiteList": [""],
            "cors": {
                "origin": "*",
                "methods": ["GET", "POST", "PUT"],
            "limits": {
                "max": 0,
                "delayMs": 0,
                "delayAfter": 0,
                "windowMs": 60000,
                "headersTimeout": 5000,
                "serverSetTimeout": 20000,