TNT (Trust Network Tokens) is a non-transferable ERC721 framework for issuing and revoking verifiable trust credentials. The dApp lets organizations deploy their own TNT contract via a factory, issue tokens to users, optionally revoke them, and keep a chain-verifiable registry of trust relationships.
TODO: In the checklist below, mark the items that have been completed and delete items that are not applicable to the current project:
-
The project has a logo.
-
The project has a favicon.
-
The protocol:
-
has been described and formally specified in a paper.
-
has had its main properties mathematically proven.
-
has been formally verified.
-
-
The smart contracts:
-
were thoroughly reviewed by at least two knights of The Stable Order.
-
were deployed to:
-
Ergo
-
Cardano
-
EVM Chains:
-
Ethereum Classic
-
Ethereum
-
Polygon
-
BSC
-
Base
-
Scroll Sepolia (Chain ID 534351) — factory at
0xc0e8ababc172112e3e458ae35a4d2d4b92b35e8e
-
-
-
-
The mobile app:
-
has an About page containing the Stability Nexus's logo and pointing to the social media accounts of the Stability Nexus.
-
is available for download as a release in this repo.
-
is available in the relevant app stores.
-
-
The web frontend:
-
has proper title and metadata.
-
has proper open graph metadata, to ensure that it is shown well when shared in social media (Discord, Telegram, Twitter, LinkedIn).
-
has a footer, containing the Stability Nexus's logo and pointing to the social media accounts of the Stability Nexus.
-
is fully static and client-side.
-
is deployed to Github Pages via a Github Workflow.
-
is accessible through the https://tnt.stability.nexus domain.
-
-
the project is listed in https://stability.nexus/protocols.
- Next.js 15 (App Router)
- TypeScript
- TailwindCSS + tailwind-merge + tailwindcss-animate
- shadcn/ui (Radix UI primitives)
- RainbowKit + wagmi + ethers.js for wallet connectivity
- Next Themes, Framer-powered UX elements
- Solidity smart contracts (Foundry / Hardhat)
- OpenZeppelin ERC721 + AccessControl
- TNT Factory deploys non-transferable, optionally revokable TNT tokens and tracks issued tokens per user
- Deployed on Scroll Sepolia (Chain ID 534351)
- Node.js 18+
- npm/yarn/pnpm
- MetaMask or any web3 wallet browser extension
- Scroll Sepolia RPC endpoint and testnet funds for interactions
- A WalletConnect project ID (
NEXT_PUBLIC_PROJECT_ID) for RainbowKit
The Next.js app lives in
web/. Smart contracts live incontracts/.
git clone https://github.com/StabilityNexus/TNT.git
cd TNT/webUsing your preferred package manager:
npm install
# or
yarn install
# or
pnpm installCreate web/.env.local (you can copy from web/.sample.env) and set:
NEXT_PUBLIC_PROJECT_ID=your_walletconnect_project_id
Start the app locally:
npm run dev
# or
yarn dev
# or
pnpm devNavigate to http://localhost:3000 to see the application. Use the Create flow to deploy a new TNT, explore trust tokens, and manage issuance/revocation from the UI.
Contracts live in contracts/:
Factory.soldeploys TNT contracts, tracks TNTs per creator, and maintains user-to-TNT registries (register/unregister on issuance/burn).TNT.solis a non-transferable ERC721 with issuer and revoker roles, optional revocation, timestamped metadata, and image URL support.
Common commands (from contracts/):
forge build
forge test
forge fmtWe welcome contributions of all kinds! To contribute:
- Fork the repository and create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Run the development workflow commands to ensure code quality:
npm run lintnpm run build
- Push your branch (
git push origin feature/AmazingFeature). - Open a Pull Request for review.
If you encounter bugs, need help, or have feature requests:
- Please open an issue in this repository providing detailed information.
- Describe the problem clearly and include any relevant logs or screenshots.
We appreciate your feedback and contributions!
© 2025 The Stable Order.