ORCA - metrodroid/metrodroid GitHub Wiki

ORCA is a MIFARE DESFire based public transit ticketing system in use by multiple agencies in Seattle, WA.
All values on the card are big-endian, and timestamps are stored as Unix timestamp.
All data is in application IDs 0x3010f2 (main) and 0xffffff (id).
ORCA transitioned to ORCA 2 in 2022, which uses application ID 0xf013f2. It is extremely similar to Hop Fastpass. Existing cards still work, and are updated to add the new application if they are DESFire EV1 or newer.
id app, File 0x7
id app, File 0xf (Card Metadata, 9 bytes)
| First byte | Last byte | Length | Field description |
|---|---|---|---|
| 0 | 3 | 4 | Unknown |
| 4 | 7 | 4 | Serial number |
| 8 | 8 | 1 | Unknown |
main app, File 0x0
main app, File 0x2 (Trips)
| First bit | Last bit | Length | Field description |
|---|---|---|---|
| 24 | 27 | 4 | Agency |
| 28 | 59 | 32 | Timestamp |
| 76 | 91 | 16 | Coach or station number |
| 120 | 134 | 15 | Fare |
| 136 | 143 | 8 | Transaction type |
| 272 | 287 | 16 | New balance |
main app, File 0x3 (Topups)
Follows the same format as trips
main app, File 0x4 (Balance)
Each record is 48 bytes
| First byte | Last byte | Length | Field description |
|---|---|---|---|
| 41 | 42 | 2 | Card balance (cents) |