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 · Кто о вас сообщает · Кладбище бирж · Объяснитель транзакций · сам бесплатный скан