Open Source Banking Software and server for virtual fun-currencies.
Allexit 3f233d890e Transactions can now have messages included 3 years ago
libs Pushed library 3 years ago
nbproject Registering is now possible 3 years ago
src/com/saltosion/neptulon Transactions can now have messages included 3 years ago
.gitignore Added encrypting and a few commands. 3 years ago Severely important fix to disable negative amounts on transactions. Also updated 3 years ago
build.xml initial commit, text-based UI already done, and connecting possible (Serverside, no) 3 years ago
lang-en.json Transactions can now have messages included 3 years ago
lang-fi.json Transactions can now have messages included 3 years ago initial commit, text-based UI already done, and connecting possible (Serverside, no) 3 years ago

Neptulon Bank

Bank software and server that can be used to control and manage virtual and fun currencies.

Table of Contents

How to use

Step 1:

First you need to select to weather build the source yourself or trust me and use my precompiled .jar files. Currently I have no precompiled jar files, but when I do, they'll be surely listed here.

I also currently don't have instructions on building the code from scrach, but I use NetBeans for myself. Some buld instructions should probably be listed here in the future. But in the meantime, the only libraries required are kryonet and jsonbeans. Kryonet-all-in-one -jar (includes jsonbeans) should be in the libs -folder.

Step 2:

Then to use the server, you need to create ¸serverproperties.json, and to use the client you need to create clientproperties.json, and set required datas there for both. See Example Properties -files for examples.

Step 3:

To run the client, you just need to normally run the software from Main.class, or the jar file, as such:

java -jar NeptulonBank.jar.

When running you can set launch options, with / in their beginning. For example, to launch server, add /server, for both there is two obligatory launch options that must be set though, UI and Language.

The UI is set with /setui <uiname> and the Language is set with /language <lang> like so: java -jar NeptulonBank.jar /setui <uiname> /language <lang>

Possible UI's are:

UI name Client support Server support Description
tbui yes yes Text-Based UI

And premade languages are:

  • English (en) /language en
  • Finnish (fi) /language fi

In launch you can also run commands in the arguments, by adding -- in their beginning. For example, generally you can run command about to seek information about the software, or help about to seek help about the command about, here they are run in launch;

java -jar NeptulonBank.jar --about --help about


NeptulonBank is very flexible on it's UI, and can be adapted to nearly anything people are willing to program, from text-based interfaces to 3D "games".

To create your own User Interface, you first need to fork or clone this project to get the source code properly. After this you need to create a UICreator (see com.saltosion.neptulon.ui.ClientTBUICreator for example). It is recommended to create different UICreators for Server and Client, and make them use the same UI.

After this you need to anymore create the actual UI (see com.saltosion.neptulon.ui.TextBasedUI for example) and finally you can add the creators to use in (clientCreators and serverCreators HashMaps).

More detailed and more helpful wiki coming sometime, but don't expect it too soon.

Default UI used is a text based UI created by Allexit that works "like a console", so you just input commands.

Here is a table of usable commands for the default UI:

Command Name Client Support Server Support Details / Usage
about yes yes Shows information about Neptulon Bank.
clear yes yes Clears the screen of unwanted flood.
exit yes yes Closes down Neptulon Bank.
help yes yes Shows the list of usable commands.
generatekey yes yes Generates a hex-key that can be used for encryption.
otus yes no First command. Prints text and all arguments.
connect yes no Connects to a bank server.
endconnection yes yes Disconnects from bank / shuts down bank server.
bankinformation yes no Gives information about bank currently connected to.
login yes no logins the user to the bank in the specified account.
host no yes Hosts bank server at specified port.
register yes no Registers a new bank account for use.
kick no yes Kicks the specified user.
ban no yes Bans a specified user or IP -address.
listconnections no yes Lists everyone currently connected.
accountinformation yes no Shows information about your bank account.
sendtransaction yes no Sends some money to destined BID.


While it is possible to set the language depending on prefrence, it is also very easy to create your own language -file. This is done by creating a file called lang-<name>.json, just replace <name> with the keyword of your choice, for example English (en) is lang-en.json.

Then you just need to set every keyword that is used. You can currently see all the keywords as an example from lang-en.json, but later listed and explained in the wikis.

Example Properties -files

Here is listed examples for all the required properties files, and explained what each property is used for, and why it is necessary.


This file is necessary when running the server.

  "bank-name": "Some bank name here",
  "currency-name": "Some currency name here",
  "currency-symbol": "€ / Euro / Something",
  "encrypt-key": "FD7EFACC2336E5EF",
  "bid-length": 5,
  "max-connections": -1,
  "transacion-id-length": 5


This file is necessary when running the client.

  "encrypt-key": "F9A8CB7E10FE13AC"


  • bank-name is the name of the bank the server is hosting.
  • currency-name is the name of the currency the bank is using, that the server is hosting.
  • currency-symbol is the symbol of teh currency. Euro's symbol would be or Euro.
  • encrypt-key is a key used for encryption of passwords. This should differ for every user, and should be different for server- and clientside.
  • bid-length is the length of Client's BID's (eg. BID-7F40B is 5). This only applies to BID's created AFTER the change.
  • max-connections is the maximum number of connections possible at onece. -1 means no limit.
  • transaction-id-length is the length of transaction ID's.


This software is licensed under GNU GPLv3 license. All rights reserved.

Neptulon Bank uses Kryonet and JsonBeans, and their licenses can be found under their corresponding links.

Clipart used in this file was found from Openclipart. Yes clipart by sixsixfive and No clipart by Arnoud999.