Safety & Continuity

Let someone know you're still here.

StillHere monitors whether you've checked in. If you go silent for too long, your messages and files are automatically delivered to the people you trust — without needing you to do anything.

6:13 ▲ ☁ ▮▮▮
StillHere
Sign in to resume your timer, trusted circle, and delivery setup.
Welcome Back · App Info →
 Sign in with Apple
G  Sign in with Google
— OR CONTINUE WITH XRPM —
✕ Sign In With XRPM
Guardian Mode requires 1,000+ XRPM or a subscription.

If you stop responding — the people who matter most will know.

Three simple steps.

StillHere runs quietly in the background. You check in regularly. If you don't, your trusted contacts are automatically notified — or receive your staged messages and files.

01
🛡️

Set up your monitoring mode

Choose Direct Mode for a simple non-response alert, or Guardian Mode for server-backed delivery of staged messages and files. Configure your check-in interval — anywhere from 8 hours to 7 days.

02
💬

Prepare your messages and files

Write messages and upload documents you'd want delivered. Assign each one to specific people in your Trusted Circle — different people can receive different content, with unique secure download links.

03
💚

Check in with one tap

When you're active, a single "I'm Here" check-in resets your timer. If a warning arrives and you're okay, just tap it. If you don't respond within the grace period, the system takes over automatically.

Two modes. One promise.

Choose the mode that fits your situation. Both run server-side, so your contacts are protected even when your phone is unreachable.

Direct Mode 📡

Non-Response Alert

When your device becomes unreachable or you stop responding, a simple alert is sent to the contacts you've selected. No staged messages. No files. Just a notification that something may be wrong.

  • No subscription required
  • Alerts go only to your selected recipients
  • Clear, non-alarmist language — not a confirmation of emergency
  • Device-level check-in backed by the server
  • Works even if your phone is off or unreachable
ℹ️ Direct Mode sends a best-effort notification. It does not promise delivery of staged messages or files.
Guardian Mode 🔐

Full Continuity Delivery

The server holds your messages and files until you stop responding. After your heartbeat interval and grace period expire, the backend verifies your eligibility and delivers everything — by email, SMS, and push notification.

  • Server-owned timer — your phone being off doesn't matter
  • Per-contact message and file assignment
  • Delivery via email + SMS + push notification
  • Files sent as secure tokenized download links
  • Configurable heartbeat (8 hours to 7 days)
  • Grace period gives you a final window to check in
🔑 Requires an active subscription or a linked XRPM wallet with 1,000+ XRPM at delivery time.

From active to triggered — every state, explained.

The server tracks exactly where you are in the monitoring cycle. Here's the full state machine that runs silently on your behalf.

Guardian Mode State Machine
inactive monitoring off activate active timer running missed check-in warning push sent to you "I'm Here" resets timer grace starts grace last window "I'm Here" still resets eligible triggered delivery sent ineligible paused resolve & reactivate user reactivates deactivate
inactive — monitoring off
active — timer running
warning — push sent, window to check in
grace — final window before delivery
triggered — delivery executed
paused — eligibility failed, manual reactivation needed
Active

Timer is running

You've activated Guardian Mode. The server owns your timer. Each check-in resets the countdown from that moment.

Warning (75% threshold)

You receive a push notification

The server sends a warning push to your device. Tap "I'm Here" to immediately reset the timer. No action needed beyond that.

Grace period

The deadline has passed

Your check-in interval expired. The grace period (configurable) is your final window. You can still check in and reset normally.

Triggered

Delivery executes

The backend verifies your eligibility, then delivers all staged messages and file links to their assigned contacts via email, SMS, and push.

Heartbeat Interval
8 hrs → 7 days

How often you must check in. Choose a cadence that fits your life — daily, every few days, or weekly.

8 hours7 days
Grace Period
60 sec → 48 hrs

Time after the deadline before delivery fires. A buffer for situations where you're delayed but still reachable.

🧪 Test Mode

Compress timers to 5 minutes minimum so you can verify the full Guardian flow without waiting days. Disable before going live.

The right message to the right person.

Not everyone in your circle gets the same thing. You decide exactly who receives which message or file — and each recipient gets a unique, secure download link.

👤
You
👩
Sarah
3 messages 2 files
👨
Marcus
1 message
🧑
Priya
1 file Direct alert
👴
Dad
2 messages Direct alert
Each person receives only what you've assigned to them — nothing else.
📱

QR Code

Share your QR token in person. They scan it and are immediately added to your circle.

📧

Exact Email

Search by the exact email address of an existing StillHere user.

🔤

Username

Find users by partial username match — fast and simple.

XRPM Wallet

Look up users by their exact XRPL wallet address if they've linked one.

No confirmation required. Adding someone to your Trusted Circle is a one-sided action. Contacts don't need to accept — they simply receive when delivery triggers.

Three channels. Every recipient.

When Guardian Mode triggers, the backend attempts delivery over every available channel. A recipient is marked delivered only when at least one channel succeeds.

💬

SMS — via Twilio

A text message is sent to the contact's phone number. Compact and immediate — no app required to receive it.

🔔

Push Notification — via Firebase FCM

If the contact has StillHere installed, a push notification is delivered directly to their device. Stale or unregistered tokens are pruned automatically.

Resilient by design. If one channel fails, delivery attempts continue on the others. Each channel outcome is individually logged. The recipient's final delivery status reflects the best result across all channels.
💬

Staged Messages

Write what you want your loved ones to know. Each message has a title and body. Assign to one or many contacts. The message title and body are delivered in full, per recipient, via all channels.

Subject: "A message for you from Alex"
Body: your full message text
Status tracked: pending → sent / failed
📁

Secure File Links

Upload documents, photos, or any file up to 100 MB. Each recipient gets a unique, tokenized download link — not a shared URL. Links expire after a configurable number of days. The server tracks the first download timestamp.

GET /files/download/:token
Expires: configurable (default 30 days)
Returns 410 Gone after expiry
⚠️ If all three channels fail for a recipient, they are marked failed. The trigger record and delivery logs capture the full outcome regardless.

Two ways to unlock Guardian Mode.

Guardian Mode requires verified access. You can use either an active in-app subscription or a linked XRPM wallet — whichever fits you.

In-App Subscription

Subscribe on iOS or Android

Purchase a Guardian Mode subscription through the App Store or Google Play. As long as your subscription is active, you have full access — no wallet required.

✓ Monthly or yearly plans
✓ Apple & Google billing
✓ Instant access on purchase
✓ No crypto required
XRPM Wallet

Hold 1,000+ XRPM tokens

Link your XRPL wallet via the XRPM app. You can configure your entire Guardian setup with just a linked wallet — the 1,000 XRPM balance is only checked when delivery would actually trigger.

✓ Sign in with the XRPM app
✓ No subscription needed
✓ Balance verified at trigger time only
✓ Setup now, fund when ready
Important: The 1,000 XRPM minimum is checked at delivery time — not at login or setup time. If your balance is insufficient when Guardian Mode would trigger, delivery is aborted, your status moves to paused, and you'll need to resolve eligibility and reactivate manually. This prevents infinite retry loops.

Built to be trusted with the things that matter.

StillHere is designed for a sensitive use case. Every technical decision reflects that.

🔑

Hashed Refresh Tokens

Refresh tokens are stored as SHA-256 hashes — the raw token is never written to disk. Even a full database compromise cannot be used to impersonate users.

⏱️

Short-Lived Access Tokens

JWT access tokens expire in 15 minutes. Refresh tokens rotate on each use — a stolen token is invalidated the moment the legitimate user next refreshes.

🔗

Tokenized File Links

File downloads use unique, 32-byte random tokens — not sequential IDs. Each recipient gets a different token. Links expire. First-download timestamps are tracked.

🧱

Response Splitting Protection

File names in Content-Disposition headers are stripped of all CR, LF, NUL, and quote characters — preventing header injection attacks.

🌐

Strict CORS Policy

Cross-origin requests are only allowed from explicitly configured origins. If no ALLOWED_ORIGINS list is configured, all cross-origin requests are blocked by default.

🛑

No Internal Error Leakage

5xx server errors return a generic message to clients. Internal stack traces and database error details stay server-side and never reach the API response.

🔐

XRPM Challenge-Response Auth

XRPM login uses a nonce-based challenge-response protocol. Nonces are stored in PostgreSQL with expiry and consumed on first use — replay attacks are blocked at the database level.

📦

Trusted Circle Validation

Files and messages can only be assigned to contacts already in your Trusted Circle. The server verifies every recipient assignment before writing to the database.

📝

Full Delivery Audit Log

Every delivery attempt — success or failure — is written to delivery_logs with channel, status, and error detail. Nothing is silently dropped.

Sign in your way.

Three sign-in methods, one account. Link your XRPM wallet later if you want Guardian Mode without a subscription.

Your message will reach them.
Even if you can't.

Set up once. Check in when you can. StillHere handles the rest — quietly, reliably, and only when it truly matters.

Mobile app coming soon. Server infrastructure is live.