SMIFT Codes & Symbols Specification 1.0 - Alessandro-Salerno/SMIFT GitHub Wiki

The SMIFT Codes & Symbols Specification, or SCSS, is a set of standards that describe the form and type of codes and symbols used across all SMIFT networks.

History

Development on this revision of the SMIFT Codes & Symbols Specification started on September 2nd, 2024.

SMIFT Server Identifier (SSID)

The SMIFT Server Identifier is a unique eight-character-long alphanumeric code assigned to every Minecraft Server that joins a SMIFT Network.

SSIDs are NOT global i.e., different SMIFT networks may assign different SSIDs to the same Minecraft Server.

Each SSID is comprised of three subcodes:

  • Characters [0-3]: Abbreviated Minecraft Server name
  • Characters [4-5]: ISO 3166-2 code of the real world country where the Minecraft Server was founded
  • Characters [6-7]: Year in which the Minecraft Server was founded

Full names

Full names for Minecraft Servers on a given SMIFT Network are unique.

Full names cannot contain non-alphabetic characters (e.g., punctuation, numbers) and cannot be longer than 64 characters in total.

Abbreviated names

The main candidate for the abbreviated name of a Minecraft Server on a SMIFT Network is derived by its full name using the method described here:

  • Non-alphabetic characters in the full name are ignored. Spaces are used as delimiters for words, but are not allowed to be included in candidate names
  • If the full name is exactly four letters long, the full name is used as candidate
  • If the full name is shorter than four letters, the last letter is repeated until the length of the canidate name reaches four letters
  • If the full name is comprised of a single word and is longer than four letters, the first four letters are used as candidate
  • If the full name is comprised of multiple words, the first four uppercase initials are used to form the candidate. if there are less than four uppercase initials, letters from the right-most word are used to fill the remaining slots
  • Trailing Xes are added if the candidate is shorter than four letters
  • All characters are capitalised

The candidate is then assessed using the following steps:

  • If the candidate is unique it is assigned to the Minecraft Server
  • If the candidate has already been taken, characters are rearranged until they form an abbreviated name that is available.
  • If all possible combinations of the four letters included in the candidate name are taken and the candidate contains trailing Xes that are not included in the full name, these are replaced from left to right until a unique candidate is found
  • If all possible combinations of the characters included in the candidate and the ones used to replace the trailing Xes are taken,letters are replaced by similar-looking letters as follows. This step is iterative: one letter is replaced per iteration, starting from the left
Letter A Letter B
U V
U W
V W
I Y
O Q
P R
M W
N M
C G
  • If none of the above steps result in a unique candidate, letters are replaced by similar-looking digits as follows. This step is iterative: one letter is replaced per iteration, starting from the right
Letter Number
O 0
I 1
Z 2
E 3
A 4
S 5
G 6
Y 7
B 8
P 9
  • If none of the above steps result in a unique candidate, but the names taken are from different real world countries and/or years, the candidate may be assigned anyway

  • Finally, if none of the boave steps result in a unique candidate, the SMIFT Network's administration/software can either:

    A. Request the Minecraft Server administrators change the full name

    B. Generate a random sequence of letters and numbers until a unique name is found

Examples

Full name Possible abbreviated name Country of origin Year founded SSID
Union of Minecraftian Socialist Republics UMSR, URSM, VMSR, VW5P, ... Italy 2019 UMSRIT19, ...
The CeglianCraft TCEG, TG36, ... Ireland 2021 TCEGIE21, ...
MSR MSRR, WZPR, ... United Kingdom 2024 MSRRGB24, ...

This algorithm for generating abbreviated names guarantees the availability of an SSID for each Minecraft Server.

SMIFT Currency Code (SCC)

The SMIFT Currency Code is a unique nine-character-long alphanumeric code assigned to every currency used for inter-server financial transactions on a SMIFT Network.

The SCC for a given currency is obtained by appending a single letter to the SSID of the issuing Minecraft Server. The letter to be appended should be reflective of the currency's name.

Currency Code Alias

Currency Code Aliases are used to avoid confusion and minimise mistakes. Aliases are three-character-long alphanumeric codes similar to ISO 4217 codes.

The first two characters identify the issuing Minecraft Server and are assigned by the network administrators based on the server's SSID, while the third character is the same as the ninth in the original SCC. A theoretical maximum of 1296 Minecraft Servers can receive an alias on a given network.

Aliases should be preferred over SCCs whenever possible as they're easier to distinguish and remember.

SMIFT Transaction Identifier (STID)

The SMIFT Transaction Identifier is a string of twentyeight decimal digits used to uniquely identify a SMIFT Transaction.

Each STID is comprised of four subcodes:

  • Characters [0-3]: Year
  • Characters [4-5]: Month
  • Characters [6-7]: Day
  • Characters [8-27]: Transaction number

Transaction number

The transaction number is a sequential number used to identify a transaction relative to a day. This number is reset by the SMIFT Routing Server everyday at midnight.

Examples

Date Time SMIFT Transaction Identifier
2024-09-09 17:30:00 2024090900000000000000000000
2024-09-09 17:30:01 2024090900000000000000000001
2024-09-09 17:30:02 2024090900000000000000000002
2024-09-10 15:20:00 2024091000000000000000000000
2024-09-10 15:20:01 2024091000000000000000000001

SMIFT Account Identifier (SAID)

The SMIFT Account Identifier is a unique fourteen-character-long alphanumeric code assigned by servers to each account held by its own players, institutions, and organisations.

NOTE: Deposits held by other servers are identified by their SSID except in the case of deposits held at private depository institutions.

The SMIFT Account Identifier is used to identify source and destination accounts for transfers and other financial activities between entities over a SMIFT Network.

Each SAID is comprised of two subcodes:

  • Characters [0-2]: Depository Institution Identifier
  • Characters [3-13]: Account number

Depository Institution Identifier

The Depository Institution identifier is a three-character-long alphabetic code used to uniquely identify a depository institution (such as a bank) on a given server. These codes are not global and are used coupled with SSIDs inside SMIFT Requests to correctly route the request.

Depository Institution Identifiers should resemble the name of the institution. For example, a hypotetical depository institution called BlockBank may be assigned BBK, BLK or BLB as Depository Institution Identifier.

Account number

Account numbers are strings of eleven decimal digits used to uniquely identify an account held with a depository institution.

Examples of account numbers include: 77020113004, 0000000001, and 12345678901.

NOTE: The account number 00000000000 is reserved for the depository institution itself.

Examples

Account holder Depository Institution SMIFT Account Identifier
Regular player BlockBank BBK00000000123
Regular player EssentialsX Economy ESX00000000456
Institution or organisation Royal Creeper Bank RCB00000000789
Other server Central Bank / SMIFT Execution Party
Other server Import & Export Bank of Minecraftia IEB00000007777
BlockBank BlockBank BBK00000000000
BlockBank Royal Creeper Bank RCB00000008812