Skip to content

NAP-VALUE: shell-mediated value transfer - #30

Draft
dskvr wants to merge 4 commits into
masterfrom
nap-value
Draft

NAP-VALUE: shell-mediated value transfer#30
dskvr wants to merge 4 commits into
masterfrom
nap-value

Conversation

@dskvr

@dskvr dskvr commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds NAP-VALUE, a shell-mediated value-transfer interface for napplets. It generalizes the zap-sending need from hyprgate/gui#5 beyond a NAP-PAY-only surface so future value rails can fit under the same runtime boundary.

Namespace

window.napplet.value

Status

draft

Changes

  • Defines value.quote, value.send, value.status, and shell-pushed value.status.changed.
  • Models rails as zap, lnurl, or runtime-defined strings.
  • Uses millisatoshis for Lightning-compatible rails and leaves other rail units to metadata until a dedicated rail-specific NAP exists.
  • Adds an optional relay layering dependency for zap receipt publish/query paths.
  • Keeps wallet/NWC/LNURL integration, consent, kind 9734 zap request construction, signing, invoice payment, relay publishing, settlement tracking, and async status runtime-owned.

Downstream

Napplets submit value-transfer intent, not wallet credentials, NWC secrets, signing keys, direct payment backend access, or opaque payment payloads. Runtimes can support zaps first while preserving a generic value rail surface.

Reference

  • NIP-5D napplet transport and shell boundary

Changelog

  • 2c56394 - Introduced NAP-VALUE for shell-mediated value transfer.

Rebased onto current master; spec only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dskvr added 3 commits June 21, 2026 18:38
Value transfer operations, rail and status enums, targets, quotes, results, and status records now use the shared CDDL-style schema notation instead of TypeScript declarations.

Constraint: Keep this branch scoped to NAP-VALUE.
Confidence: high
Scope-risk: narrow
Tested: git diff --check
Tested: rg found no TypeScript code fences or declarations in naps/NAP-VALUE.md
The value rail, target, quote, result, and status schemas now use Markdown tables instead of a CDDL-style block. The rail extension point and zap/LNURL target semantics remain unchanged.

Constraint: PR #30 owns NAP-VALUE; keep this change scoped to that spec file.

Confidence: high

Scope-risk: narrow

Tested: rg for cddl/typescript schema fences and type assignment patterns in NAP-VALUE

Tested: git diff --check -- naps/NAP-VALUE.md
Open NAP proposal branches need reader-visible changelogs that track semantic spec changes without recording formatting-only migrations.

Constraint: Changelog entries are one bullet per semantic commit-change.
Rejected: Include schema-table or formatting-only commits | they do not change the spec contract or boundary.
Confidence: high
Scope-risk: narrow
Directive: Keep future changelog entries semantic; omit changelog-only and formatting-only commits.
Tested: git diff --check
Not-tested: Rendered Markdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant