Implement the Annos (Latin for "years") contract for tracking citizen lifespan and age-based entitlements: Annos Contract (pkg/core/native/annos.go): - LifespanRecord tracks birth/death timestamps per Vita holder - Age calculation from birthTimestamp (provided during registration) - Life stages: Child (0-17), Youth (18-25), Adult (26-64), Elder (65+) - Entitlement checks: isVotingAge, isAdult, isRetirementAge, isAlive - recordDeath method (committee only) for mortality tracking - Cross-contract methods for internal use by other contracts State Types (pkg/core/state/annos.go): - LifeStage, LifespanStatus enums - LifespanRecord, AnnosConfig structs with serialization Vita Integration: - Updated register() to accept birthTimestamp parameter - birthTimestamp is the actual birth date, NOT the mint date - Calls Annos.RegisterBirthInternal() after minting Vita - Enables existing adults to register with their real birth date Eligere Integration: - Added Annos IAnnos field to Eligere struct - Added voting age check in vote() method - Voters must be 18+ (configurable via AnnosConfig.VotingAge) - New ErrUnderVotingAge error for underage voters Contract Wiring: - Added eligere.Annos = annos in NewDefaultContracts() - Contract ID: -26 (next after Collocatio) Tests (pkg/core/native/native_test/annos_test.go): - 17 comprehensive tests covering all Annos functionality - Age-based tests for Child, Youth, Adult life stages - Note: Elder test skipped (uint64 can't represent pre-1970 dates) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .docker | ||
| .github | ||
| cli | ||
| config | ||
| docs | ||
| examples | ||
| internal | ||
| pkg | ||
| scripts | ||
| .dockerignore | ||
| .gitignore | ||
| .gitmodules | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| Dockerfile.wsc | ||
| LICENSE.md | ||
| Makefile | ||
| README.md | ||
| ROADMAP.md | ||
| codecov.yml | ||
| docker-compose.yml | ||
| go.mod | ||
| go.sum | ||
| tutus.service.template | ||
README.md
Tutus Chain
Sovereign blockchain platform for government deployments. Forked from NeoGo.
Website: tutus.one License: Apache 2.0
Overview
Tutus is an independent blockchain designed for government-grade deployments with:
- Sovereign instances - Each government runs their own chain
- 1-second blocks - Fast finality with dBFT consensus
- 7 validators - Government-controlled consensus nodes
- Zero gas for citizens - Native contracts subsidize operations
- Inter-government bridge - Optional cross-border interoperability
Building
Requires Go 1.24+ and make:
make build
The resulting binary is bin/tutus.
Running a Node
Start a Tutus node:
./bin/tutus node --config-file ./config/protocol.tutus.yml
For testnet:
./bin/tutus node --config-file ./config/protocol.tutus.testnet.yml
Network Flags
--tutus- Tutus mainnet (government deployment)--tutus-testnet- Tutus testnet
Configuration
Network configurations are in ./config/:
| File | Purpose |
|---|---|
protocol.tutus.yml |
Production government deployment |
protocol.tutus.testnet.yml |
Development testnet |
Docker
docker build -t tutus-chain .
docker run -d --name tutus -p 10333:10333 -p 10332:10332 tutus-chain
Native Contracts (Planned)
The following will be built into the Tutus protocol:
| Contract | Purpose |
|---|---|
| PersonToken | Soul-bound identity |
| Scire | Universal education |
| Salus | Universal healthcare |
| Sese | Life planning |
| Tribute | Anti-hoarding economics |
| VTS | Government stablecoin |
| Eligere | Democratic voting |
Validator Setup
See docs/validator.md for government validator deployment.
Origin
Tutus is forked from NeoGo, the Go implementation of the Neo N3 blockchain. We maintain compatibility with the Neo VM while extending the protocol for government use cases.
License
Apache 2.0 - See LICENSE.md