kwami
Health Pass
- License Γ’β¬β License: Apache-2.0
- Description Γ’β¬β Repository has a description
- Active repo Γ’β¬β Last push 0 days ago
- Community trust Γ’β¬β 48 GitHub stars
Code Warn
- process.env Γ’β¬β Environment variable access in .releaserc.cjs
Permissions Pass
- Permissions Γ’β¬β No dangerous permissions requested
No AI report is available for this listing yet.
π» kwami.io | A 3D Interactive AI Companion Library for creating engaging AI companions with visual (blob), audio, and AI speech capabilities.
Kwami
Kwami v3 is a Solana NFT collection and fully on-chain web3 app. Connect with Phantom, fund via MoonPay, mint a Kwami, publish it, and let others challenge it in a timed voice duel for a share of its account balance.
Mint Β· fund Β· publish Β· challenge Β· win (or grow the pot)
Table of contents
- Overview
- Features
- How it works
- Wallet & onboarding
- Getting started
- Scripts
- Project structure
- Documentation
- Contributing
- Security
- Releases
- License
Overview
Kwami combines a Solana NFT, a funded on-chain account, and a voice AI companion. Authors mint and publish Kwamis; challengers pay in SOL or USDC for a 3-minute voice session to discover the secret word or phrase.
| Outcome | Result |
|---|---|
| Challenger says the secret in time | Receives 80% of the Kwamiβs account balance (SOL + USDC) |
| Time runs out or secret is wrong | Ticket is lost; the authorβs Kwami account keeps growing |
Kwamis are immutable metadata but transferable assets β they can be bought and sold. The 3D model can be embedded in third-party apps. Minted owners unlock an AI program builder that generates Solana sub-programs for complex financial games before publish.
Features
- Solana NFT collection β mint, own, transfer, and trade Kwamis
- Phantom wallet β connect and sign on Solana
- MoonPay on-ramp β fiat β SOL/USDC without leaving the app
- Paid voice challenges β SOL or USDC tickets, 3-minute sessions
- Account economics β 80% reward on win; pot grows on miss
- Kwami death β dies after losing 99% of account value, or when balance falls under ~$1 USD
- Immutable + transferable β metadata locked; ownership can change on secondary markets
- Embeddable 3D model β integrate the Kwami avatar in any third-party app
- AI program builder β generate Solana sub-programs and smart-contract logic for custom financial games before publishing
How it works
Author Challenger
ββββββ ββββββββββ
Mint Kwami NFT
Fund account (SOL / USDC)
Set secret word/phrase
Customize on-chain logic
β Publish
βΌ
Pay ticket (SOL / USDC)
Speak to Kwami (β€ 3 min)
β
βββββββββββββββ΄ββββββββββββββ
βΌ βΌ
Secret guessed Time / miss
β 80% balance β ticket lost
to challenger pot grows
| Concept | Detail |
|---|---|
| Mint & publish | Create a Kwami NFT, fund its account, set a secret, optionally customize Solana logic, then publish |
| Paid interaction | Challengers pay in SOL or USDC for a voice session |
| Voice challenge | 3-minute window to discover the secret by speaking to the Kwami |
| Reward split | Correct guess β 80% of balance to the challenger; miss β author keeps the ticket |
| Death | Loses 99% of account value, or balance under ~$1 USD |
| Ownership | Immutable metadata; transferable NFT (buy / sell) |
| 3D model | Embeddable in third-party applications |
| AI program builder | Generate Solana sub-programs for complex games before publish |
Wallet & onboarding
| Integration | Role |
|---|---|
| Phantom | Wallet connect and Solana transactions |
| MoonPay | Fiat on-ramp for SOL / USDC |
Getting started
Prerequisites
| Tool | Requirement |
|---|---|
| Node.js | Version in .nvmrc (>= 22.14) β nvm use |
| pnpm | >= 10 β corepack enable picks up packageManager from package.json |
pnpm-lock.yaml is the lockfile of record. CI installs with --frozen-lockfile; an npm install here produces a lockfile CI will reject.
Install
git clone https://github.com/kwami-labs/kwami.git
cd kwami
nvm use
corepack enable
pnpm install # also installs husky hooks
Build & verify
pnpm build
pnpm lint && pnpm typecheck && pnpm test:run
Consume the package
pnpm add kwami # latest stable (main)
pnpm add kwami@rc # release candidate (stg)
pnpm add kwami@dev # prerelease (dev)
three is a peer dependency when embedding the 3D model:
pnpm add three
Scripts
# Build
pnpm build # bundle + type declarations β dist/
pnpm dev # rebuild on change
pnpm clean # remove dist/, coverage/, and test output
# Quality
pnpm lint
pnpm lint:fix
pnpm format
pnpm format:check
pnpm typecheck
pnpm audit:ci
# Tests β see docs/testing.md
pnpm test # unit
pnpm test:watch
pnpm test:coverage # unit + coverage ratchet (CI)
pnpm test:integration
pnpm test:e2e # built bundle in a real browser (WebGL)
pnpm test:all
# Releases β see docs/releases.md
pnpm release:dry-run # print next version; change nothing
Project structure
kwami/
βββ src/ # Library & app source
β βββ agent/ # Voice pipeline
β βββ avatar/ # 3D renderers
β βββ memory/ # Memory adapters
β βββ soul/ # Personality
β βββ skills/ # Native behaviors
β βββ tools/ # Tool registry (MCP)
β βββ types/ # TypeScript definitions
β βββ Kwami.ts # Public entry surface
βββ tests/
β βββ unit/
β βββ integration/
β βββ e2e/
βββ scripts/
β βββ ci/ # Pipeline gates
β βββ release/ # Baseline tag, back-merge
βββ docs/ # Deep-dive guides
βββ .github/ # Workflows, PR template, CODEOWNERS
βββ CHANGELOG.md # Generated by semantic-release
βββ CONTRIBUTING.md
βββ SECURITY.md
βββ LICENSE # Apache-2.0
βββ package.json
Documentation
| Document | Description |
|---|---|
| CONTRIBUTING.md | Setup, branches, commits, PR checklist |
| SECURITY.md | Supported versions & vulnerability reporting |
| CHANGELOG.md | Released changes (generated) |
| docs/ci-cd.md | CI pipeline & promotion gate |
| docs/releases.md | Channels, version bumps, troubleshooting |
| docs/testing.md | Unit / integration / e2e layers |
| LICENSE | Apache License 2.0 (full text) |
Contributing
Contributions are welcome. Please read CONTRIBUTING.md before opening a PR.
Branch promotion (enforced in CI):
feature/* βββΊ dev βββΊ stg βββΊ main
- Branch off
dev; open PRs againstdev - Use Conventional Commits β versions, tags, changelog, and npm publishes are derived from them
- Feature PRs are squash-merged; the PR title becomes the release subject
- Before push:
pnpm lint && pnpm typecheck && pnpm test:unit && pnpm test:integration
Issue tracker: github.com/kwami-labs/kwami/issues
Security
Do not open public issues for vulnerabilities.
Report privately via GitHub Security Advisories or see SECURITY.md for supported versions, scope, and response expectations.
Releases
Releases are automated with semantic-release. Do not hand-edit CHANGELOG.md or the version field.
| Branch | npm tag | Channel |
|---|---|---|
main |
latest |
Stable |
stg |
rc |
Release candidate |
dev |
dev |
Prerelease |
Details: docs/releases.md Β· History: CHANGELOG.md
License
Copyright Β© 2025 Alex Colls Outumuro
Licensed under the Apache License, Version 2.0. See the LICENSE file for the full text.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found