Skip to content

Smart Contracts Overview

Akita runs on 65+ smart contracts deployed on the Algorand Virtual Machine (AVM). The contracts are written in Algorand TypeScript (puya-ts) and compiled through the AlgoKit toolchain.

The smart contracts and SDK live in the same monorepo:

akita-sc/
├── projects/
│ ├── akita-sc/ # Smart contracts (puya-ts)
│ │ └── smart_contracts/
│ │ ├── artifacts/ # Compiled ABI specs (ARC-56)
│ │ └── *.algo.ts # Contract source files
│ └── akita-sdk/ # @akta/sdk package
│ └── src/
│ ├── generated/ # Auto-generated contract clients
│ └── ... # SDK wrapper classes
ContractDescription
Abstracted Account (ARC-58)Programmable wallet with plugin-based permissions
Abstracted Account FactoryCreates new ARC-58 wallet instances
Infinity DAOGovernance that can execute any on-chain action through democratic voting
Escrow / Escrow FactoryGeneral-purpose asset escrow

Plugins extend what an ARC-58 wallet can do. Each is installed on a wallet and invoked through the rekey mechanism.

PluginDescription
PaySend ALGO/ASA payments
Opt-InOpt into new assets
ASA MintCreate new assets
StakingStake tokens
Dual StakeLock AKTA + BONES for governance voting power
RewardsClaim rewards
DAOGovernance participation
SocialSocial interactions
SubscriptionsRecurring payments
MarketplaceNFT listings
AuctionAuction bidding
RaffleRaffle entry
PollPoll voting
HyperSwapToken swaps
GateAccess control
NFDNFD operations
Revenue ManagerAutomated daily protocol revenue distribution
Pay Silo / Pay Silo FactoryRestricted pay plugin with address allow-list filtering
Staking PoolStaking pool operations
UpdateDAO contract upgrades
ContractDescription
Akita SocialSocial nanopayments — posts, reactions, x402 paywalls, meta
Social GraphFollow relationships
Social ImpactImpact scoring
Social ModerationContent moderation
ContractDescription
Marketplace (Listing Factory)Creates NFT listings
ListingIndividual NFT sale
Auction FactoryCreates auctions
AuctionIndividual auction
Raffle FactoryCreates raffles
RaffleIndividual raffle
Prize Box FactoryCreates prize box escrows
Prize BoxEscrow account for bundled asset sales
ContractDescription
StakingUniversal public staking utility (heartbeat, soft, hard, lock)
Staking Pool FactoryCreates staking pools (public utility for any token)
Staking PoolConfigurable long-duration reward distribution
HyperSwapZero-fee atomic swaps via merkle trees (public good)
SubscriptionsRecurring payments
RewardsReward distribution
Meta MerklesDecentralized royalties and verifiable metadata via merkle trees
ContractDescription
GateMain gate coordinator
Asset GateRequires holding specific ASAs
Akita Referrer GateRequires referral
Merkle Address GateAllowlist by merkle proof
Merkle Asset GateAsset holdings by merkle proof
NFD GateRequires specific NFD
NFD Root GateRequires NFD under a root
Poll GateRequires poll participation
Social Activity GateRequires social activity
Social Follower Count GateRequires follower count
Social Follower Index GateRequires following specific accounts
Social Impact GateRequires impact score
Social Moderator GateRequires moderator status
Staking Amount GateRequires staking amount
Staking Power GateRequires staking power
Subscription GateRequires active subscription
Subscription Streak GateRequires payment streak
ContractDescription
Poll FactoryCreates polls
PollIndividual poll
ContractDescription
Ed25519 Passkey LogicSigEd25519-based passkey signing
Secp256r1 Passkey LogicSigWebAuthn/Passkey signing

Contracts are deployed using AlgoKit and the deploy scripts in the repository. The SDK’s baked-in app IDs are updated after each deployment.

See App IDs for the current testnet and mainnet application IDs.