EmasSaku

Nive Labs · Useful software. Thoughtfully built.

Privacy Policy

Effective date: 14 November 2026

Last updated: 14 November 2026

1. Introduction

EmasSaku is an Android application from Nive Labs. It helps people record physical gold bullion they buy, sell, and still hold, and it shows market prices and a calculation of portfolio performance. The currency in the app is Indonesian rupiah. EmasSaku does not buy, sell, or hold gold for you.

This policy explains what information the app and the EmasSaku account service handle. It is written from the application and server code available on 14 November 2026. Where a practice depends on a third-party product, or is not defined in that code, this policy says so.

You can use EmasSaku as a guest or by signing in with Google. Guest use does not create an account with Nive Labs. Gold purchase and sale records stay on the phone in either case.

2. Information we collect

What is collected depends on how you use the app. The lists below separate information the EmasSaku software handles from information a third-party service may process on its own.

If you continue as a guest

The app stores a guest choice on the phone. It does not send a name, email address, or account identifier to Nive Labs. It still requests public gold-price data, as described below, and it can request ads if you are not using EmasSaku Pro.

If you sign in with Google

The app uses Android’s credential manager to request a Google ID token. From that sign-in, the account service stores:

  • the Google account subject identifier;
  • email address, when Google includes it;
  • whether Google reports that email as verified;
  • display name, when Google includes it;
  • profile-photo URL, when Google includes it.

The service then issues an access token and a refresh token for that account. The default lifetimes in the server code are 15 minutes for the access token and 30 days for the refresh token. Those lifetimes can be changed by server configuration. The phone stores the tokens, the name, the email address, the photo URL, and a cached subscription status. The server stores a hash of the refresh token, not the refresh token itself.

Price requests

The app requests the latest gold prices, the product list, and price history from the EmasSaku price API. Those requests are ordinary web requests. They include the product, price type, and date range needed to answer the request. They do not include your portfolio, your name, or your account token. The phone then stores the returned prices so the app can be used without a network connection.

The API uses the connection’s IP address in memory to limit how many requests it accepts in a minute. That rate limiter does not write the address into the account database. The network in front of the API may keep its own connection logs. This repository does not define those logs.

Information the app does not ask you to enter for an account

The app does not ask for a phone number, a government identity number, a date of birth, or a payment card number. It does not request location, contacts, camera, or microphone permission. The permissions declared by the app are internet access, notification permission for reminders you create, and permission to restore those reminders after the phone restarts.

The app does not include a separate analytics or crash-reporting product. Google Play, Android, and the advertising software described below may still collect diagnostic or device information under their own terms. This policy does not describe those independent collections as collections by Nive Labs.

3. Gold portfolio and transactions

Purchases, sales, and the holdings calculated from them are stored in a private database on the phone. A record can include the bullion brand, product, weight, quantity, the price you enter, fees, the date, an optional seller or buyer, and optional notes.

That portfolio is not uploaded to Nive Labs. Price requests and account requests do not include it. Home-screen widgets and reminders read the same on-phone records and do not send them to a server.

You can export those records to a JSON file and save that file wherever you choose, and you can import a file of the same format back onto a phone. Nive Labs does not receive that file unless you separately send it to us. Android backup and device-to-device transfer are turned off for the app’s database, preferences, and files, so those Android features are not a copy of your portfolio.

Removing the app, or clearing its storage, removes the portfolio from that phone. A file you already exported remains wherever you saved it.

4. Google sign-in

Google sign-in is optional. It is used to create an EmasSaku account session and to attach an EmasSaku Pro subscription to that account. Guest use does not use it.

When you choose Google, Google provides an ID token to the app. The app sends that token to the EmasSaku account service. The service checks the token with Google and keeps the account fields listed in section 2. Later, the app can refresh the session and can ask the service for the current profile and subscription status.

Signing out clears the session stored on the phone and asks the service to revoke that refresh session. Signing out does not delete the account record, the subscription record, or the gold records stored on the phone.

Google’s own handling of your Google account is covered by Google’s privacy policy. Nive Labs does not receive your Google password.

5. Data storage and security

On the phone, the account session is stored with Android’s encrypted-preferences library, using AES-256 for the stored values and keys. The gold database is stored in the app’s private storage. The app does not apply a separate database encryption product to that gold database.

The account service and the price service are the same API. The public address used by the app is served over HTTPS through a Cloudflare Worker. Account records, subscription records, and market-price observations are stored in PostgreSQL. Project deployment records identify Neon as the hosted PostgreSQL service. This policy does not certify Neon’s or Cloudflare’s controls, and it does not claim a particular certification for Nive Labs.

The server stores a hash of the refresh token. The access token is a signed value that expires. The app does not pin certificates, and this policy does not claim that data is encrypted beyond the HTTPS connection and the on-phone session encryption described above.

Market-price history stored by the service is not information about your holdings. It is price information collected for the price feature.

6. Advertising

The app includes the Google Mobile Ads software and initializes it when the app starts. For someone who is not using EmasSaku Pro, the app requests full-screen interstitial ads. Pro is intended to skip those requests. Initialization of the advertising software still runs at startup.

The app build current on 14 November 2026 requests Google’s test interstitial ad unit. A production ad unit exists in the app and is not the unit being requested while that test switch remains on. The app is registered with a Google AdMob application identifier. The app’s own code does not read the Android advertising identifier, and it does not set a child-directed, under-age, or non-personalized-ads flag.

What the Google Mobile Ads software sends to Google is determined by that software and by Google’s configuration, not by a list in this repository. Treat Google’s documentation as the description of that processing, and treat the exact fields as unverified from EmasSaku’s code alone. Google’s policy is at policies.google.com/privacy. AdMob’s data disclosure is at support.google.com/admob/answer/6128543.

The app keeps a local count and a local time of the last ad it presented, so it can space ads. Those values stay on the phone.

7. Subscriptions and payments

EmasSaku Pro is an optional monthly or yearly subscription sold by Google Play. Google Play collects and processes the payment. The app does not receive your card number, and the EmasSaku API does not store one.

When you subscribe or restore a purchase, the app sends the Play product identifier and the Play purchase token to the account service, together with your account access token. The service checks that purchase with Google Play and stores the result: product, base plan, purchase token, status, start, expiry, cancellation, and the time it was last verified. Google can also send subscription updates directly to the service. Pro is shown in the app when that verification says the subscription is active.

You manage, cancel, or request a refund for the subscription through Google Play. Cancelling the subscription is not the same as deleting an EmasSaku account.

8. Third-party services

The services below are the ones the implementation actually uses. Each one processes information under its own policy.

Nive Labs does not sell your account information. The app does not send your gold records to these services. Google’s advertising and Play products can still process device and transaction information as their own services.

9. Data retention

Gold records on the phone remain until you delete them in the app, replace them by importing a file, or remove the app’s storage. An exported file remains until you delete that file.

A refresh session remains until it expires or until sign-out revokes it. The server code does not show a job that deletes expired or revoked session rows. The default refresh lifetime is 30 days unless the server is configured with a different lifetime.

Account profile rows and subscription rows remain in PostgreSQL for as long as the account exists. The code does not define a retention period, and it does not define a schedule for deleting them. That period is not set, and it needs a decision before this policy can state one.

The in-memory rate limiter drops IP addresses as their one-minute window passes. This policy does not state a retention period for Cloudflare, Neon, Google Play, or Google advertising logs. Those periods belong to those services.

10. Data deletion and account deletion

You can delete a purchase or a sale in the app, within the rules the app enforces for linked sales. You can remove every on-phone record by clearing the app’s storage or uninstalling it. That does not delete an exported file you saved elsewhere, and it does not delete a server account.

Signing out removes the session from the phone and revokes that session on the server. It does not delete the account.

EmasSaku does not currently provide an in-app control, or an API, that deletes the Google-linked account and its subscription records. The database has a column that could mark an account deleted, and no application path sets that column. Deleting an account is a missing product function. Do not rely on a delete button that is not there.

Request Account Deletion. The form sends a request for review. It does not delete the account by itself, and this policy does not promise a completion time. Subscription cancellation remains a separate action in Google Play.

Indonesia’s Personal Data Protection Law, Law No. 27 of 2022, may give you rights to access, correct, delete, or object to certain processing of personal data. This policy does not state that Nive Labs has completed a legal assessment of those rights, of a lawful basis, or of transfers outside Indonesia. Those points need legal review.

11. Children’s privacy

EmasSaku is made for adults who keep records of physical gold. It is not directed to children. It does not ask for a date of birth, and it does not offer a child account. The advertising software is not marked as child-directed in the app.

The age rating shown on Google Play is chosen in Play Console. It is not defined in the application repository, so this policy does not restate it. If you believe a child has sent personal information to the account service, contact us at the address below.

12. Changes to this policy

When this policy changes, the revised text will be posted at this page and the “Last updated” date will change. The copy inside a particular app version can lag behind this page until that version is updated. For the current statement, use this page.

If a future change must be notified in a particular way under applicable law, Nive Labs will follow that requirement. The app does not currently send a policy-update message.

13. Contact

EmasSaku is operated by Nive Labs.

Privacy questions and deletion requests: support@nivelabs.app

This address is the contact published for this policy. Confirm that the mailbox is monitored before relying on it. This page does not describe it as a verified, staffed address.