hush README

The project's README from github.com/Stellar-hush/hush. As one markdown file: README.md.

Hush — private, programmable mail on Stellar

Your inbox. Your rules. Proof for every delivery.

CI MIT License

Review item Current status
License MIT; see LICENSE
Development Local application and testnet development paths; beta software
Hosted experience No verified public Hush demo URL yet; the screenshot-like panel below is an illustration
CI / deployment Check the latest CI run and deployment notes; CI success and deployment are separate
Contributions Public issues and pull requests are welcome; see CONTRIBUTING.md

Hush is an open-source beta for private email built around Stellar identity and programmable inbox access. Mailbox owners can decide how unfamiliar senders reach them: allow a verified identity, request approval, require postage, or block the sender. Encrypted message content stays off-chain; Stellar is used for identity and verifiable protocol actions.

Project status: beta. The application, API, relay, protocol, and Soroban contracts are in this repository. Local development and testnet paths are available. Production readiness and a public hosted demo are separate deployment milestones; check the deployment status before relying on any endpoint.

Hush product and visual identity overview

Product and design overview. The message flow is conceptual and does not claim that a hosted mail service is available.

Why Hush exists

Email makes it easy for anyone to contact an inbox, but the recipient has few tools to set admission rules before a message arrives. Hush explores a different model: senders present verifiable identity and meet the policy selected by the recipient. That can make abuse more costly, give recipients better control, and make delivery claims easier to inspect.

Hush is not a replacement for Stellar wallets and does not put private message bodies on-chain. The Stellar layer supports identity, policy, postage, receipts, and lifecycle evidence. Relays and encrypted object storage carry message payloads.

How a message flows

  1. Resolve the sender. A Hush address or Stellar account is resolved to an identity and the keys needed by the client.
  2. Evaluate the recipient’s rules. The sender learns which admission requirements apply, such as trusted-sender access, verification, explicit approval, or postage.
  3. Encrypt and submit. The client prepares an encrypted envelope and sends it through the relay or configured storage path.
  4. Record protocol evidence. Where the configured chain adapter is enabled, postage and delivery state can be associated with Stellar contract records and receipts.
  5. Inspect the result. The recipient can review sender provenance, delivery state, and available proof details in the client.
flowchart LR
  S[Sender client] --> I[Identity resolution]
  I --> P[Recipient policy]
  P -->|allowed / approval / postage| E[Encrypt envelope]
  E --> R[Relay and encrypted storage]
  E --> C[Stellar / Soroban evidence]
  R --> D[Recipient client]
  C --> D
  D --> V[Verify provenance and receipt]

This diagram describes the intended protocol path. Which steps are active depends on the runtime profile and configured adapters; local demos use synthetic data and are not evidence of a production mail service.

Product capabilities in this beta

Area What the repository contains Where to look
Inbox and sender requests Mailbox views, message actions, sender review, and recipient policy flows src/features/mail/, src/features/requests/
Identity Stellar account and federation resolution, wallet linking, and sender provenance src/features/identity/, src/services/stellar/
Encryption Message-envelope, attachment, key-derivation, and recipient wrapping code with synthetic vectors src/services/crypto/, protocol/messages/
Relay and storage Message submission, relay authentication, encrypted object storage, and delivery state src/services/relay/, src/services/storage/
Stellar contracts Soroban contracts for sender policy, postage, receipts, and message lifecycle contracts/soroban/
Proof inspection UI and API types for inspecting sender and delivery evidence src/features/proof-inspector/, src/server/api/

These are implementation areas, not a promise that every feature is available in a shared hosted environment. Some paths require testnet configuration, operator-managed services, or secrets and are intentionally not enabled in public demos.

Try the project

Local application

Requirements: Node.js 24 or newer and Bun 1.3.14. Rust is needed to build or test the Soroban contracts; use the version pinned in rust-toolchain.toml.

git clone https://github.com/Stellar-hush/hush.git
cd hush
bun install --frozen-lockfile
cp .env.example .env
bun run dev

The Vite development server prints the local URL when it starts. The default development profile is intended for local work and uses development adapters. Use test accounts and synthetic messages. Do not paste wallet seeds, real user content, production tokens, or private keys into .env, fixtures, screenshots, logs, issues, or pull requests.

Useful commands

bun run format:check       # formatting
bun run lint               # lint
bun x tsc --noEmit         # TypeScript types
bun run test               # unit tests
bun run build              # production bundle / worker build

Contract-focused work should also run the relevant commands in contracts/soroban/. See contributor setup for the repository workflow and security verification for security-specific checks.

Documentation map

Stellar and Soroban

Hush uses Stellar as a programmable identity and protocol-evidence layer. Soroban contracts in this repository define policy, postage, receipts, and lifecycle behavior. The client and services include adapters that connect those contracts to message admission and delivery flows. Contract code, deployment manifests, and environment configuration have distinct roles; a local contract build is not proof that a contract is deployed or that a live application is using it.

The system is designed to keep message bodies and attachments out of public ledger state. Ledger transactions and contract events can still reveal operational metadata such as account relationships, payment amounts, timing, and public contract activity. Review the metadata policy before handling sensitive data.

Contributing

Good contribution areas include protocol interoperability vectors, contract failure-path coverage, relay reliability, accessible inbox and sender-request flows, and clear operator documentation. Wave issues should be bounded, independently testable, and possible to complete without production credentials or private user data.

Start with CONTRIBUTING.md, then read the relevant module guide. The project uses a review-first workflow: discuss large changes in an issue, keep changes focused, include exact validation results, and never add secrets or real message content to the repository.

Hush has an MIT license; see LICENSE. Participation in the Stellar Wave is subject to organizer approval and the program’s current rules. The maintainer guide explains how to apply a public repository, add issues after approval, and manage contributor assignments.

Beta boundaries

License

Hush is distributed under the MIT License.

hush (Stellar-hush/hush)

Searching Database…

132 ·GitHub
这是什么?Hush 是一个开源测试版,提供基于 Stellar 身份的私密、可编程电子邮件。发件人必须满足收件人选择的策略(可信访问、身份验证、明确批准或邮资)后邮件才会送达,并且系统会生成可验证的送达回执。
这是需要注册使用的托管邮件服务,还是我自己运行的东西?它是一套自行运行的技术栈,不是注册即可用的服务:客户端、API、中继、协议和 Soroban 智能合约都在这个仓库里,目前没有经过验证的公开托管演示。
怎么在本地把它跑起来?安装 Node.js 24+ 和 Bun 1.3.14,然后启动 Vite 开发服务器,它会打印本地 URL。单独构建或测试 Soroban 合约则需要 rust-toolchain.toml 中固定版本的 Rust。
测试它需要真实的 Stellar 钱包或生产环境凭据吗?不需要——默认的本地配置使用测试账户和合成消息,面向测试网;文档明确要求不要使用真实钱包种子、生产代币或私钥。
现在有能真正收发邮件的、可用于生产环境的版本吗?没有。Hush 明确是测试版软件,测试网部署并不代表生产可用性、送达能力或财务保障;部分联盟域名和标识符也仍是待迁移的旧版。
把邮件送达放到 Stellar 上会让我的邮件公开吗?不会——邮件正文和附件不上链,由中继和加密对象存储承载;只有身份、策略、邮资和回执证据会触及 Stellar,而这些元数据(账户关系、支付金额、时间)在链上仍然可见。
发件人审批系统实际是怎么运作的?这取决于收件人配置的策略:发件人可以通过可信或已验证的身份直接放行,也可能需要等待明确批准、被要求支付邮资,或被直接拦截;客户端会显示每封邮件的发件人来源和送达状态。
为什么基于 Stellar 而不是普通邮件服务器来构建?Stellar 纯粹被用作可编程的身份和协议证据层——Soroban 合约负责执行发件人策略、邮资和回执——这样准入规则和送达证明可以独立验证,而不必信任单一运营方。
除了收件箱界面,仓库里实际还有什么?它包含 Stellar 身份/联盟解析、消息信封与密钥派生加密代码、中继加加密对象存储服务、证据检查器 UI/API,以及用于策略、邮资和回执的 Soroban 合约。
Size
206 MB
Stars
132
Updated
CommitOct 12
Age
10d
Commits · 90 Days