StellarNest
Documentation

Everything you need to run a family treasury

From your first treasury to integrating the API — StellarNest is designed to be self-hostable and fully documented.

Guides

Getting started

  • Create your first treasury

    Deploy a treasury and invite your family in under five minutes.

  • Connect a wallet

    Freighter, hardware wallets, and passkey signers.

  • Understanding roles

    Owner, Parent, Guardian, Child, Advisor, Viewer.

Treasury operations

  • Approval rules

    Thresholds, required signatures, and how pending withdrawals resolve.

  • Savings goals

    Create goals, contribute, and track progress on-chain.

  • Bills & automation

    Recurring payments, reminders, and workflow scheduling.

Inheritance vault

  • Beneficiaries & allocations

    Basis-point splits that must sum to 100%.

  • Time-locks & dead-man switch

    Two independent conditions that can unlock a claim.

  • Guardian approvals

    Configurable multi-guardian sign-off before distribution.

API reference

  • GraphQL schema

    Queries and mutations for families, treasuries, and rules.

  • Stellar integration

    Non-custodial XDR build & submit flow.

  • Webhooks

    Subscribe to treasury and inheritance events.

Quickstart

Create a treasury with GraphQL

The API is code-first GraphQL. Every mutation returns exactly the fields your UI needs.

mutation CreateTreasury {
  createTreasury(input: {
    familyId: "fam_adeyemi"
    name: "Adeyemi Family Treasury"
    assetCode: USDC
    approvalThreshold: 1000
    requiredApprovals: 2
  }) {
    id
    contractAddress
    approvalThreshold
  }
}
Non-custodial by design

The build → sign → submit flow

Every on-chain action follows the same three steps — the backend never touches a secret key.

// 1. Ask the API to build unsigned XDR
const { xdr } = await api.post('/stellar/build', {
  sourcePublicKey: wallet.publicKey,
  method: 'request_withdrawal',
  args: [treasuryId, toAddress, amount],
});

// 2. Sign client-side — StellarNest never sees your key
const signedXdr = await freighter.signTransaction(xdr);

// 3. Submit the signed envelope
await api.post('/stellar/submit', { signedXdr });

Full API reference and contract source live in the developer hub.

Ready to build?

Clone the repos, spin up Postgres with Docker, and you have a working StellarNest stack in minutes.

View the repos on GitHub