Saivo

Adding people

Five ways to add a contact, all ending in the same unverified contact (compare safety numbers to verify):

WayWhereNeeds
Card link or QR codeMy card, Add contactnothing new
Invite code (K7F92-MQX4T)My card → Invite code; Add contact → type itrelay with invite support; same relay on both sides
Read code from a pictureAdd contact → Read code from a pictureworks on Linux and Android
Add someone nearbyAdd contact → Add someone nearbysame network; UDP port 47831 and a random TCP port reachable
Group memberGroup members → add icon next to a memberthe group credential carries the member's card
Share / open linkMy card → Share; opening an kaiku://card/... link opens Add contactAndroid; Linux after install.sh (a second launch hands the link to the running app; with SAIVO_DATA_DIR set each launch is its own app)

Invite codes

  • 10 characters from a 32-letter alphabet (50 bits), hashed with SHA-256 before the relay sees them.
  • The relay keeps the card in memory for 10 minutes, deletes it on first use, holds at most 5000, and answers invite requests from all connections at 5 per second (burst 20).

Nearby

  • While the screen is open the device broadcasts name, an 8-hex code and a TCP port; the card is fetched over TCP and must hash to the announced code.
  • Anyone on the network can announce; the code on both screens is the check, and the contact stays unverified.