🔗 Lana NOSTR Kinds — Complete Documentation

Generated: 2026-03-27T10:04:58.650Z
Source: https://lananostr.site
Version: 1.0.0

This document contains the complete, machine-readable documentation for all Nostr event kinds used in the Lana Ecosystem. It is designed for AI systems, developers, and automated tools to understand and implement Lana protocols.


KIND 38888 Lana System Parameters

Purpose

The Lana System Parameters event defines the global configuration for the Lana Ecosystem. It serves as the single source of truth for:

All Lana applications (Lovable, SafeLana, LanaRegister, LanaPays, etc.) must synchronize using this event.

Core Information

FieldValue
Kind38888
TypeParameterized Replaceable (NIP-33)
Parameter Tag["d","main"]
Authorized Publisher9eb71bf1e9c3189c78800e4c3831c1c1a93ab43b61118818c32e4490891a35b3
ValidationAccept only events signed by this pubkey and matching d=main
Replace BehaviorRelay keeps only the latest version per (pubkey + kind + d)
🚨 Authorized Publisher Notice: Only the pubkey 9eb71bf1e9c3189c78800e4c3831c1c1a93ab43b61118818c32e4490891a35b3 is authorized to publish official Lana System Parameters. Clients MUST verify this pubkey and ignore all others.

Trusted Signers per Function

Certain Lana ecosystem functions have their own sets of trusted public keys used by clients and relays to verify authenticity of specialized events.

"trusted_signers": {
  "Lana8Wonder": ["<nostr_hex_pubkey_1>", "<nostr_hex_pubkey_2>"],
  "LanaRegistrar": ["<nostr_hex_pubkey_1>"],
  "LanaRooms": [],
  "LanaAlignment": ["<nostr_hex_pubkey_1>", "<nostr_hex_pubkey_2>"],
  "LanaPaysUs": ["<nostr_hex_pubkey_1>"],
  "100MillionFun": [],
  "LanaKnights": [],
  "LanaHelpsUs": [],
  "LanaSelfResponsibility": [],
  "UnconditionalPayments": []
}

Rules:

Tag Reference

TagExampleDescription
["d","main"]Parameter key for replaceable slot (main config)
["relay","<url>"]wss://relay.lanavault.spaceOfficial relay endpoints
["electrum","<host>","<port>"]electrum1.lanacoin.com, 5097Active Lana Electrum servers
["fx","<currency>","<rate>"]"EUR","0.004"Exchange rate for 1 LANA
["split","<n>"]"3"Current global split round
["split_target_lana","<amount>"]"2000000"MANDATORY — Target amount of LANA for the current Split round
["split_started_at","<unix>"]1735689600Unix timestamp when the current Split started
["split_ends_at","<unix>"]1738368000Unix timestamp when the current Split is scheduled to end
["version","<n>"]"3"Sequential version number
["valid_from","<unix>"]1738976400Start of validity
["comment","<text>"]Free textOptional metadata

Canonical Event Structure

{
  "kind": 38888,
  "content": {
    "description": "Lana System Parameters v3 — Official configuration for all Lana applications.",
    "relays": [
      "wss://relay.lanavault.space",
      "wss://relay.lanacoin-eternity.com",
      "wss://relay.lanaheartvoice.com"
    ],
    "electrum": [
      {"host": "electrum1.lanacoin.com", "port": "5097"},
      {"host": "electrum2.lanacoin.com", "port": "5097"}
    ],
    "fx": {
      "EUR": 0.004,
      "USD": 0.004,
      "GBP": 0.004
    },
    "split": "3",
    "split_target_lana": 2000000,
    "split_started_at": "1735689600",
    "split_ends_at": "1738368000",
    "version": "3",
    "valid_from": "1738976400",
    "trusted_signers": {
      "Lana8Wonder": ["a56253e6232b2ab5a96b60d233434d4f759ba4c858a3cc0f4ec51906dce73ae6"],
      "LanaRegistrar": ["d91c5d4a1c0f0f6c5a7bc8b27a19e8e2fb1f9d1a0d9e2a5f8f5d92a18c1f8831"],
      "LanaRooms": [],
      "LanaAlignment": ["3ec147aa1f7b3eac12c018091cbcd2eadae0c4f8b92239ad5c92706f8a9913b5"],
      "LanaPaysUs": ["e4f8a2b9c3d7e1f6a5b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"],
      "100MillionFun": [],
      "LanaKnights": [],
      "LanaHelpsUs": [],
      "LanaSelfResponsibility": [],
      "UnconditionalPayments": []
    }
  },
  "tags": [
    ["d", "main"],
    ["relay", "wss://relay.lanavault.space"],
    ["relay", "wss://relay.lanacoin-eternity.com"],
    ["relay", "wss://relay.lanaheartvoice.com"],
    ["electrum", "electrum1.lanacoin.com", "5097"],
    ["electrum", "electrum2.lanacoin.com", "5097"],
    ["fx", "EUR", "0.004"],
    ["fx", "USD", "0.004"],
    ["fx", "GBP", "0.004"],
    ["split", "3"],
    ["split_target_lana", "2000000"],
    ["split_started_at", "1735689600"],
    ["split_ends_at", "1738368000"],
    ["version", "3"],
    ["valid_from", "1738976400"],
    ["comment", "Official configuration maintained by Lana Core Authority"]
  ],
  "pubkey": "9eb71bf1e9c3189c78800e4c3831c1c1a93ab43b61118818c32e4490891a35b3",
  "created_at": 1738998000,
  "id": "<autogenerated_by_client>",
  "sig": "<autogenerated_by_client>"
}

Client Fetch Example

const filter = {
  kinds: [38888],
  authors: ["9eb71bf1e9c3189c78800e4c3831c1c1a93ab43b61118818c32e4490891a35b3"],
  "#d": ["main"],
  limit: 1
};

const event = getLatestEvent(filter);

const relays = event.tags.filter(t => t[0] === "relay").map(t => t[1]);
const electrum = event.tags
  .filter(t => t[0] === "electrum")
  .map(t => ({ host: t[1], port: t[2] }));
const fx = Object.fromEntries(
  event.tags.filter(t => t[0] === "fx").map(t => [t[1], parseFloat(t[2])])
);
const split = event.tags.find(t => t[0] === "split")?.[1];
const splitTargetLana = event.tags.find(t => t[0] === "split_target_lana")?.[1];
const splitStartedAt = event.tags.find(t => t[0] === "split_started_at")?.[1];
const splitEndsAt = event.tags.find(t => t[0] === "split_ends_at")?.[1];

Governance Rules


KIND 88888 Lana8Wonder Annuity Plan

Purpose

KIND 88888 defines the canonical event format for publishing official annuity plans within the Lana8Wonder system.

Each plan represents one subject (identified by a Nostr HEX ID) and contains 8 accounts, describing how LANA tokens are released at specific price levels.

The latest event with the same plan ID automatically replaces older ones. Only the main publisher may create or update these events.

Versioning and Replaceability

PropertyDescription
Kind88888
Replace ruleThe newest event with the same ["d","plan:<subject_hex>"] replaces all earlier versions (relay-side rule, NIP-33-style).
Policy tag["policy","v2"]
Schema version["schema","1.2.1"]

Authorization

FieldDescription
Main Publisher HEX IDa56253e6232b2ab5a96b60d233434d4f759ba4c858a3cc0f4ec51906dce73ae6
Tag["mpub","a56253e6…73ae6"]
RuleOnly events signed by this pubkey are valid official Lana8Wonder plans.
OptionalNIP-26 delegation from the subject → publisher for extra audit proof.

Required Tags

TagMeaning
["d","plan:<subject_hex>"]Stable plan ID for this subject.
["p","<subject_hex>"]HEX ID of the subject (person).
["mpub","a56253e6…73ae6"]Declares the main publisher.
["coin","LANA"]Blockchain asset symbol.
["currency","EUR"]Reference fiat currency.
["policy","v2"]Policy version marker.
["schema","1.2.1"]Schema revision.
["acct","1","AC1_WALLET"] … ["acct","8","AC8_WALLET"]Account-to-wallet mappings (eight total).

Content JSON Schema

Each plan always includes 8 accounts:

{
  "subject_hex": "<subject_pubkey_hex>",
  "plan_id": "plan:<subject_hex>",
  "coin": "LANA",
  "currency": "EUR",
  "policy": "v2",
  "accounts": [
    {
      "account_id": 1,
      "wallet": "AC1_WALLET",
      "levels": [
        {
          "row_id": "uuid-or-hash",
          "level_no": 1,
          "trigger_price": 0.075,
          "coins_to_give": 1110.5366,
          "cash_out": 86.62,
          "remaining_lanas": 4442.1464
        }
      ]
    }
  ]
}

Validation Rules

Example Event (Short Form)

{
  "kind": 88888,
  "created_at": 1723887600,
  "tags": [
    ["d","plan:SUBJECT_HEX"],
    ["p","SUBJECT_HEX"],
    ["mpub","a56253e6232b2ab5a96b60d233434d4f759ba4c858a3cc0f4ec51906dce73ae6"],
    ["coin","LANA"],
    ["currency","EUR"],
    ["policy","v2"],
    ["schema","1.2.1"],
    ["acct","1","AC1_WALLET"],
    ["acct","2","AC2_WALLET"],
    ["acct","3","AC3_WALLET"],
    ["acct","4","AC4_WALLET"],
    ["acct","5","AC5_WALLET"],
    ["acct","6","AC6_WALLET"],
    ["acct","7","AC7_WALLET"],
    ["acct","8","AC8_WALLET"]
  ],
  "content": "{\\"subject_hex\\":\\"SUBJECT_HEX\\",\\"plan_id\\":\\"plan:SUBJECT_HEX\\",\\"coin\\":\\"LANA\\",\\"currency\\":\\"EUR\\",\\"policy\\":\\"v2\\",\\"accounts\\":[...]}"
}

KIND 87001-87009 Lana Registrar Protocol

The Lana Registrar Protocol defines event kinds used within the LanaCoin Registrar system. These kinds standardize communication between users, registrars, providers, and relays for wallet registration, monitoring, compliance, and synchronization.

Kind 87001 — New Wallets

Purpose: Represents a new wallet registration request initiated by a user.

TagDescription
WalletIDUnique identifier of the wallet
coinAlways LanaCoin
WalletTypee.g., MainWallet
EntryPointSource of registration (e.g., LanaLovesUK)
ActionAlways NewWallet

Subscribers: Registrars, providers | Publishers: Anyone (new user)

Kind 87002 — Wallet Registration by Registrar

Purpose: Registrar verifies a wallet and approves/rejects it.

TagDescription
WalletIDWallet being registered
Linked_eventEvent ID from Kind 87001 or 87005
Statusactivated / rejected / temp_revoked / revoked
LastBlockBlockchain height when check was performed
ContentOptional human-readable explanation

Subscribers: Users, providers | Publishers: Registrars only

Kind 87003 — Monitoring for Unregistered Coins

Purpose: Registrar marks user wallets containing unregistered LANAs.

TagRequiredDescription
pREQUIREDNOSTR hex ID of user (wallet owner)
WalletIDREQUIREDWallet with unregistered LANAs
TXOPTIONALLanaCoin transaction ID causing the issue
Linked_eventOPTIONALReference to related event
UnregistratedAmountLatoshisREQUIREDAmount in latoshis (1 LANA = 100,000,000 latoshis)

Publishers: Registrar only

Kind 87004 — Monitoring for Max Coins

Purpose: Registrar monitors user wallets exceeding maximum allowed balance.

TagDescription
NostrIDUser's identity (HEX pubkey)
WalletsList of wallets under this ID
Linked_eventsReferences to relevant 87001/87002 events
TotalBalanceCurrent total balance
MaxAllowedBalanceThreshold defined by registrar rules
DeadlineToReduceBalanceDate/time by which user must comply

Kind 87005 — New LanaCoins Registration

Purpose: New coins are introduced into the system and linked to a wallet.

TagDescription
WalletIDTarget wallet identifier
coinAlways LanaCoin
AmountNumber of new coins
AgreementTerms of registration (contract ID or text)
Split_IDReference to coin-splitting process (if applicable)
RegistrarRegistrar pubkey (HEX format)

Kind 87006 — Registration Confirmation

Purpose: Registrar confirms or denies new coin registration.

TagDescription
WalletIDTarget wallet identifier
Statusaccepted / denied
BlockAtConfirmationBlockchain height at decision time
Event_linkReference to related event

Kind 87007 — Registrar Acceptance

Purpose: Registrars accept or revoke recognition of each other's IDs.

TagDescription
RegistrarIDNostr pubkey of registrar (HEX format)
Statusaccepted / revoked

Kind 87008 — Registrar Sync Index (Total Balance)

Purpose: Registrars publish system-wide snapshots for audit and synchronization.

TagDescription
BalanceCurrent total registered balance
Wallets_NumberNumber of registered wallets
UnregisteredAmountAmount of LanaCoins still unregistered
BlockBlockchain height when snapshot was taken

Kind 87009 — Unregistered LANA Return Confirmation

Purpose: Published when a Registrar verifies that a user has returned previously unregistered LANA.

Auth Requirement: Clients MUST validate that the event was published by an authorized Registrar. Query Kind 38888 — Lana System Parameters to get the LanaRegistrar trusted signer keys.
TagRequiredDescription
pREQUIREDNOSTR hex pubkey of user who returned LANA
eREQUIREDReference to original Kind 87003 monitoring alert
from_walletREQUIREDWallet from which user returned the LANA
to_walletREQUIREDWallet to which returned LANA were sent
txREQUIREDBlockchain transaction ID confirming return
amount_lanoshisREQUIREDAmount returned in Lanoshis (1 LANA = 100,000,000 lanoshis)
memoOPTIONALFree-form note

KIND 30889 Registrar Wallet List (Parameterized Replaceable)

Purpose: Registrar maintains an authoritative list of all LanaCoin wallets belonging to one customer. One event per (registrar_pubkey, customer_pubkey). Replaceable → newest event replaces older ones.

Tags

TagDescription
["d", "CUSTOMER_PUBKEY_HEX"]Required, identifies the customer (used for replaceability)
["p", "CUSTOMER_PUBKEY_HEX"]Standard pubkey reference to the customer
["status", "active|temporary_suspended|maxcap"]Overall status of customer's wallet record
["w", wallet_id, wallet_type, "LANA", note, amount_unregistered_lanoshi]One tag per wallet with 6 fields

Wallet Tag Fields

Example Event

{
  "kind": 30889,
  "created_at": 1756915200,
  "tags": [
    ["d", "CUSTOMER_PUBKEY_HEX"],
    ["p", "CUSTOMER_PUBKEY_HEX"],
    ["status", "active"],
    ["w", "LcGT73RnXXwMUUyaMoHeZnVPYTa28j9F3f", "Main", "LANA", "Primary daily wallet", "0"],
    ["w", "LTTDqYuL24LAcpkwPmuwB9CzfiAcdEYinK", "Savings", "LANA", "Cold storage", "2500000000"],
    ["w", "LXq1Abc123xyz7890...", "Registrar", "LANA", "Registrar-linked wallet", "0"]
  ],
  "content": ""
}

Validation Rules


KIND 89800, 89807 Lash Payments Protocol

Event kinds used for LANA payments on Nostr. These kinds enable off-chain payment intents, batch settlements, and seamless integration with the LanaCoin blockchain.

Kind 89800 — Payment Intent (Parameterized)

Purpose: Sender declares an off-chain LANA payment to be included in a future batch.

Replaceability: Parameterized by ["d","lash:<uuid>"] (unique per sender)

Required Tags

TagFormatDescription
dlash:<uuid>Idempotent Lash ID - unique identifier for this payment intent
p<recipient_npub>Recipient Nostr identity
amount<lanoshis>Payment amount in smallest LANA unit (lanoshis)
chainLANATarget chain - always "LANA"
from_wallet<lana_address>Sender funding wallet
to_wallet<lana_address>Recipient payout wallet

Optional Tags

TagFormatDescription
e<event_id>Reference a specific Nostr post/event
a89805:<merchant_pubkey>:inv:<uuid>Reference a parameterized invoice
memo<short note>Short note about the payment
catlike|tip|purchase|donationIntent category
expires<unix_seconds>Expiration timestamp. Default: 72h from created_at
Expiration Logic: If 'expires' exists → use it. If missing → 72h default validity. After expiry → intent is ignored in pending count but remains as historical record.

Kind 89807 — LASH Payment Confirmation (Parameterized)

Purpose: Confirms that a specific LASH intent (89800) was paid on-chain.

Required Tags

TagDescription
dSame Lash ID as in 89800
pRecipient identity
amountActually paid amount in lanoshis
chainAlways "LANA"
from_walletSender funding address used
to_walletRecipient payout address paid
txidOn-chain transaction ID
voutOutput index paying to_wallet
statusconfirmed|reorged
last_block<height>,<block_time_unix>
eREQUIRED - links to 89800 intent or tipped post

KIND 39991 LASH Payments Protocol 2.0

Unified Person-to-Person Payments via Nostr → LanaCoin. One replaceable Nostr event = one payment lifecycle. Direct settlement between two Nostr HEX identities.

Replaceability Key

["d","lash:<uuid>"]

One UUID = one payment forever.

Lifecycle States

StateDescription
openPayment intent created
claimedPayment locked by client until executed
paidOn-chain payment completed
expired(optional) intent timed out
canceled(optional) user canceled

Note: No failed state. If chain broadcast fails, event remains claimed until success or lease expiry.

Required Tags

TagDescription
["d","lash:<uuid>"]Payment identity
["a","0:<sender_hex>"]Sender Nostr HEX (KIND-0 identity)
["p","<recipient_hex>"]Recipient Nostr HEX
["e","<event_id>"]Referenced Nostr event (reason / context)
["amount","<lanoshis>"]Amount in lanoshis
["chain","LANA"]Always LANA
["from_wallet","<lana_address>"]Sender Lana wallet
["to_wallet","<lana_address>"]Recipient Lana wallet
["state","open|claimed|paid|expired|canceled"]Current payment state

Optional Tags

TagDescription
["by","<client_id>"]Client/device claiming & executing
["lease_expires","<unix_seconds>"]Claim lock duration (e.g., 7 days)
["txid","<hex>"]On-chain tx ID (paid only)
["vout","<index>"]Output index (paid only)
["last_block","<height>","<unix_time>"]Last observed canonical chain state
["seq","<int>"]Sequence (monotonic replacement safety)
["expires","<unix_seconds>"]Intent expiration
["memo","text"]Free text note

Client Rules

Create

Publish open event.

Claim

Allowed if: state = open, OR state = claimed AND lease_expires < now

state = "claimed"
by = "<client_id>"
lease_expires = now + 7 days
seq++
⚠️ If write fails → do NOT pay.

Pay

Allowed only if: state = claimed, by = current client, lease_expires still valid

state = "paid"
txid = "<txid>"
vout = "<index>"
last_block = "<height>","<timestamp>"
seq++

Example Events

open

{
  "kind": 39991,
  "tags": [
    ["d","lash:abcd"],
    ["a","0:1122aa...ff88"],
    ["p","2233bb...ee77cc"],
    ["e","9f1a...44ef"],
    ["amount","250"],
    ["chain","LANA"],
    ["from_wallet","Labc123..."],
    ["to_wallet","Lxyz789..."],
    ["state","open"]
  ]
}

paid

{
  "kind": 39991,
  "tags": [
    ["d","lash:abcd"],
    ["a","0:1122aa...ff88"],
    ["p","2233bb...ee77cc"],
    ["e","9f1a...44ef"],
    ["amount","250"],
    ["chain","LANA"],
    ["from_wallet","Labc123..."],
    ["to_wallet","Lxyz789..."],
    ["state","paid"],
    ["by","mobile-ios"],
    ["txid","abcd1234..."],
    ["vout","1"],
    ["last_block","123456","1732980410"],
    ["seq","3"]
  ]
}

KIND 38883, 38884, 88805, 88807 Lana Governance

Decentralised Awareness Acknowledgement on Nostr. A revolutionary approach to collective decision-making based on awareness expansion rather than competitive voting.

Perspective on Awareness

Governance Flow

  1. Awareness Proposal (38883): A higher perspective is expressed. Defines quorum scope, resistance threshold, and timing.
  2. Acknowledgement (38884): Silence = YES, Explicit NO = resistance, Comments invite refinement.
  3. Integration (88805): Oracle tallies resonance vs resistance. If resistance ≥ threshold, proposal fails. If resistance < threshold, awareness is anchored.

Kind 38883 — Awareness Proposal (Replaceable)

Defines a collective awareness proposal that requires full (100%) acceptance among participating members. This event is replaceable.

Required Tags

["title","<short title>"]
["s_perspective","<short perspective>"]
["l_perspective","<long perspective>"]
["consequence_yes","<result_if_accepted>"]
["consequence_no","<result_if_not_accepted>"]
["level","local" | "global"]
["start","<unix_seconds>"]
["end","<unix_seconds>"]
["tally_at","<unix_seconds>"]
["oracle","<NOSTR HEX ID>"]
["d","awareness:<slug_or_uuid>"]
["status","draft" | "active" | "archived"]

Optional Tags

["link","<url>"]
["doc","<url>"]
["img","<url>"]
["youtube","<youtube_url>"]
["quorum_scope","global" | "local:SI-LJ"]
["donation_wallet","<wallet_id>"]
["prev","<event_id>"]

Kind 38884 — Awareness Acknowledgement

Participant acknowledges resonance or resistance to governance proposals.

TagDescription
["a", "38883:<proposer_hex>:awareness:<slug>"]Reference to proposal (NIP-33 address)
["vote", "yes" | "no"]Explicit acknowledgement (silence = yes)
["comment", "<text>"]Optional refinement comment
["weight", "<integer>"]Vote weight (if quorum-weighted)

Kind 88805 — Awareness Integration

Oracle publishes final results of acknowledgements for governance integration.

TagDescription
["a", "38883:<proposer_hex>:awareness:<slug>"]Reference to proposal
["result", "anchored" | "resisted"]Final outcome
["yes_count", "<integer>"]Total YES acknowledgements
["no_count", "<integer>"]Total NO acknowledgements
["resistance_percent", "<float>"]Resistance as percentage
["threshold", "<float>"]Threshold that was applied

KIND 4 Direct Messaging (NIP-04)

Interoperable encrypted direct messages using NIP-04.

Overview

FieldValue
PurposeInteroperable encrypted direct messages
Event kind4 (one message per event)
Cryptosecp256k1 ECDH → SHA-256 → AES-256-CBC (+ PKCS#7 padding)
Content wire formatbase64(ciphertext)?iv=base64(iv)
RoutingRequired ["p","<recipient_hex>"] tag
Note: NIP-04 is legacy (CBC without AEAD). Use it for compatibility; avoid highly sensitive data.

Event Structure

{
  "kind": 4,
  "created_at": <unix_seconds>,
  "tags": [
    ["p", "<recipient_hex>"],
    ["e", "<replied_event_id>"] // optional
  ],
  "content": "<base64(ciphertext)>?iv=<base64(iv)>",
  "pubkey": "<sender_hex>",
  "id": "<event_id>",
  "sig": "<sender_signature>"
}

Cryptography Details

Key Agreement (ECDH)

Symmetric Encryption

Subscriptions

Inbox:

[{ "kinds": [4], "#p": ["<my_hex>"], "since": <unix> }]

Sent:

[{ "kinds": [4], "authors": ["<my_hex>"], "#p": ["<their_hex>"], "since": <unix> }]

Security Notes

NIP-04 uses CBC without AEAD (malleable). Integrity relies on event signatures, not ciphertext MACs. Avoid very sensitive information. Consider migrating to NIP-17 + NIP-44 when feasible.

KIND 31950, 93333 Lana Marketplace

Decentralized marketplace for goods and services using Nostr events.

Kinds in this spec

Kind 31950 — Market Offer

Required Tags

TagDescription
["t","offer"]Type marker
["p","<seller_pubkey_hex>"]Seller pubkey
["d","<uuid_v4_or_ulid>"]Stable NIP-33 parameter key
["l","EN"]Language (BCP-47)
["ttl","<short_title>"]Short title
["desc","<description>"]Concise description
["cur","EUR"]Base currency code
["amt","50.00"]Price amount (string)
["walletid_pay","<lana_address>"]Destination LanaCoin address
["status","active"|"archived"]Offer visibility state
["max_sales","<integer>"]Max purchases before auto-archive

Optional Tags

Kind 93333 — Purchase Confirmation

Posted by buyer after payment. Constitutes the transaction history layer.

TagDescription
["a","31950:<seller_pubkey>:<d>"]Canonical address of the offer
["e","<offer_event_id>"]Specific offer event version
["p","<seller_pubkey>"]Seller reference
["amt","50.00"]Amount paid
["cur","EUR"]Currency
["txid","<txid>"]On-chain transaction ID
["status","confirmed"]Payment status
Auto-archiving: Clients MUST count Kind 93333 by canonical address. When count ≥ max_sales, mark offer as archived.

KIND 30901-30902, 94501-94504 LanaPays.us

Decentralized merchant payment processing using Nostr events.

Kinds in this spec

Kind 30901 — Business Unit Definition

Defines a merchant business unit (store, outlet, or service point).

Required Tags

TagExampleDescription
["d","..."]b7f98a61b2f04f90b443a8b5e91c72dfPersistent ID for NIP-33 updates
["unit_id","..."]b7f98a61b2f04f90b443a8b5e91c72dfConstant unique Business Unit ID
["name","..."]Lana Café LjubljanaDisplay name
["owner","..."]npub1abcdef...Owner's Nostr public key
["p","..."]hexpubkey_of_ownerOwner reference
["receiver_name","..."]Lana Café d.o.o.Legal receiver entity
["receiver_address","..."]Slovenska cesta 10Street address
["receiver_zip","..."]1000ZIP code
["receiver_city","..."]LjubljanaCity
["receiver_country","..."]SICountry ISO
["bank_name","..."]LanaBankBank name
["bank_swift","..."]LNBASI2XSWIFT/BIC code
["bank_account","..."]SI56192000012345678IBAN
["longitude","..."]14.505751Longitude
["latitude","..."]46.056946Latitude
["country","..."]SICountry of operation
["currency","..."]EURPreferred currency
["status","..."]activeStatus

Kind 30902 — Processor Fee & Bonus Policy

Fee and payout bonus policy applied by LanaPays processor.

TagDescription
["d","policy_2025Q4"]Policy identifier
["unit_id","..."]Associated business unit
["a","30901:<pubkey>:<unit_id>"]Reference to business unit
["fee_percent","0.00"]Transaction fee percentage
["bonus_multiplier","1.30"]Bonus multiplier for LANA
["valid_from","2025-10-01"]Policy start date
["valid_until","2026-01-01"]Policy end date
["lanapays_pubkey","..."]LanaPays processor pubkey
["status","active"]Policy status

KIND 37334 Lana World Wide (App Settings)

Replaceable app settings (NIP-33) that synchronize user preferences, module configurations, and layout across devices.

Core Specification

FieldDescription
Kind37334
ReplaceabilityYes — NIP-33
Canonical Key["d","<settings_id>"]
Canonical Addressa = "37334:<pubkey>:<settings_id>"

Scope Types

Required Tags

TagDescription
["d","<settings_id>"]Canonical identifier for NIP-33 replacement
["scope","global"|"device"|"profile"]Determines where settings apply

Optional Tags

TagDescription
["device","<device_id>"]UUID identifying the device (when scope=device)
["profile","<profile_name>"]Profile name (when scope=profile)
["expires","<unix_seconds>"]Optional expiration timestamp
["schema","app.settings","1"]Schema name and version
["app","lana.app"]Application identifier

Recognized Modules

Wallet, Social, Chat, 8Wonder, Own, Rocks, LanaPayUs, PaperLana, Registrar, BuyLana, SellLana, MarketPlace

Content (JSON)

{
  "modules": [
    { "id": "Wallet", "enabled": true, "order": 1, "config": {} },
    { "id": "Social", "enabled": true, "order": 2, "config": {} },
    { "id": "Chat", "enabled": true, "order": 3, "config": {} }
  ],
  "layout": {
    "style": "tabs",
    "show_labels": true,
    "compact": false
  }
}

KIND 0 Lana Extended Profile

KIND 0 events are Nostr metadata events that contain user profile information. This schema extends the standard Nostr profile with LanaCoins-specific fields, payout methods, and mandatory acceptance of unconditional self-responsibility.

Mandatory Field: statement_of_responsibility

MANDATORY: A required free-text field where the user personally writes that they accept unconditional self-responsibility.
"statement_of_responsibility": "I accept full and unconditional self-responsibility for everything I do or don't do inside the Lana World."

Required Fields for System Functionality

FieldDescription
nameUser's name/username
display_nameDisplay name
aboutBiography/description text
locationGeographic location
countryCountry ISO code
currencyPreferred currency
lanoshi2lashExchange rate value
whoAreYouHuman or EI (Enlightened Intelligence)
orgasmic_profileOrgasmic profile information
["lang","<bcp47>"]Language preference (BCP-47 code)
["t","..."]Things user is interested in
["o","..."]Intimacy interests
statement_of_responsibilityPersonal declaration of self-responsibility

Contact Information (Optional)

FieldDescription
emailUser's email address (standard email format). Optional.
phonePhone number without country code prefix, digits only (e.g., "41123456"). Optional.
phone_country_codeITU-T E.164 country calling code with "+" prefix (e.g., "+386", "+1"). Required if phone is provided.

LanaCoins Specific Fields

FieldDescription
lanoshi2lashExchange rate value - LanaCoins × 100,000,000 = latoshis
lanaWalletIDLanaCoins wallet identifier
whoAreYouHuman or EI (Enlightened Intelligence)
latitudeGeographic latitude (WGS-84, optional)
longitudeGeographic longitude (WGS-84, optional)

Payment Methods Structure

{
  "id": "string-unique-per-profile",
  "scope": "collect | payout | both",
  "country": "ISO-3166-1 alpha-2",
  "scheme": "Region.Code",
  "currency": "ISO-4217",
  "label": "Friendly name",
  "fields": { /* scheme-specific */ },
  "verified": boolean,
  "primary": boolean
}

KIND 90900-90901 Unconditional Payments

Unconditional payment proposals and confirmations for voluntary contributions with on-chain verification.


KIND 30289 Unregistered Wallet List

User-published list of unregistered LanaCoin wallets for transparency and ecosystem tracking. Parameterized replaceable event.


KIND 31234-31235, 60200 100 Million Ideas (LanaCrowd)

LanaCrowd community crowdfunding platform with project definitions, visibility control, and support tracking.


KIND 37772, 77771 Lana Knights

Official Knight registry and registration events for LanaCoin ecosystem with validation and tracking.


KIND 36677, 53333, 53334 Lana Events

Lana Ecosystem event definitions (online/physical) and user registrations with attachments and capacity.


KIND 99991 Lana World Knowledge

Canonical, spam-resistant knowledge layer for AI learning and Lana applications with governance-based authority.


KIND 91991-91993 Sell/Buy LANA

Decentralized P2P exchange for LANA coins via NOSTR events.


KIND 87033 Person Reference

Person Reference system for giving references/endorsements and building a decentralized web of trust.


KIND 87044 Self Responsibility

Self-responsibility process (OWN ▲) between two people for opening responsibility processes.


KIND 30987 Lana GitHub Application TRIAD

Announces and tracks GitHub repositories that are part of the Lana Ecosystem. NIP-33 parameterized replaceable — newest event with same d-tag replaces older ones.

Required Tags

TagDescription
dUnique stable slug (NIP-33 replaceability key)
titleHuman-readable name
repoMANDATORY. Full GitHub URL
descriptionShort description of the application
statusactive | experimental | archived

Optional Tags

TagDescription
languagePrimary programming language
tTopic tags (always include "lana")
pNostr hex pubkey of the person responsible for this repository. Allows Digital Beings and developers to contact the maintainer directly via Direct Message (KIND 4 NIP-04 DM) with questions about the codebase.

Content

Extended description of the application — purpose, connections, technical notes for Digital Beings.

Rules

TRIAD Relationship

KIND 30987 (GitHub Application) → discover codebases
KIND 76523 (Awareness Entry) → study ecosystem knowledge
KIND 12893 (KIND Definition) → learn KIND structures and versioning

KIND 76523 Lana Awareness Entry TRIAD

Publishes awareness content (full transcripts, guides, reflections) for the Lana Ecosystem. Immutable log — events are never replaced. Digital Beings process entries oldest-first.

Required Tags

TagDescription
titleTitle of the awareness entry
descriptionShort summary (1-2 sentences)
sourceyoutube | blog | document | internal | event
langLanguage (ISO 639-1)

Optional Tags

TagDescription
linkURL to original source
published_atUnix timestamp of original publication
tTopic tags
revRevision indicator
IMPORTANT: Content field MUST contain complete, unabridged material. Summaries are not acceptable.

Digital Being Study Protocol

  1. Fetch all KIND 76523 events. Sort by created_at ascending.
  2. Read title and description first, then study full content.
  3. Optionally publish a KIND 12893 reflection.
  4. Subscribe to new events and integrate.

TRIAD Relationship

KIND 30987 (GitHub Application) → discover codebases
KIND 76523 (Awareness Entry) → study ecosystem knowledge
KIND 12893 (KIND Definition) → learn KIND structures and versioning

KIND 12893 Lana KIND Definition TRIAD

Documents NOSTR KINDs with full revision history. Non-replaceable — every revision is permanently preserved. Active definition = highest rev number.

Required Tags

TagDescription
kind_idKIND number being documented (string)
titleHuman-readable name
descriptionOne-sentence description
revRevision number (strictly increasing integer)
statusdraft | active | deprecated

Optional Tags

TagDescription
linkURL to full docs on lananostr.site
prevEvent ID of previous revision
tTopic tags

Canonical Selection Rules

  1. Fetch all KIND 12893 events from authorized publisher
  2. Group by kind_id
  3. Discard deprecated entries
  4. Select highest rev; tie-breaker: newest created_at

Content

JSON object (serialized string) containing full technical documentation: description, tags, rules, example_event, changelog.

TRIAD Relationship

KIND 30987 (GitHub Application) → discover codebases
KIND 76523 (Awareness Entry) → study ecosystem knowledge
KIND 12893 (KIND Definition) → learn KIND structures and versioning