01The resource envelope
The SDK holds a gentle, adaptive ceiling you cannot exceed — this is what keeps apps inside App Store and Google Play rules and keeps devices cool.
On charger + Wi-Fi + screen on: up to your configured cap (we suggest ≤15% CPU).
On battery: ≤5% in short bursts; nothing below 20% battery, in low-power mode, or when warm.
Storage is opt-in and capped (up to 1 GB), shown to the user and clearable; off by default.
In app stores the node runs only while your app is in the foreground. Read-only checks only — never your users' code, never relayed traffic.
02Enrol a device (no account needed)
Your app authenticates with its own key and enrols a provisional device. The points it earns are held in escrow until the user claims them.
POST https://astrina.io/api/v1/node/app-enroll
X-App-Key: pa_… (your app key)
{ "kind":"mobile", "consent":1, "caps":{"uptime":1,"perf":1} }
→ { "device_id":123, "secret":"pn_…", "claim_code":"CLM-…" }03Link an account later — Login with Astrina
When the user wants to keep their points, send them through Login with Astrina — the same identity broker other Astrina integrations use — then redeem the claim code. The escrowed points move to their real account.
POST https://astrina.io/api/v1/node/claim
(the user is signed in with Login with Astrina)
{ "claim_code":"CLM-…" }
→ { "ok":true, "device_id":123, "ap":12.5 }04The SDK
One embeddable core does the loop; your app makes three calls. It also draws the consent screen and stores the device secret and claim code for you.
final pulsar = PulsarApp(appKey: 'pa_…');
await pulsar.enroll(); // once, after the consent screen
Timer.periodic(Duration(seconds: 60), (_) => pulsar.tick()); // while in foreground
await pulsar.linkAccount(); // opens Login with Astrina, then claims05Get an app key
App keys are issued after a short review. Tell us about your app and we will send a client id and key. Write to [email protected].
The rules, in plain words
- Tell users before they install. Participation may be required to use your app, but it is never hidden.
- Gentle mode is not optional and cannot be turned up past the safe ceiling.
- Escrowed points only ever move to a real account through a verified Login with Astrina.
- Provided as is. Read-only checks only; no code execution, no traffic relay.
What this page answers
- embed a node in an app
- monetise an app without ads
- SDK for spare device capacity
- revenue share for developers
- what is a Pulsar node inside an app
- how a Pulsar node inside an app works
- a Pulsar node inside an app explained
- a Pulsar node inside an app guide
- how to start with a Pulsar node inside an app
- a Pulsar node inside an app reviews
- is a Pulsar node inside an app worth it
- a Pulsar node inside an app pricing
- a Pulsar node inside an app alternatives
- a Pulsar node inside an app for beginners
- why a Pulsar node inside an app
- a Pulsar node inside an app — what you get