A secure, time-locked Bitcoin vault system built on Stacks blockchain with multi-signature support, daily withdrawal limits, and emergency controls.
Chronos Fortress provides a sophisticated asset protection mechanism where users can create fortresses (vaults) with temporal barriers (time-locks), extraction limits (withdrawal caps), and sentinel authorization (multi-sig guardians). Perfect for securing long-term holdings, implementing corporate treasury controls, or establishing trustless inheritance mechanisms.
- Create Fortresses: Establish secure vaults with customizable parameters
- Temporal Barriers: Set time-locks preventing early withdrawals
- Cycle Thresholds: Implement daily/periodic withdrawal limits
- Operational Controls: Activate/deactivate fortresses as needed
- Multi-Signature Support: Require consensus from multiple sentinels for withdrawals
- Sentinel System: Authorize trusted guardians to approve extraction mandates
- Emergency Lockdown: Global protocol to freeze all fortress operations
- Input Validation: Comprehensive checks against malicious or malformed data
- Provision: Deposit STX tokens into your fortress
- Extract: Withdraw funds after temporal barrier expires (within cycle limits)
- Mandate System: Propose, endorse, and execute multi-sig withdrawals
Fortresses Map
{
architect: principal, // Fortress owner
reserves: uint, // Current STX balance
temporal-barrier: uint, // Block height when withdrawals unlock
cycle-threshold: uint, // Maximum extraction per cycle (daily)
extracted-this-cycle: uint, // Amount withdrawn in current cycle
last-extraction: uint, // Last extraction cycle timestamp
operational: bool, // Active/inactive status
sentinel-consensus: uint // Required sentinel approvals
}Extraction Mandates
{
quantity: uint, // Withdrawal amount
beneficiary: principal, // Recipient address
endorsements: uint, // Current approval count
executed: bool, // Execution status
initiated-at: uint // Creation block height
}(contract-call? .chronos-fortress construct-fortress
u14400 ;; temporal-lock (approx 100 days)
u1000000 ;; cycle-threshold (1 STX per day)
u2) ;; sentinel-consensus (2 approvals required)(contract-call? .chronos-fortress provision
u1 ;; fortress-id
u10000000) ;; quantity (10 STX)(contract-call? .chronos-fortress commission-sentinel
u1 ;; fortress-id
'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7) ;; sentinel principal(contract-call? .chronos-fortress extract
u1 ;; fortress-id
u500000) ;; quantity (0.5 STX)Step 1: Initiate Mandate
(contract-call? .chronos-fortress initiate-extraction-mandate
u1 ;; fortress-id
u1 ;; mandate-id
u2000000 ;; quantity
'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7) ;; beneficiaryStep 2: Sentinels Endorse
(contract-call? .chronos-fortress endorse-extraction-mandate
u1 ;; fortress-id
u1) ;; mandate-idStep 3: Execute (After Required Endorsements)
(contract-call? .chronos-fortress execute-extraction-mandate
u1 ;; fortress-id
u1) ;; mandate-id(contract-call? .chronos-fortress adjust-temporal-barrier
u1 ;; fortress-id
u28800) ;; new-temporal-lock (approx 200 days)(contract-call? .chronos-fortress adjust-cycle-threshold
u1 ;; fortress-id
u2000000) ;; new-threshold (2 STX per day)(contract-call? .chronos-fortress toggle-fortress-operational-status
u1) ;; fortress-id(contract-call? .chronos-fortress get-fortress-details u1)(contract-call? .chronos-fortress get-fortress-reserves u1)(contract-call? .chronos-fortress is-fortress-accessible u1)(contract-call? .chronos-fortress get-remaining-cycle-threshold u1)(contract-call? .chronos-fortress get-architect-fortresses 'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7)| Code | Constant | Description |
|---|---|---|
| u100 | err-architect-only |
Only contract architect can perform this action |
| u101 | err-access-denied |
Caller not authorized for this fortress |
| u102 | err-fortress-sealed |
Fortress locked or inactive |
| u103 | err-insufficient-reserves |
Not enough balance in fortress |
| u104 | err-invalid-quantity |
Invalid amount specified |
| u105 | err-fortress-exists |
Maximum fortresses reached |
| u106 | err-fortress-not-found |
Fortress ID doesn't exist |
| u107 | err-extraction-limit |
Daily withdrawal limit exceeded |
| u108 | err-cooldown-active |
Cooldown period still active |
| u109 | err-invalid-temporal-lock |
Invalid timelock value |
| u110 | err-sentinel-exists |
Sentinel already commissioned |
| u111 | err-not-sentinel |
Caller is not an authorized sentinel |
| u112 | err-invalid-input |
Invalid input parameter |
- Temporal Barriers Are Immutable Once Passed: While you can extend a timelock, you cannot shorten it
- Cycle Limits Reset Daily: Approximately every 144 blocks (~24 hours)
- Sentinel Trust: Choose sentinels carefully - they have significant authority
- Emergency Lockdown: Contract architect can freeze all operations globally
- No Recovery Mechanism: Lost private keys mean lost access to fortresses
- Input Validation: All user inputs are validated before processing
- Use Multi-Sig for Large Amounts: Don't rely on single-key control for significant holdings
- Test with Small Amounts First: Verify timelock and limit configurations work as expected
- Document Sentinel List: Keep secure records of authorized sentinels
- Regular Security Audits: Review fortress configurations and sentinel permissions periodically
- Backup Configuration: Store fortress IDs and configuration parameters securely
Lock away savings with a time barrier to prevent impulsive spending, with daily withdrawal limits for controlled access.
Implement multi-signature requirements for company funds with department-level spending limits and executive oversight.
Create time-locked vaults with trusted family members as sentinels, ensuring smooth asset transfer.
Hold funds in neutral fortresses requiring multi-party approval for release.
Prevent emotional trading by time-locking investment capital with gradual extraction limits.
- Blockchain: Stacks (Bitcoin L2)
- Language: Clarity
- Token: STX (Stacks native token)
- Block Time: ~10 minutes (Bitcoin-anchored)
- Cycle Duration: ~144 blocks (~24 hours)
- Max Fortresses per Architect: 50
- Stacks CLI (
clarinet) - Stacks wallet
- Testnet STX tokens
clarinet deploy chronos-fortressclarinet test