Definitions

Signal Corps exchange codes

A short spoken handshake between two ARSC members, used in place of a signal report. This page states what the codes are, what they mean, and how they are made.

Purpose and meaning

The codes mean nothing. They carry no message, and nothing is concealed by them. A code only shows that the station saying it is an ARSC member who was told the other station's callsign. Operators speak them in plain language, together with their normal station identification, the way a contest exchange or a signal report is spoken.

ARSC uses a matching pair of codes so that a contact two members log themselves can be marked as a verified exchange, and so that both members get the contact in their logs.

How an exchange sounds

"CQ Signal Corps, this is N4CAZ." The reply gives a callsign and "Signal Corps." Then: "WW6ABC, your code is Mike Six Juliet Eight." "QSL, QSL. Your code is Echo One X-ray Zero." "QSL code received, 73." Written down, those codes are M6J8 and E1X0.

Each station reads its own code from its ARSC Log a Contact form. A code is four characters: a letter, a digit, a letter and a digit, like H1R1. Letters are spoken with the standard phonetic alphabet and digits as usual ("niner" for 9 is fine). In the log it can be typed as H1R1 or as the words.

How the codes are made

There are two codes for every pair of stations, one for each direction, and they change every UTC day. A member's account only ever displays the code that member says. The other station's code is checked by ARSC and is not shown.

normalize(call)  = uppercase the base callsign, no prefix or suffix
secret_key       = a random 256-bit key held only on ARSC servers (never published)

code(from, to, utc_date):
  message = normalize(from) + ">" + normalize(to) + ":" + utc_date   // e.g. "N4CAZ>WW6ABC:2026-10-25"
  digest  = HMAC_SHA256(secret_key, message)
  letter_1 = LETTERS[ digest[0] MOD 26 ]      // A = 0 ... Z = 25
  digit_1  = digest[1] MOD 10
  letter_2 = LETTERS[ digest[2] MOD 26 ]
  digit_2  = digest[3] MOD 10
  return   letter_1 + digit_1 + letter_2 + digit_2   // e.g. "M6J8"

The secret key is the only part not published. Without it the codes cannot be worked out, even though the method is public.

The letters

The standard phonetic alphabet, in order from A (0) to Z (25):

  1. Alpha
  2. Bravo
  3. Charlie
  4. Delta
  5. Echo
  6. Foxtrot
  7. Golf
  8. Hotel
  9. India
  10. Juliet
  11. Kilo
  12. Lima
  13. Mike
  14. November
  15. Oscar
  16. Papa
  17. Quebec
  18. Romeo
  19. Sierra
  20. Tango
  21. Uniform
  22. Victor
  23. Whiskey
  24. X-ray
  25. Yankee
  26. Zulu