Skip to main content

voidnote

Official Python SDK for VoidNote — zero-knowledge self-destructing notes and live encrypted streams.

v0.4.1 · Python 3.9+ · zero-knowledge v1 API

Install

pip install voidnote

Quick start

import voidnote

# Create a note — content is encrypted locally, server never sees plaintext
result = voidnote.create(
    "my secret value",
    api_key="vn_...",
    max_views=1,       # destroy after this many reads (1–100)
    expires_in=1,      # hours until expiry (1–720)
)
print(result.url)    # https://voidnote.net/n/<tokenId>#<secret>
print(result.token)  # 32-char tokenId

API

voidnote.create(content, *, api_key, max_views=1, expires_in=1) → CreateResult

Encrypt content locally and store the ciphertext. Requires an API key from your dashboard.

result = voidnote.create("deploy key: abc123", api_key="vn_...", max_views=3)
print(result.url)        # full shareable URL — includes #secret
print(result.token)      # 32-char tokenId only
print(result.expires_at)

voidnote.read(url) → ReadResult

Fetch and decrypt a note. Consumes one view. Accepts both v1 URLs (/n/<token>#<secret>) and legacy URLs.

note = voidnote.read("https://voidnote.net/n/<tokenId>#<secret>")
print(note.content)         # decrypted plaintext
print(note.views_remaining) # views left after this read
print(note.destroyed)       # True if this was the last view

voidnote.peek(url) → PeekResult

Check metadata without consuming a view.

meta = voidnote.peek("https://voidnote.net/n/<tokenId>#<secret>")
print(meta.exists)
print(meta.views_remaining)
print(meta.expires_at)

Void Streams

Live encrypted real-time channels. Messages are encrypted before leaving your machine.

import voidnote

# Create a channel
stream = voidnote.create_stream(api_key="vn_...", title="Deploy #42")
print(stream.url)  # share this URL with watchers

# Write messages (write and close are authenticated with the same API key)
stream.write("Starting deployment...")
stream.write("Build complete.")
stream.close()  # self-destructs all content

# Watch a stream — yields decrypted messages as they arrive
for message in voidnote.watch(stream.url):
    print(message)

# Password-protected stream
for message in voidnote.watch(url, password="hunter2"):
    print(message)

Crypto payments

# Create a payment order
order = voidnote.create_crypto_order(
    api_key="vn_...",
    bundle_id="starter",   # "test" | "starter" | "standard" | "pro"
    chain="polygon",
    token="USDT",
)
print(f"Send {order.amount} {order.token} to {order.to_address}")

# After sending, submit the tx hash
result = voidnote.submit_crypto_payment(
    api_key="vn_...",
    order_id=order.order_id,
    tx_hash="0x...",
)
print(f"+{result.credits_added} credits, balance: {result.credits}")

Security model

server generates  tokenId  (32-char hex — stored as lookup key)
client generates  secret   (32-char hex — NEVER sent to server)

key        = SHA-256(bytes.fromhex(secret))
ciphertext = AES-256-GCM(plaintext, key, random_12_byte_iv)
share URL  = https://voidnote.net/n/{tokenId}#{secret}

The #fragment is never transmitted to HTTP servers per spec. The server has ciphertext; you have the key.

Requirements

  • Python 3.9+
  • cryptography >= 41.0.0 (installed automatically)

Metadata

Release files for voidnote 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for voidnote 0.4.1
File Size Uploaded Provenance Actions
voidnote-0.4.1.tar.gz 7.6 kB Without provenance Details for voidnote-0.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for voidnote 0.4.1
File Interpreter ABI Platform Actions
voidnote-0.4.1-py3-none-any.whl Python 3 none any Details for voidnote-0.4.1-py3-none-any.whl

Total release size: 15.9 kB

Release files / voidnote-0.4.1.tar.gz

Download URL voidnote-0.4.1.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2a9fc069bf1397150ad5e4d008697efba5b750905c6c3fc5d1539f1b8d2b76a1
BLAKE2b-256 checksum
How to use checksums
89a61e4030b015b96c35efc699d14138274479f8ea90ab309ae0803556b0805d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / voidnote-0.4.1-py3-none-any.whl

Download URL voidnote-0.4.1-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
560bf18ca6c5f633c8dc78f081f8d7bf7c4bd40948d1ac5c79a3588bc1a6676d
BLAKE2b-256 checksum
How to use checksums
ebefac439c24a51537fa726e8ad5449754af462bd02852e105a2dd062dc5ef4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for voidnote 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page