ОТКРЫТЫЙ СТАНДАРТ · v1.0 · ОПУБЛИКОВАН АВГ 2026

Basis Passport: ваш базис — ваш.

Каждый крипто-налоговый инструмент запирает вашу историю внутри. Мы свою публикуем. Basis Passport — подписанный, версионированный, переносимый файл с полным состоянием вашего базиса со ссылками на доказательства: открытые партии, отчуждения с полной родословной партий, события дохода, открытые решения. Экспортируйте его из любого сохранённого скана ClearBasis, бесплатно, навсегда — даже если вы не заплатите нам ни цента. Импортируйте куда угодно; эта страница — вся спецификация, и реализовать её может любой (включая наших конкурентов).

Формат

Один JSON-документ. Все количества и суммы в USD — десятичные строки (никогда не float: деньги во float — вот как умирает базис). Метки времени — ISO-8601 со смещениями.

{
 "format": "basis-passport",
 "version": "1.0",
 "generator": {"name": "...", "engine_version": "...", "ruleset_version": "..."},
 "generated_at": "2026-08-22T18:00:00+00:00",
 "open_lots": [
   {"wallet": "coinbase", "asset": "ETH", "qty": "1.5",
    "unit_basis_usd": "1505.00", "acquired_ts": "2023-01-10T12:00:00+00:00",
    "origin_tx": "file.csv:2", "conservative_default": false,
    "evidence": [{"source": "coinbase_csv", "ref": "row:2"}]}
 ],
 "disposals": [
   {"tx_id": "file.csv:9", "ts": "...", "wallet": "coinbase", "asset": "ETH",
    "qty": "1", "proceeds_usd": "1990.00", "kind": "sale",
    "allocations": [
      {"lot_id": "L0001", "qty": "1", "unit_basis_usd": "1505.00",
       "acquired_ts": "...", "conservative_default": false}],
    "evidence": [{"source": "coinbase_csv", "ref": "row:9"}]}
 ],
 "income": [
   {"tx_id": "...", "ts": "...", "wallet": "...", "asset": "ATOM",
    "qty": "5", "fmv_usd": "50.00", "kind": "staking"}
 ],
 "decisions_open": ["D00007"],
 "integrity": {"algo": "sha256", "digest": "…64 hex chars…"}
}

Печать целостности

integrity.digest — это SHA-256 от канонического JSON всех полей, кроме самого integrity: ключи отсортированы, разделители (",", ":"), без пробелов, UTF-8. Это печать от подделки, а не секрет: любой может проверить, что паспорт не был изменён в пути, — аккаунт ClearBasis не требуется.

canonical = json.dumps({k: v for k, v in passport.items()
                        if k != "integrity"},
                       sort_keys=True, separators=(",", ":"))
assert sha256(canonical.encode()).hexdigest() == passport["integrity"]["digest"]

Семантика, которая имеет значение

conservative_default: true помечает партию или аллокацию, чья стоимость была установлена в $0 из-за отсутствия записей — честный минимум, а не догадка. Импортёры обязаны сохранять этот флаг: он говорит следующему инструменту (и следующему бухгалтеру), какие цифры доказуемы, а какие — заглушки, ожидающие доказательств. Записи evidence указывают на исходные строки/документы, из которых пришла каждая цифра; импортёр, который их отбрасывает, выбрасывает ровно ту часть, что переживает проверку. decisions_open перечисляет неразрешённые вопросы классификации — паспорту разрешено нести честную неопределённость.

Версионирование и лицензия

Семантическое версионирование: добавление полей повышает минорную версию, ломающие изменения — мажорную. Текст этой спецификации и формат свободны для реализации — без лицензии, платы или разрешения; упоминание приветствуется, но не требуется. Исправления и предложения: hello@clearbasis.tax.

Получите свой паспорт — запустите бесплатное сканирование

Больше бесплатных инструментов: декодер писем IRS · Кто о вас сообщает · Кладбище бирж · Объяснитель транзакций · сам бесплатный скан