Skip to content

About

Off-chain monorepo for Takt Protocol: TypeScript Soroban SDK (@takt-protocol/sdk), Go keeper daemon, and React dashboard.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Takt Protocol (takt-app)

CI License: MIT Node Version Go Version

Takt Protocol is a decentralized automation and keeper protocol built natively for Stellar Soroban smart contracts. It enables developers, DAOs, and protocols to schedule recurring function executions, liquidate undercollateralized loans, harvest yield, and automate contract state maintenance without relying on centralized servers.

This repository (takt-app) contains the off-chain architecture: the official TypeScript SDK, the Go keeper node daemon, and the web application interface.

The on-chain smart contracts (keeper-registry, bounty-vault, and job-engine) are maintained in takt-protocol/takt-contract.


Architecture Overview

                                  +-----------------------------+
                                  |    Web Dashboard (React)    |
                                  |         (apps/web)          |
                                  +--------------+--------------+
                                                 |
                                                 v
+-----------------------------+   +-----------------------------+
|      Go Keeper Node         |   |    TypeScript SDK (@takt)   |
|     (services/keeper)       |-->|       (packages/sdk)        |
+--------------+--------------+   +--------------+--------------+
               |                                 |
               +----------------+----------------+
                                |
                                v
               +---------------------------------+
               |     Stellar Soroban Network     |
               |  (keeper-registry, vault, engine|
               +---------------------------------+

Components

Directory Component Language / Framework Description
packages/sdk @takt-protocol/sdk TypeScript / @stellar/stellar-sdk Client library for constructing Soroban transactions, parsing error codes, converting stroops, and calculating bounty fee splits.
services/keeper takt-keeper Go 1.22 Lightweight daemon that polls the Soroban RPC for executable automation jobs, signs transactions, and maintains contract TTLs.
apps/web @takt-protocol/web React 18 / Vite / Tailwind CSS Interactive decentralized app for scheduling jobs, depositing vault collateral, staking as a keeper, and inspecting contracts.

Getting Started

Prerequisites

Installation

Clone the repository and install workspace dependencies:

git clone https://github.com/takt-protocol/takt-app.git
cd takt-app
npm install

Package Details

1. TypeScript SDK (packages/sdk)

Build and test the SDK package:

npm run build --workspace=@takt-protocol/sdk
npm run test --workspace=@takt-protocol/sdk

Usage Example

import { TaktClient, toStroops, calculateBountySplit } from "@takt-protocol/sdk";

const client = new TaktClient({
  network: "testnet",
});

// Build a create_job transaction descriptor
const call = client.buildCreateJobCall({
  owner: "GBKGRYZZEELD6POCG5E3MNMA3CT7OKF45CUX3FUDSJH6NJXAMTPXIYRS",
  targetContract: "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
  targetFn: "harvest_yield",
  intervalSeconds: 300,
  bountyPerRun: toStroops("5.0"),
  maxRuns: 100,
  initialFunding: toStroops("50.0"),
});

// Calculate 5% protocol fee split (500 bps)
const { keeperReward, protocolFee } = calculateBountySplit(toStroops("5.0"), 500);

2. Keeper Node Service (services/keeper)

The keeper node connects to the Soroban RPC network, monitors active jobs, and claims bounties.

Build the binary:

cd services/keeper
go build -o takt-keeper .

Configuration environment variables:

Variable Default Description
TAKT_RPC_URL https://soroban-testnet.stellar.org Soroban JSON-RPC endpoint
TAKT_KEEPER_SECRET (Required) Stellar secret key (S...) for keeper execution and signing
TAKT_POLL_INTERVAL_SECONDS 10 Interval between job state polling cycles
TAKT_API_PORT 8080 Port for the /health and metrics HTTP server
TAKT_KEEPER_REGISTRY_ID CDSBDXYELFFHM7XMG4D4BXEVETOHQDWPQOTQLPRHGTTVW7DTNODHIIZN KeeperRegistry contract ID
TAKT_BOUNTY_VAULT_ID CDDIJAZCXR7TWSTI4B2FSE7MCXFKH2JVOBT4WELSSJLZHV5XQ4PKHEGO BountyVault contract ID
TAKT_JOB_ENGINE_ID CC6ZSDYSGFAZDJ2FP2RT2ZV6NUZN4OFEWYNIS3CYOG2CBG7DIJDCWYOT JobEngine contract ID

3. Web Dashboard (apps/web)

Run the development server locally:

npm run dev --workspace=@takt-protocol/web

Or build for production deployment:

npm run build --workspace=@takt-protocol/web

Smart Contract Integration

Takt Protocol smart contracts run on Stellar Soroban:

  • Keeper Registry: Handles keeper staking, unbonding cooldowns, and slashes.
  • Bounty Vault: Holds collateral escrow for scheduled jobs and enforces 5% protocol fee splits.
  • Job Engine: Evaluates job execution intervals, verifies keeper eligibility, and invokes target contracts.

Deployed Stellar Testnet Contracts

Contract Address Explorer
keeper-registry CDSBDXYELFFHM7XMG4D4BXEVETOHQDWPQOTQLPRHGTTVW7DTNODHIIZN Stellar.Expert
bounty-vault CDDIJAZCXR7TWSTI4B2FSE7MCXFKH2JVOBT4WELSSJLZHV5XQ4PKHEGO Stellar.Expert
job-engine CC6ZSDYSGFAZDJ2FP2RT2ZV6NUZN4OFEWYNIS3CYOG2CBG7DIJDCWYOT Stellar.Expert
token (Wrapped Native XLM) CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC Stellar.Expert

Project Status & Current Limitations

  • Testnet Alpha (Unaudited): Currently operating on Stellar Testnet (Test SDF Network ; September 2015).
  • SDK & Web Transaction Signing: @takt-protocol/sdk constructs validated contract call descriptors (TaktContractCall) and queries Soroban RPC; full XDR transaction assembly/signing in the Go keeper (services/keeper) and browser wallet signing via @stellar/freighter-api in apps/web are active roadmap items tracked in open GitHub issues.

Security

Please review SECURITY.md for information regarding vulnerability reporting and our security policy.

Contributing

Contributions are welcomed! See CONTRIBUTING.md for local development setup and pull request guidelines.

Contributors

Contributors

License

This project is licensed under the MIT License.

About

Off-chain monorepo for Takt Protocol: TypeScript Soroban SDK (@takt-protocol/sdk), Go keeper daemon, and React dashboard.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages