# Captab > Captab keeps a company's cap table (who owns what) in a NEAR smart contract governed by a DAO board. It covers founding, vesting grants, priced investor rounds, secondary sales, buybacks, exact payouts, and exit. NEAR testnet prototype; units are on-chain ledger records, not legal shares or tokens. ## What it does - Board: a Sputnik DAO council (2 of 3 on testnet) votes on every issuance, grant, round, deal, and payout. The company contract accepts ledger changes only from the DAO. - Rules in code: supply never exceeds authorized units; vesting follows monthly boundaries with any cliff; actions are replay-safe; no unit moves without the holder's signature. - Money moves with ownership: an investor pays with NEP-141 ft_transfer_call and the units are issued in the same receipt, or the payment is refunded. Payouts sum exactly to the budget and pay each holder once, retry-safe. - Privacy: holdings, grants, deals, payouts, and votes are public on chain. Names and emails stay off-chain behind NEP-413 wallet sign-in (council sees all; holders see their own). Documents are stored only as SHA-256 fingerprints. Amounts are public today. - Tokenization: built today is a restricted on-chain ownership ledger. Next is one restricted NEP-141 token per share class migrated from a hashed export; legal-share wrappers are future work. ## Live deployment (NEAR testnet, schema v2) - Company contract: captab-company-0d07df99e1bb0e44.testnet (https://testnet.nearblocks.io/address/captab-company-0d07df99e1bb0e44.testnet) - DAO board: captab-dao-0d07df99e1bb0e44.testnet (https://testnet.nearblocks.io/address/captab-dao-0d07df99e1bb0e44.testnet) - Settlement token (TESTUSD, 6 decimals): captab-token-0d07df99e1bb0e44.testnet (https://testnet.nearblocks.io/address/captab-token-0d07df99e1bb0e44.testnet) - Earlier MVP (schema v1): captab-company-101e85b169dd3522.testnet ## Evidence: live testnet transactions - Found: Charter amended to 12,000,000 authorized units, with the document's SHA-256. proposal https://testnet.nearblocks.io/txns/JBCCbvP4YtmZFAmhcAxHaiPXC5Jy3W2iP9oW9pxzdVSn - Hire: A contributor signs the grant terms on-chain, then claims 25,000 vested units at the cliff. accept terms https://testnet.nearblocks.io/txns/CE4y23r3fiRcM81FrCk9eDgpQadM6i8BWxKNHxyrMEba; claim https://testnet.nearblocks.io/txns/FyFBrAFfkQz1DLPTS9JQR5AsTVEf13Ecm5Q2FHZecmdf - Raise: Seed round: a wrong amount and a wrong payer are refunded; the investor's exact 10,000 TESTUSD issues 1,000,000 units in the same transaction. refund https://testnet.nearblocks.io/txns/38fDEUrTUDA2jeHMUvqrnv4JSqJs4XsYnwyhjFTrsYNE; payment https://testnet.nearblocks.io/txns/DGY7VapS6G9b8XCzaT8y3LnMpXbb1mUpRUVydX184Jmd - Liquidity: Secondary sale: the seller locks units, the buyer pays, held proceeds are delivered by a public retry. seller accepts https://testnet.nearblocks.io/txns/FKfosRrYSo94ao94dWxDhRhaqqbtstYmH8hyu6HEEqSd; buyer pays https://testnet.nearblocks.io/txns/9gBWG3pbnz2yfSNwrZ6vZDN4QnDRjdgT2sv62aFYCGE9; retry https://testnet.nearblocks.io/txns/EGuQtscaKtLKcaEb1qiByeQGdG7ajRxJDNcJFpmB5KY6 - Liquidity: Buyback: the holder accepts, the DAO pays through a proposal, 5,000 units are retired. accept https://testnet.nearblocks.io/txns/7JuZfuvezp9AwLAeWZMr9rf7PDRxgSDSdbDp5PfP1XTo; DAO pays https://testnet.nearblocks.io/txns/EtXZJ5Egqj8mZqKZb3NoWmBvrdsci6gK6sT7v6apj9oj - Exit: A board-set payout list of 2,000 TESTUSD, funded exactly once and paid to five holders. funding https://testnet.nearblocks.io/txns/HVefYMr38JD72oebKw7gCR7BFb8vaTx61ThZ8Y9GQqCf; first payment https://testnet.nearblocks.io/txns/9SZVkKe9RKhe8wMHF3j4v4c1djzucKBP1MREwCsg6cCb ## Tests - 74 Rust unit tests: supply invariants, vesting, replay safety, deals, payouts - 9 NEAR Sandbox tests: real Sputnik DAO votes, token payments, retries, close - 26 browser tests: every screen against fixture chain views ## How it is built - Rust company contract on near-sdk 5.17 (modules: ledger, grants, distributions, deals) - Pinned Sputnik DAO (commit 5434a59, WASM SHA-256 verified) - NEP-141 payments, NEP-366 sponsored (zero-NEAR) claims, NEP-413 sign-in, NEP-297 events - Next.js app with a SQLite receipt and payment worker ## Limits - Testnet only; fictional holders; TESTUSD is a demo token. - close_company is proven on a local NEAR Sandbox chain, not on the live company. - Signing used local test keys; third-party wallet extensions are not yet verified. - An IPO itself happens off-chain; Captab provides a verifiable export, pays proceeds, and closes the ledger. ## Pages - /company/captab-company-0d07df99e1bb0e44.testnet: live overview with stage tracker - /company/captab-company-0d07df99e1bb0e44.testnet/deals: rounds, issuance, secondary sales, buybacks - /api/companies/captab-company-0d07df99e1bb0e44.testnet/export?format=csv: cap table export with ledger revision and SHA-256 headers