Skip to content

referencedev/kin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NEAR Private Characters (Contract + TEE Agent + Web4 UI)

Privacy-preserving AI character NFTs on NEAR with one-time deposit, TEE-metered chat, on-chain attestation receipts, and Web4 SPA.

Structure

near-private-characters/
├─ contracts/character_nft/   # Rust contract (NFT + sessions + attestation + Web4)
└─ tee-agent/                 # Node/TS TEE-like agent (NEAR AI chat + image gen + metering)

Build Contract

cd contracts/character_nft
rustup target add wasm32-unknown-unknown
cargo build --release --target wasm32-unknown-unknown

Deploy (testnet example)

near create-account characters.your.testnet --masterAccount your.testnet
near deploy characters.your.testnet --wasmFile target/wasm32-unknown-unknown/release/character_nft.wasm
near call characters.your.testnet new '{
  "owner_id":"your.testnet",
  "metadata": {"spec":"nft-1.0.0","name":"Private Characters","symbol":"CHAR"},
  "fee_vault":"vault.your.testnet",
  "tee_signer":"tee.characters.your.testnet"
}' --accountId your.testnet

TEE signer key (function-call-only, optional but recommended)

near create-account tee.characters.your.testnet --masterAccount your.testnet
near add-key characters.your.testnet <PUBKEY>   --contract-id characters.your.testnet   --method-names record_usage_receipt   --allowance 1

Start TEE Agent

cd tee-agent
cp .env.example .env   # Fill NEAR creds and NEAR AI endpoints
npm i
npm run dev

Publish attested key to contract:

# Fetch attestation
curl http://localhost:8787/attestation
# Use pubkey (base64) and measurement (hex) to set on contract
near call characters.your.testnet set_attested_key '{
  "pubkey": "<base64->bytes>",
  "measurement": "<hex->bytes>"
}' --accountId your.testnet

Web4 UI

The contract embeds a small SPA at / with wallet connect, deposit, character creation (calls the agent to seal prompt + generate image using NEAR AI), mint, and chat (WS binding).

Notes

  • NEAR AI endpoints are OpenAI-compatible in this template; adjust payloads/URLs to your deployment.
  • The agent currently maps 1 unit per user message; refine metering (tokens/minutes) as needed.
  • For real TEEs, replace measurement() and signing with hardware-backed attestation + sealed keys.

About

Own your Kin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors