Feature: Public Cash Availability Display #1

Open
opened 2026-06-13 21:58:16 +00:00 by padreug · 0 comments
Owner

Migrated from aiolabs/lamassu-next#1 — opened by @padreug on 2026-01-24.\n\n## Overview

A public website or app can display real-time cash availability for ATMs without requiring any special authentication.

Status: Fully Achievable
Complexity: Low
Dependencies: Service beacon (kind 30078)

Technical Approach

  1. Machine publishes beacon (replaceable event kind 30078):
{
  "kind": 30078,
  "tags": [
    ["d", "machine-status"],
    ["location", "40.7128,-74.0060"],
    ["currency", "USD"]
  ],
  "content": {
    "cassettes": [
      { "denomination": 20, "count": 45 },
      { "denomination": 50, "count": 20 }
    ],
    "totalCash": 1900,
    "status": "online",
    "lastDispense": "2026-01-24T10:30:00Z"
  }
}
  1. Website subscribes to relay:
["REQ", "availability", {"kinds": [30078], "authors": [<machine-pubkeys>]}]
  1. Real-time updates: Replaceable events update in place, website gets live data.

Privacy Considerations

  • Location precision can be reduced (city-level vs exact coordinates)
  • Operators choose what to publish (can omit exact counts)
  • Machine identity is pseudonymous (pubkey only)

Implementation Notes

  • No encryption needed (public data)
  • Works with any public relay
  • Multiple machines can publish to same relay for fleet view
  • Dashboard aggregates for operator, public website shows customer view

Priority

P1 - High value, low effort

> _Migrated from [aiolabs/lamassu-next#1](https://git.atitlan.io/aiolabs/lamassu-next/issues/1) — opened by @padreug on 2026-01-24._\n\n## Overview A public website or app can display real-time cash availability for ATMs without requiring any special authentication. **Status**: Fully Achievable **Complexity**: Low **Dependencies**: Service beacon (kind 30078) ## Technical Approach 1. **Machine publishes beacon** (replaceable event kind 30078): ```json { "kind": 30078, "tags": [ ["d", "machine-status"], ["location", "40.7128,-74.0060"], ["currency", "USD"] ], "content": { "cassettes": [ { "denomination": 20, "count": 45 }, { "denomination": 50, "count": 20 } ], "totalCash": 1900, "status": "online", "lastDispense": "2026-01-24T10:30:00Z" } } ``` 2. **Website subscribes** to relay: ```javascript ["REQ", "availability", {"kinds": [30078], "authors": [<machine-pubkeys>]}] ``` 3. **Real-time updates**: Replaceable events update in place, website gets live data. ## Privacy Considerations - Location precision can be reduced (city-level vs exact coordinates) - Operators choose what to publish (can omit exact counts) - Machine identity is pseudonymous (pubkey only) ## Implementation Notes - No encryption needed (public data) - Works with any public relay - Multiple machines can publish to same relay for fleet view - Dashboard aggregates for operator, public website shows customer view ## Priority P1 - High value, low effort
padreug changed title from [reserved] migration number alignment to Feature: Public Cash Availability Display 2026-06-14 06:54:32 +00:00
padreug reopened this issue 2026-06-14 06:54:33 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/bitspire#1
No description provided.