"Bahala ka" — "Up to you."
A sovereign relationship platform — built on Nous, rolled from pure C
When an older foreigner and a young Filipina engage in a love affair, there are real challenges: trust gaps, communication transparency, financial accountability, schedule coordination across time zones, education sponsorship tracking, and the question of sincerity on both sides. Existing platforms offer a chat box and nothing else. No structure. No accountability. No sovereignty.
Bahalaka is a mobile-first relationship platform purpose-built for these connections. Forward-only chat enforces honesty. The Nous security stack makes it sovereign. The financial system — allowances, savings, sponsorships — brings structure and transparency to support. The schedule system manages multi-relationship availability. All of it built on your existing pure C libraries, rolled from scratch. No frameworks. No dependencies. Your code.
Ed25519 signatures. Full scalar multiplication, point operations, batch verification. 80KB pure C.
C:\kastil\nous\security\skill\crypt\
Identity verification, user authentication flows. 4,500 LOC.
C:\kastil\nous\security\skill\auth\
Credential storage and retrieval. 3,800 LOC.
C:\kastil\nous\security\skill\vault\
Policy enforcement engine. 4,000 LOC.
C:\kastil\nous\security\skill\policy\
Authenticated relay — Ed25519 identity + AES-256-GCM transport. Session management via triple store. 73KB.
C:\kastil\nous\comms\skill\relay\
Distance-vector routing, beacon/listen discovery, multi-hop forwarding. 28KB. 46 tests passing.
C:\kastil\nous\comms\skill\mesh\
Binary serialization protocol. Message framing and encoding.
C:\kastil\nous\comms\skill\wire\
HTTP/1.1 server. 10KB.
C:\kastil\nous\comms\skill\http\
Triple store (subject/predicate/object). 26KB, 5,400 LOC. The data engine.
C:\kastil\nous\memory\skill\store\
Write-ahead log. Append-only by design. Forward-only IS the journal.
C:\kastil\nous\memory\skill\journal\
Hash tables + triple indexing. Subject/predicate/object chains.
C:\kastil\nous\memory\skill\
Memory-mapped I/O + serialization (variable-length ints, delta encoding).
C:\kastil\nous\memory\skill\
AES-256-GCM authenticated encryption. 17KB. Software implementation.
C:\kastil\target-runtimes\
Hardware-accelerated AES via AES-NI instructions. 14KB.
C:\kastil\target-runtimes\
SHA-256 — both software and hardware-accelerated.
C:\kastil\target-runtimes\
Audit logging engine. 7,200 LOC. Forward-only audit trail.
C:\kastil\target-runtimes\
Time-based OTP + QR provisioning. 2,900 + 20KB.
C:\metal\auth\
Gate engine, auth gateway, crypto. Complete auth microservice.
C:\metal\auth\
Transport handshake. Ed25519 + AES-GCM already exist — Noise is the choreography layer on top.
NEW — compose from existing crypt + aes_gcm
Dart FFI bridge to compiled C libraries. Thin layer — calls straight into the C.
NEW — FFI wrappers for mobile
Allowance, savings, sponsorship tracking. Built on triple store + journal.
NEW — compose from store + journal + policy
Multi-connection availability, time requests, reservation management.
NEW — compose from store + policy
Powered by Pantheon — ai-pantheon.ai
We don't say "encrypted." We say sovereign.
Your messages aren't just locked — they're invisible, untamperable, and yours forever.
| Security Layer | Nous Asset | What It Does |
|---|---|---|
| Transport | Noise XX pattern NEW (composed from crypt.c + aes_gcm.c) | Identity hiding, forward secrecy, zero-RTT. Both parties verify each other. Observer can't see who's talking. |
| Identity | crypt.c (Ed25519) + auth.c EXISTS | Sovereign key pairs. You own your identity. No platform dependency. Portable credentials. |
| Encryption | aes_gcm.c (256-GCM) + vault.c EXISTS | Per-conversation keys. Client-side only. Server stores noise — encrypted blobs with no keys. |
| Integrity | sha256.c + journal.c + hash.c EXISTS | Every message hash-chained. Append-only journal. Change one bit, chain breaks. Edit history is sealed. |
| Audit | audit_engine.c EXISTS | Forward-only audit trail. Every action logged, cryptographically linked, tamper-evident. |
| Policy | policy.c EXISTS | Enforces rules: no delete, no unsend, edit-only-for-typos. Architecture, not policy. |
| Traffic Analysis | wire.c + relay_server.c EXISTS | Binary wire format. Relay handles routing. Observer sees uniform encrypted frames. |
| Auth | totp.c + gate.c + qr.c EXISTS | TOTP 2FA, QR provisioning, gate-based access control. |
journal.c (append-only log) + hash.c (hash chains) + crypt.c (Ed25519 signatures) + aes_gcm.c (per-message encryption) + wire.c (binary framing) + relay_server.c (authenticated relay)
| What Girls See | Why |
|---|---|
| No online/offline indicator | Eliminates "he's online but ignoring me" anxiety |
| No "last seen" | Prevents obsessive checking and comparison between girls |
| No typing indicator (to them) | Provider can compose without pressure |
| Messages just arrive | Send and pray. Trust the system. Trust the man. |
| DO NOT DISTURB | Provider-only feature. Manual toggle. Silences all notifications. Girls see nothing different — their messages still send, they just won't get a response until DND is off. |
The provider sees everything on their end — read receipts, typing indicators, all connection statuses. The asymmetry is intentional. The provider manages multiple relationships; the girls don't need to know the logistics of that.
| Status | How |
|---|---|
| At Home | Auto-set via GPS match to registered home (within radius) |
| At Work | Auto-set via GPS match to registered work location |
| Favorite 1-3 | Up to 3 named places (e.g., "Starbucks Ayala"). Auto-set by geo. |
| At [Friend's Name] | Friend's registered location. Friend must be on bahalaka. Mutual geo-verification. |
The entire point of the system is trust and verify. When there is two-way respect and honesty, the app promotes this winning philosophy — it rewards good behavior with transparency and structure. When there is ill intent on either side, the system helps identify it and pushes concerns up to the users. The asymmetry serves this: the provider needs operational space to manage multiple relationships without creating unnecessary drama. The girls need to trust that the system works, that messages arrive, and that the financial commitments are being met. The schedule and financial features provide the proof. Status is noise.
store.c (location registry) + policy.c (asymmetric visibility rules) + journal.c (status transition log)
| Role | Description |
|---|---|
| Provider | The supporter. Manages schedule across multiple connections. Initiates connection requests. |
| Connected | Accepts connection. Sees the provider's schedule as it pertains to them. Can request time. |
| Time State | Provider View | Connected Person View |
|---|---|---|
| Available | Open slot | "Available" — can request this time |
| Reserved | Reserved for specific person (shows who) | "Reserved for you" (or just "Busy" if reserved for someone else) |
| Busy | Full view — who, what | "Busy" — no details |
store.c (schedule triples: {person, available_at, timeslot}) + policy.c (visibility rules per role) + journal.c (schedule change log)
| Field | Description |
|---|---|
| Cycle | Weekly, Bi-weekly, or Monthly — set per connection |
| Amount | Total allowance for the cycle |
| Savings Withholding | Amount automatically withheld from each allowance for savings |
| Net Allowance | Amount - Withholding = what the connected person receives |
| Pay Date | When in the cycle the allowance is due |
Connected person sees: total saved, withholding rate, deposit history, pending withdrawal requests. Provider sees the same plus approval controls.
| Field | Description |
|---|---|
| Institution | STI University (or any school) |
| Cost | Amount per semester |
| Cycle | Per semester — start/end dates |
| Status | Active, Suspended, Completed, Terminated |
| Requirement | Verification |
|---|---|
| No boyfriend/girlfriend | Acknowledged agreement — signed journal entry at sponsorship start. Violation = suspension/termination (provider's discretion, logged). |
| Grade requirements | Grade proof required per semester. Photo/scan of grades uploaded as message attachment. Forward-only — can't delete proof or lack thereof. |
| Attendance requirements | Provider must be granted access to school website/portal. Attendance monitored. Proof screenshots uploaded as messages. |
| Part-time job required | Must maintain part-time employment to cover personal expenses. Proof of employment required (pay stubs, employer confirmation). Sponsorship covers tuition — personal expenses are the student's responsibility. |
Every state transition is a journal entry. Forward-only. The entire sponsorship history is an immutable record.
Connected person submits a request for additional support beyond the regular allowance. Examples: family outing, KKB (split cost) gathering, emergency, special occasion.
| Field | Description |
|---|---|
| What | Description of the need (e.g., "Family outing to Enchanted Kingdom") |
| Amount | How much is being requested |
| When | Date of the event/need |
| Type | KKB (split cost), Full Sponsor, Partial, Emergency |
store.c (financial triples) + journal.c (ledger entries) + policy.c (approval rules, requirement enforcement) + audit_engine.c (immutable audit trail)
Custom agreements invite ambiguity, loopholes, and "I didn't understand what you meant." Pre-written agreements are clear, tested, and leave no room for misinterpretation. The provider selects the template that matches the reality of the arrangement. The girl reads it, understands it, and accepts or declines. No negotiation on the template — the terms are the terms. The only negotiation is which template fits.
These are the girl's expectations for the man's behavior. What does she want from him? How does she want him to conduct himself? Her voice, her ask.
| # | Template | What She's Asking For |
|---|---|---|
| 1 | Stick to One | She wants him fully monogamous. Just her. No other girls. No bar fun. No side connections. All in, one woman. |
| 2 | Fun in the Bar with Limits | She's OK with him going to bars and having fun with other girls — within defined limits. The limits are explicit in the agreement: what's allowed, what crosses the line. |
| 3 | All the Fun You Want — I Don't Want to Know | She gives him full freedom. Do whatever, see whoever. She doesn't want to hear about it. What he does outside their time is his business. |
| 4 | All the Fun You Want — I Want to Know Everything | Full freedom, full transparency. He can do what he wants, but she wants to know all of it. Every detail. Forward-only chat makes this real — the honesty is on the record. |
| 5 | All the Fun You Want — I Want to Join | She wants in. Whatever he's doing, she wants to be part of it. Shared adventures. Together. |
| 6 | Make Me the Center | She wants to be the center of the fun. She drives it. He supports and participates on her terms. Her show. |
| 7 | You're the Man — Bahala Ka | Fully submissive. She wants him to control every aspect of her life. She wants to be the center of all his attention and adventures — but he produces and directs, always. His vision, his plan, his call. She's the star, he's the director. Bahala ka. |
The man declares honestly who he is and how he lives. No hiding. No surprises later. She knows what she's signing up for.
| # | Template | What He's Declaring |
|---|---|---|
| I | One Woman | Fully monogamous. She's the only one. Period. |
| II | I See Others | He dates or sees other women. Honest about it. |
| III | I Support Others | He financially supports other women too. She's not the only one receiving support. |
| IV | I Short Time | He engages in casual paid encounters. Stated plainly. |
| V | I Do It All | All of the above. He lives the full expat lifestyle. No filters. |
| VI | I Travel With One or More | He takes women on trips — one or several. Part of how he lives. |
| VII | Full Open — All Out | Everything. He sees others, supports others, short times, travels with them, all of it. Complete transparency about the full picture. |
The structure the provider sets for the girl's daily routine and autonomy.
| # | Template | What It Means |
|---|---|---|
| A | Full Structure | Home → School → Home → Job → Home. Strict routine. GPS-verified via status system. Deviations are visible and logged. Maximum accountability. |
| B | Guided Autonomy | Some freedom, but activities outside the routine require approval. Want to go out with friends? Request it. Provider approves or declines. Logged in the journal. |
| C | Full Autonomy | Live your life. The provider supports financially but does not control daily movement. Status system still runs (geo-verified), but no approval required for activities. |
Each connection has three parts: Her Ask (1-7) + His Declaration (I-VII) + His Structure (A-C). Examples:
| Combo | Translation |
|---|---|
| 1 + I + A | She wants him monogamous. He declares one woman. Full structure for her. The tightest arrangement — both all in, maximum accountability. |
| 3 + VII + C | She doesn't want to know. He's full open, all out. Full autonomy for her. The loosest — financial support, zero strings, total honesty about the asymmetry. |
| 4 + III + B | She wants to know everything. He declares he supports others. Guided autonomy for her. Trust but verify — she knows the full picture, he knows her schedule. |
| 5 + V + C | She wants to join the fun. He does it all. Full autonomy for her. Shared adventures, open lifestyle, no daily control. |
| 7 + VII + A | You're the Man + Full open + Full structure. The ultimate bahala ka — she gives him total control, he's all out, she's the star of his production. He directs everything. |
| 1 + II + A | She wants him monogamous. He declares he sees others. Full structure for her. This is a mismatch — the system flags it. She's asking for one thing, he's declaring another. Both parties see the conflict before signing. |
journal.c (immutable agreement records) + crypt.c (dual Ed25519 signatures) + store.c (agreement triples: {connection, bound_by, agreement_1A}) + policy.c (cooling period enforcement, template validation, supersession rules)
| Type | Description | Example |
|---|---|---|
| Intention | What you plan to do. Lightweight. A signal of direction. | "I intend to visit in December" |
| Dream | A shared aspiration. No timeline, no commitment — just a vision. | "I dream of us having a small business together" |
| Idea | A suggestion for discussion. Open-ended. | "What if we enrolled your sister too?" |
| Promise | A binding statement with a timeline. The system tracks it. | "I promise to send the tuition by March 15" |
| Commitment | A formal agreement between both parties. Requires mutual acceptance. | "We commit to exclusive dating effective today" |
journal.c (immutable declarations) + store.c (relationship triples: {person, promised, thing}) + policy.c (deadline tracking, mutual acceptance rules) + audit_engine.c (pattern analysis over time)
Some girls are masters of the game. Double and triple talk. Misdirection. Emotional manipulation. Anyone who has lived with a Makati bar girl long enough will see the extent and level of gamesmanship going on behind the scenes. They are masters of the art of seduction — they will make your head spin, heart explode, and wallet drain simultaneously and without effort, all while seeing three other punters, building out houses and buying motorbikes for their local Filipino macho dancer, their province boyfriend, and their secret lesbian kabit.
When you know, you know. But many don't know — and they have no business getting involved in such monkey business without guidance.
The system can help. Not by judging — by surfacing data.
| Signal | What It Might Mean | How |
|---|---|---|
| Promise/commitment ratio | Many promises, few kept = pattern of unreliability | Journal analysis — promises declared vs. kept over time |
| Sponsor request frequency | Escalating requests = possible financial exploitation | Request frequency + amount trending over time |
| Edit frequency on messages | Heavy editing = possible story management | Edit count per message, especially on sensitive topics |
| Status vs. schedule conflicts | "At Home" during scheduled work = inconsistency | Geo-status vs. declared schedule mismatches |
| Sponsorship compliance gaps | Missing grade proofs, attendance drops = priorities shifted | Proof submission patterns, deadlines missed |
| Agreement violations | Behavior inconsistent with signed agreement template | Agreement terms vs. actual status/schedule/financial patterns |
| Response time asymmetry | Instant responses when requesting money, slow otherwise | Response time correlation with message type |
When there is two-way respect and honesty, the app promotes the winning philosophy — clean records, kept promises, consistent behavior. The data validates the trust. When there is ill intent on either side, the system helps identify it. Not by spying. Not by accusing. By making the patterns in the permanent record visible to those who need to see them.
journal.c (the source of truth) + store.c (pattern queries over triples) + policy.c (threshold rules for flagging) + audit_engine.c (trend analysis)
This is essential. Many foreigners who want to help don't have the experience — and for all intents and purposes have no business getting involved without education. The Stories & Field Guide is a curated, growing collection of real experiences, hard-won wisdom, and cautionary tales from people who've been in the trenches.
| Type | Description |
|---|---|
| Stories | Real narratives from real people. First-person accounts. Names changed, lessons preserved. Joey will contribute his own stories and curate others. |
| Quotes | One-liners and wisdom from experienced providers. Tagged with attribution. Real words only — no AI-generated content. |
| Patterns | Common manipulation tactics explained without judgment. "Here's what it looks like. Here's what's actually happening. Here's what you can do." |
| Red Flags | Specific warning signs with real examples. Not to create paranoia — to create awareness. |
| Success Stories | When it works. When trust is real. When the investment in a person's education changes a life. These stories matter too. |
| Cultural Context | Filipino culture, family dynamics, utang na loob (debt of gratitude), the province vs. city divide, bar culture vs. student culture. Understanding the context changes everything. |
store.c (story triples: {story, tagged_with, pattern}) + journal.c (forward-only archive) + content moderation via policy.c
| Layer | Technology | Source |
|---|---|---|
| Mobile App | Flutter (Dart) — single codebase iOS + Android | NEW (Dart UI, FFI to C) |
| C Core Library | Compiled shared library (.so/.dylib/.dll) | EXISTS — Nous C stack |
| Dart FFI Bridge | dart:ffi bindings to C functions | NEW — thin wrappers |
| Crypto — Signatures | Ed25519 (crypt.c) | EXISTS — 80KB |
| Crypto — Encryption | AES-256-GCM (aes_gcm.c) | EXISTS — 17KB |
| Crypto — Hashing | SHA-256 (sha256.c + sha256_hw.c) | EXISTS |
| Crypto — Transport | Noise Protocol XX pattern | NEW — composed from existing primitives |
| Storage — Local | Triple store (store.c) + journal (journal.c) | EXISTS — 26KB + journal |
| Storage — Server | Relay server (relay_server.c) — stores encrypted blobs only | EXISTS — 73KB |
| Wire Protocol | Binary framing (wire.c) | EXISTS |
| Auth | TOTP + QR + Gate (metal/auth) | EXISTS |
| Audit | audit_engine.c | EXISTS — 7,200 LOC |
| Policy | policy.c | EXISTS — 4,000 LOC |
| Mesh (future) | mesh.c — P2P when both parties nearby | EXISTS — 28KB, 46 tests |
Sender Device Relay Server Receiver Device ┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐ │ Flutter UI (Dart) │ │ relay_server.c │ │ Flutter UI (Dart) │ │ ↓ FFI │ │ (73KB, existing) │ │ ↑ FFI │ │ ┌──────────────┐ │ │ │ │ ┌──────────────┐ │ │ │ journal.c │ │ │ Ed25519 node ID │ │ │ journal.c │ │ │ │ (append msg) │ │ │ AES-GCM session │ │ │ (append msg) │ │ │ │ ↓ │ │ Noise XX │ Triple store │ Noise XX │ │ ↑ │ │ │ │ crypt.c │ │──────────────→│ sessions │─────────────→│ │ crypt.c │ │ │ │ (Ed25519 sig)│ │ (identity │ │ (identity │ │ (verify sig) │ │ │ │ ↓ │ │ hidden) │ Stores ONLY │ hidden) │ │ ↑ │ │ │ │ aes_gcm.c │ │ │ encrypted blobs │ │ │ aes_gcm.c │ │ │ │ (encrypt) │ │ │ No keys. │ │ │ (decrypt) │ │ │ │ ↓ │ │ │ No plaintext. │ │ │ ↑ │ │ │ │ wire.c │ │ │ No metadata. │ │ │ wire.c │ │ │ │ (frame) │ │ │ │ │ │ (deframe) │ │ │ └──────────────┘ │ └─────────────────┘ │ └──────────────┘ │ └──────────────────┘ └──────────────────┘ Server stores noise. That's it. That's the whole point.
libbahalaka.so/.dylib)
bahalaka (app)
├── SECURITY
│ ├── crypt.c/h ............. Ed25519 signatures (80KB) ✅ EXISTS
│ ├── auth.c/h .............. Authentication (4,500 LOC) ✅ EXISTS
│ ├── vault.c/h ............. Credential storage (3,800) ✅ EXISTS
│ ├── policy.c/h ............ Rule enforcement (4,000) ✅ EXISTS
│ └── noise.c/h ............. Noise XX handshake 🟡 NEW (compose)
│
├── CRYPTO
│ ├── aes_gcm.c/h .......... AES-256-GCM (17KB) ✅ EXISTS
│ ├── aes_gcm_hw.c/h ....... HW-accelerated AES (14KB) ✅ EXISTS
│ ├── sha256.c/h ........... SHA-256 software ✅ EXISTS
│ └── sha256_hw.c/h ........ SHA-256 hardware ✅ EXISTS
│
├── STORAGE
│ ├── store.c/h ............. Triple store (26KB) ✅ EXISTS
│ ├── journal.c/h ........... Write-ahead log ✅ EXISTS
│ ├── hash.c/h .............. Hash tables ✅ EXISTS
│ ├── index.c/h ............. Triple indexing ✅ EXISTS
│ ├── mmap.c/h .............. Memory-mapped I/O ✅ EXISTS
│ └── pack.c/h .............. Serialization ✅ EXISTS
│
├── COMMS
│ ├── relay_server.c ........ Authenticated relay (73KB) ✅ EXISTS
│ ├── wire.c/h .............. Binary framing ✅ EXISTS
│ ├── mesh.c/h .............. P2P mesh (28KB, 46 tests) ✅ EXISTS (Phase 5)
│ └── http.c/h .............. HTTP server (10KB) ✅ EXISTS
│
├── AUDIT
│ ├── audit_engine.c/h ...... Audit trail (7,200 LOC) ✅ EXISTS
│ └── gate_engine.c/h ....... Access control (8,800 LOC) ✅ EXISTS
│
├── AUTH
│ ├── totp.c ................ Time-based OTP (2,900 LOC) ✅ EXISTS
│ └── qr.c .................. QR generation (20KB) ✅ EXISTS
│
└── APP
├── Flutter / Dart UI ..... Mobile UI layer 🟡 NEW
├── dart:ffi bindings ..... FFI bridge 🟡 NEW
├── ledger.c/h ............ Financial engine 🟡 NEW (compose)
├── schedule.c/h .......... Schedule engine 🟡 NEW (compose)
├── declare.c/h ........... Intentions/promises engine 🟡 NEW (compose)
├── agreement.c/h ......... Agreement templates + signing 🟡 NEW (compose)
└── concern.c/h ........... Pattern detection engine 🟡 NEW (compose)
SCORE: 22 existing modules | 8 new (6 composed from existing, 2 fresh)