Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
d7ad4a3
wallet: make digital assets first-class holdings
blackmore-technology-group Oct 3, 2026
7a18c76
dco: make economic issuance optional after asset registration
blackmore-technology-group Oct 3, 2026
d8eb59b
tests: enforce asset-first optional market orientation
blackmore-technology-group Oct 3, 2026
ee3b10d
wallet: add asset-first upload and DCO ingest
blackmore-technology-group Oct 3, 2026
81135eb
wallet: add native cross-platform desktop application
blackmore-technology-group Oct 3, 2026
4aa3a07
wallet: add cross-platform desktop packager
blackmore-technology-group Oct 3, 2026
17159ad
ci: build ENTITY Wallet for Windows macOS and Linux
blackmore-technology-group Oct 3, 2026
9fc073b
tests: qualify wallet asset ingest without automatic licensing
blackmore-technology-group Oct 3, 2026
3aa1958
docs: restore asset-first DCO production model
blackmore-technology-group Oct 3, 2026
43898c6
docs: document native wallet and digital asset upload
blackmore-technology-group Oct 3, 2026
0ffe2eb
docs: classify BIRFR as an ingested robotics asset first
blackmore-technology-group Oct 3, 2026
8b7fb20
docs: restore robotics DCOs to asset portfolio orientation
blackmore-technology-group Oct 3, 2026
faff7dd
wallet: initialize universal fabric asset store
blackmore-technology-group Oct 3, 2026
1d847cc
wallet: bind canonical asset store
blackmore-technology-group Oct 3, 2026
a2badfc
lineage: add signed v3.4.3 release-origin attestation
blackmore-technology-group Oct 3, 2026
513fc61
lineage: publish v3.4.3 origin attestation checksum
blackmore-technology-group Oct 3, 2026
c0fdf61
fabric: preserve asset type when registering DCOs
blackmore-technology-group Oct 3, 2026
32cfe52
ingest: carry DCOs through canonical provenance and passport pipeline
blackmore-technology-group Oct 3, 2026
a008261
sdk: route Digital Commodity ingest through canonical package pipeline
blackmore-technology-group Oct 3, 2026
9f2e3d3
wallet: resolve canonical protocol and asset lineage separately
blackmore-technology-group Oct 3, 2026
c421a3a
wallet: expose canonical origin, domain, and asset provenance lineage
blackmore-technology-group Oct 3, 2026
d29da5f
wallet: use canonical v3.4.3 origin BTDU passport ingest
blackmore-technology-group Oct 3, 2026
4d3197c
wallet: expose canonical domain lineage and package-based ingest
blackmore-technology-group Oct 3, 2026
200ce34
wallet: package canonical origin passport BTDU and ADAM runtime
blackmore-technology-group Oct 3, 2026
8cce5c8
tests: enforce canonical asset ingest and DCO type preservation
blackmore-technology-group Oct 3, 2026
f356bf2
tests: lock Shawn BTG ENTITY Robotics wallet lineage
blackmore-technology-group Oct 3, 2026
b50f7a4
wallet: close lineage DB handles and tolerate partial state
blackmore-technology-group Oct 3, 2026
d2cb3ce
wallet: reject duplicate DCOs before BTDU mutation
blackmore-technology-group Oct 3, 2026
ec5899b
tests: use source-accurate BTDU hash in wallet fixture
blackmore-technology-group Oct 3, 2026
ff38a5c
wallet: represent composed profiles without false lineage chaining
blackmore-technology-group Oct 3, 2026
3671bdb
tests: keep Robotics primary and AI Manufacturing as co-profiles
blackmore-technology-group Oct 3, 2026
52bdb87
docs: lock ENTITY lineage wallet DCO and economy architecture
blackmore-technology-group Oct 3, 2026
571d7b3
btdu: keep canonical BTG universe rooted at Shawn
blackmore-technology-group Oct 3, 2026
2ddea55
economy: add signed instrument withdrawal lifecycle
blackmore-technology-group Oct 3, 2026
8ec202f
market: add universal multi-issuer instrument and listing registry
blackmore-technology-group Oct 3, 2026
b9745c7
tests: qualify universal multi-issuer market and listing package
blackmore-technology-group Oct 3, 2026
798a893
fabric: support universal DCO asset categories
blackmore-technology-group Oct 3, 2026
7e9a062
tests: use supported creative asset object type
blackmore-technology-group Oct 3, 2026
d3ec00e
wallet: exclude withdrawn instruments from active positions
blackmore-technology-group Oct 3, 2026
f247989
wallet: exclude withdrawn instruments from active positions
blackmore-technology-group Oct 3, 2026
fd319f4
wallet: package universal ENTITY market registry
blackmore-technology-group Oct 3, 2026
b0eb7ff
market: preserve canonical EEP enum tokens
blackmore-technology-group Oct 3, 2026
b72fe54
dco factory: preserve and withdraw superseded issuance campaigns
blackmore-technology-group Oct 3, 2026
acaa497
market: fix canonical instrument package persistence
blackmore-technology-group Oct 3, 2026
912808d
market: define universal multi-issuer instrument and listing standard
blackmore-technology-group Oct 3, 2026
8ae1cb5
market: expose issuer instruments and listing resolution
blackmore-technology-group Oct 3, 2026
5d1129b
market: require instrument actions to fit Rights Passport
blackmore-technology-group Oct 3, 2026
7cce336
wallet: add universal instrument issuance listing disclosure and export
blackmore-technology-group Oct 3, 2026
9c89eb3
market: fix canonical instrument package insert arity
blackmore-technology-group Oct 3, 2026
ed31f82
tests: bind explicit rights for universal instrument issuance
blackmore-technology-group Oct 3, 2026
b7750c5
market: add settlement-aware Data Value Discovery analytics
blackmore-technology-group Oct 3, 2026
8181182
market: keep intelligence rollups currency-safe and JSON clean
blackmore-technology-group Oct 3, 2026
8af4806
market: fix economic intelligence registry reads
blackmore-technology-group Oct 3, 2026
c9f085e
market intelligence: preserve currency and settled-demand boundaries
blackmore-technology-group Oct 3, 2026
33bdcf7
tests: use supported creative DCO object type
blackmore-technology-group Oct 3, 2026
2830f6b
tests: qualify settlement-aware Data Value Discovery analytics
blackmore-technology-group Oct 3, 2026
99575d5
tests: align market intelligence royalty basis with EOPP
blackmore-technology-group Oct 3, 2026
cecfa1b
market: align royalty analytics to EOPP obligation basis
blackmore-technology-group Oct 3, 2026
5fbe8f0
market intelligence: initialize rights-class buyer aggregate
blackmore-technology-group Oct 3, 2026
09e59ed
wallet: connect economic intelligence backend
blackmore-technology-group Oct 3, 2026
7ba5a3a
wallet: add Data Value Discovery surfaces
blackmore-technology-group Oct 3, 2026
ebde906
wallet: show ticker metrics and economy rollups
blackmore-technology-group Oct 3, 2026
b1a2fe3
wallet: align lineage display with sibling profile model
blackmore-technology-group Oct 3, 2026
1638278
docs: define Data Value Discovery and market-integrity boundaries
blackmore-technology-group Oct 3, 2026
77fd455
dco factory: fix issuance withdrawal evidence validation
blackmore-technology-group Oct 3, 2026
ae8e2ae
tests: qualify append-only instrument and issuance withdrawal
blackmore-technology-group Oct 3, 2026
5d81e21
economy: keep EEP 3.0 wire protocol unchanged
blackmore-technology-group Oct 3, 2026
1f77b88
tests: keep universal market qualification EEP-3 compatible
blackmore-technology-group Oct 3, 2026
43564f0
conformance: reseal EEP manifest for exchange protocol
blackmore-technology-group Oct 3, 2026
9817599
wallet ingest: allow explicit same-content DCO version corrections
blackmore-technology-group Oct 3, 2026
7635aeb
wallet: show latest DCO versions while preserving historical provenance
blackmore-technology-group Oct 3, 2026
566be20
economy: add fail-closed unused prelaunch withdrawal migration
blackmore-technology-group Oct 3, 2026
fb87798
conformance: restore EEP seal after exchange baseline restoration
blackmore-technology-group Oct 3, 2026
9a9cb50
sdk: allow explicit sibling profiles and controller rights in package…
blackmore-technology-group Oct 3, 2026
3c28bef
economy: add audited prelaunch withdrawal CLI
blackmore-technology-group Oct 3, 2026
697eaa8
wallet ingest: expose explicit associated profiles and controller rights
blackmore-technology-group Oct 3, 2026
4828c68
tests: prove prelaunch retirement is fail-closed and history-preserving
blackmore-technology-group Oct 3, 2026
9631f41
economy: resolve prelaunch reserves through signed participation policy
blackmore-technology-group Oct 3, 2026
7b9a4a6
market: define Data Value Discovery and integrity boundaries
blackmore-technology-group Oct 3, 2026
91c1f12
docs: align universal market intelligence and robotics prelaunch cleanup
blackmore-technology-group Oct 3, 2026
2eef875
tests: keep prelaunch withdrawal outside sealed EEP
blackmore-technology-group Oct 3, 2026
4f108e9
market: fix economic intelligence registry transactions
blackmore-technology-group Oct 3, 2026
46f65e3
tests: qualify settled-trade Data Value Discovery and integrity flags
blackmore-technology-group Oct 3, 2026
27078a2
economy: add signed participation policy withdrawal lifecycle
blackmore-technology-group Oct 3, 2026
89e69b0
economy: preserve trade-time policy history across withdrawal
blackmore-technology-group Oct 3, 2026
a882146
economy: preserve signed policy withdrawal history in prelaunch cleanup
blackmore-technology-group Oct 3, 2026
dbb17f9
tests: require signed participation withdrawal history
blackmore-technology-group Oct 3, 2026
588b10a
tests: qualify time-bounded participation withdrawal
blackmore-technology-group Oct 3, 2026
d821c32
wallet: add settlement-aware Data Value Discovery dashboard
blackmore-technology-group Oct 3, 2026
9ae70b4
economy: migrate legacy DCO factory withdrawal table safely
blackmore-technology-group Oct 3, 2026
224030c
robotics: recognize algorithms as first-class DCO assets
blackmore-technology-group Oct 3, 2026
9e742f9
wallet: allow robotics algorithm ingest
blackmore-technology-group Oct 3, 2026
e4a4333
wallet: keep registration-only contribution records out of market pos…
blackmore-technology-group Oct 3, 2026
6e54427
economy: add signed venue retirement and instrument withdrawal lifecycle
blackmore-technology-group Oct 3, 2026
e217911
tests: qualify signed instrument withdrawal and venue retirement
blackmore-technology-group Oct 3, 2026
059d327
economy: preserve venue authority boundary in retirement status
blackmore-technology-group Oct 3, 2026
799f4c6
economy: expose lifecycle invariants in status records
blackmore-technology-group Oct 3, 2026
da811ff
wallet: collect dynamic runtime imports in desktop build
blackmore-technology-group Oct 3, 2026
0ccab90
wallet: add packaged self-test and remove duplicate intelligence wiring
blackmore-technology-group Oct 3, 2026
a7f583a
wallet: keep retired DCO experiments out of current asset holdings
blackmore-technology-group Oct 3, 2026
7f02c04
tests: hide retired DCO experiments from current wallet assets
blackmore-technology-group Oct 3, 2026
2c56b92
ci: build Qt ENTITY wallet across desktop platforms
blackmore-technology-group Oct 3, 2026
41aa6b9
wallet: rebuild as ENTITY data economy terminal
blackmore-technology-group Oct 3, 2026
836962b
wallet: require signed asset disclosures for market listings
blackmore-technology-group Oct 3, 2026
be42d60
wallet: add sovereign first-run identity and lineage onboarding
blackmore-technology-group Oct 3, 2026
bc603bb
wallet: drive instrument rights from Rights Passports
blackmore-technology-group Oct 3, 2026
212ee56
wallet: add software engineering domain and canonical instrument rights
blackmore-technology-group Oct 3, 2026
3dd892c
wallet: publish current docs and iOS client
blackmore-technology-group Oct 4, 2026
dedd47e
ci: build ENTITY Wallet on Windows Linux macOS and iOS
blackmore-technology-group Oct 4, 2026
87cc4d9
ci: refresh EEP seal and fix iOS wallet build
blackmore-technology-group Oct 4, 2026
b16ee38
evidence: refresh market recovery parent seal
blackmore-technology-group Oct 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions .github/workflows/entity-wallet-desktop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: ENTITY Wallet Cross-Platform Builds

on:
workflow_dispatch:
push:
branches:
- main
- wallet-native-asset-ingest-20261003
paths:
- "src/31_Profiles/exchange_protocol.py"
- "src/33_Economic_Participation/**"
- "src/38_Global_Passports/**"
- "src/39_Implementation_Packages/**"
- "src/42_ENTITY_Wallet/**"
- "src/43_DCO_Factory/**"
- "src/45_ENTITY_Market/**"
- "sdk/global_passport_sdk/**"
- "protocol/profiles/**"
- "protocol/v3/ENTITY_ECONOMIC_MARKET_PROTOCOL.md"
- "tools/entity_wallet_desktop.py"
- "tools/build_entity_wallet_desktop.py"
- "ios/ENTITYWalletIOS/**"
- ".github/workflows/entity-wallet-desktop.yml"
pull_request:
paths:
- "src/31_Profiles/exchange_protocol.py"
- "src/33_Economic_Participation/**"
- "src/38_Global_Passports/**"
- "src/39_Implementation_Packages/**"
- "src/42_ENTITY_Wallet/**"
- "src/43_DCO_Factory/**"
- "src/45_ENTITY_Market/**"
- "sdk/global_passport_sdk/**"
- "protocol/profiles/**"
- "tools/entity_wallet_desktop.py"
- "tools/build_entity_wallet_desktop.py"
- "ios/ENTITYWalletIOS/**"
- ".github/workflows/entity-wallet-desktop.yml"

permissions:
contents: read

jobs:
desktop:
name: Desktop · ${{ matrix.label }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
label: Windows
artifact: ENTITY-Wallet-Windows
- os: ubuntu-latest
label: Linux
artifact: ENTITY-Wallet-Linux
- os: macos-latest
label: macOS
artifact: ENTITY-Wallet-macOS
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: python -m pip install --upgrade pip
- run: python -m pip install pytest pyinstaller cryptography PySide6
- name: Wallet qualification
run: >-
python -m pytest
tests/test_wallet_onboarding.py
tests/test_entity_market_registry.py
tests/test_economic_intelligence.py
tests/test_exchange_lifecycle.py
tests/test_v3_economic_participation.py
tests/test_prelaunch_economic_withdrawal.py
tests/test_entity_wallet.py
tests/test_wallet_asset_ingest.py
tests/test_wallet_lineage_resolution.py
tests/test_v3_protocol_origin_lineage.py
tests/test_v3_global_passports.py
-q
- name: Build desktop wallet
run: python tools/build_entity_wallet_desktop.py
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
if-no-files-found: error
path: |
dist/ENTITY-Wallet/**
dist/ENTITY-Wallet.app/**
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed

ios-simulator:
name: iOS · Simulator client
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install XcodeGen
run: brew install xcodegen
- name: Generate Xcode project
working-directory: ios/ENTITYWalletIOS
run: xcodegen generate
- name: Build iOS Simulator app
run: |
xcodebuild \
-project ios/ENTITYWalletIOS/ENTITYWalletIOS.xcodeproj \
-scheme ENTITYWalletIOS \
-configuration Release \
-sdk iphonesimulator \
-derivedDataPath build/ios \
CODE_SIGNING_ALLOWED=NO \
build
- name: Package iOS Simulator app
run: |
mkdir -p dist
APP="build/ios/Build/Products/Release-iphonesimulator/ENTITYWalletIOS.app"
test -d "$APP"
ditto -c -k --sequesterRsrc --keepParent "$APP" dist/ENTITY-Wallet-iOS-Simulator.zip
- uses: actions/upload-artifact@v4
with:
name: ENTITY-Wallet-iOS-Simulator
if-no-files-found: error
path: dist/ENTITY-Wallet-iOS-Simulator.zip
29 changes: 29 additions & 0 deletions ENTITY_CURRENT_RELEASE_ORIGIN.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"body": {
"asset_provenance_is_separate_from_protocol_origin": true,
"automatic_protocol_royalty_bps": 0,
"created_at_ms": 1791032742763,
"economic_participation_requires_explicit_terms": true,
"historical_release_is_immutable_target": true,
"origin_lineage_id": "entity-origin:shawn-btg-entity@1.0",
"origin_lineage_sha256": "9d3bdc0ef2e6a27de5368541f6bc014fdec93b2c7af9770d163c804521b9efff",
"protocol_entity_id": "ent2-m3nofxtv3zwldhwuonw3h67hqjh2zambrhj4kaaulncpt4amkcua",
"release_commit_sha1": "528b70aabd05b1e930b77e4933f157731e47274f",
"release_ref": "entity-release:v3.4.3",
"release_tag": "v3.4.3",
"release_tree_sha1": "f13e42f515dcc4cd985e9b832e0ecfec416ce423",
"root_originator_entity_id": "ent2-6eoiiztjyhmyh2tbr5psmofcduwvjledubhoiqwo6mjfoqkn6ica",
"schema": "entity-protocol-release-origin-v1",
"steward_entity_id": "ent2-kkov66eoh23h3zgr4pe4njsbkayn2kxad6vfyirqvuqrty52clpa"
},
"body_sha256": "150c4e02671b2175a45df921fcf6761119a6c587001c9b8fa039dd01ffe0e494",
"signature": {
"entity_id": "ent2-m3nofxtv3zwldhwuonw3h67hqjh2zambrhj4kaaulncpt4amkcua",
"key_id": "sig-a31ded371cfb5019",
"payload_sha256": "150c4e02671b2175a45df921fcf6761119a6c587001c9b8fa039dd01ffe0e494",
"signature": "cWSubQ8c3pJiZQArSlffOAZMlMfSkn6lb3lNDpWSv2Ol05zDY9Z0do7FoLu6GoBwf1xOZDIV6ekh6IHAhInsBg",
"signature_schema": "entity-signature-record-v2",
"signed_at_ms": 1791032742806,
"suite": "ENTITY-SIG-ED25519-v1"
}
}
1 change: 1 addition & 0 deletions ENTITY_CURRENT_RELEASE_ORIGIN.json.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
aa4d7b32778bda263c097a8a46a3f654070b0ae48f3142664bfe485e6ce04c17 ENTITY_CURRENT_RELEASE_ORIGIN.json
212 changes: 106 additions & 106 deletions ENTITY_V3_EEP_CONFORMANCE_MANIFEST.json
Original file line number Diff line number Diff line change
@@ -1,106 +1,106 @@
{
"based_on_local_commit": "68179328a2b87408af93a5caa1c64312e70247be",
"claim_boundaries": [
"development conformance evidence is not a released protocol qualification",
"signature cryptography remains governed by the ENTITY identity layer",
"stateful market authorization and signature verification are tested by executable campaigns in addition to schema vectors",
"external independent EEP clean-room interoperability remains pending"
],
"conformance": {
"complete_active_tree": {
"passed": 90,
"total": 90
},
"json_schema_draft": "2020-12",
"record_definitions": 13,
"reference_mirror_convergence_tests": {
"passed": 16,
"total": 16
},
"schema_and_vector_tests": {
"passed": 4,
"total": 4
},
"signed_wire_schemas": 11,
"validator_chain": [
"JSON_SCHEMA_DRAFT_2020_12",
"ENTITY_CANONICAL_SIGNED_WIRE_RULES"
],
"vectors_expected_invalid": 14,
"vectors_expected_valid": 13,
"vectors_total": 27
},
"created_date": "2026-09-23",
"files": [
{
"path": "src/31_Profiles/exchange_protocol.py",
"sha256": "53761f15c7ae58726ce8cd01a28164d3a14ae29aac38a89859c408fc3c76b14a"
},
{
"path": "src/32_V3_Hardening/exchange_protocol.py",
"sha256": "767e2a83a7ab5a71256c4f9535b75d91e7d33c97aaa7b7cefc617ffa7874bf41"
},
{
"path": "protocol/v3/ENTITY_EXCHANGE_PROTOCOL_DRAFT.md",
"sha256": "1733dcf2055a4353abd611344582438a04cbae08b358451290885697c665dbd7"
},
{
"path": "protocol/v3/ENTITY_EXCHANGE_PROTOCOL.schema.json",
"sha256": "146932a4598797e295ad7d86ac3ee3ee80261fc1675b1bfb4724df0e05fa3218"
},
{
"path": "protocol/v3/eep_vectors/VECTOR_MANIFEST.json",
"sha256": "08fe381309dc122e0efb8544490e23287e53b3d37cea868b5cd359cc736c4b53"
},
{
"path": "protocol/v3/eep_vectors/SHA256SUMS.txt",
"sha256": "68989a573a74046e55d6b2713f9fdee8304d8b709d22dd5ccd17f32791d927b7"
},
{
"path": "protocol/v3/eep_vectors/README.md",
"sha256": "ff734344b2be9e523109c677b4aa746b19eb7e505bd4ba01be8f11ef44ca030e"
},
{
"path": "tests/test_v3_eep_conformance.py",
"sha256": "d832cc585662a8722bb3ac95763c6f487285983818794a314826792a6c11390f"
},
{
"path": "tests/test_v3_exchange_convergence.py",
"sha256": "079767d481e2dd09582bbf8b5e97a0ea4334d3fe06acbcc32e99c03caddf29fd"
},
{
"path": "tests/test_v3_hardening_exchange.py",
"sha256": "f7a7ecf9fa7d748d3953eb68c426945273c42fcf3a952048f21f0def773ecd17"
},
{
"path": "requirements.txt",
"sha256": "ba36584e5af40e46435d63315f94fb6d600e3d18af53d123e321763f98f22668"
},
{
"path": "tools/run_v3_regression.ps1",
"sha256": "0bc9f4acc6d1fb8b6b274c305bd89750b78e68ad5568887ee46a577385d5f5f9"
}
],
"invariants": [
"signed wire values are not silently normalized after signature verification",
"JSON integer fields reject numeric strings and booleans",
"enumerated tokens and usage actions are canonical uppercase",
"SHA-256 values are canonical lowercase hexadecimal",
"rights action lists are non-empty, unique, and lexicographically sorted",
"revenue allocations do not exceed 10000 basis points",
"RFQ and quote expiry follows signed creation time",
"entitlement expiry semantics converge across reference and qualification mirror",
"executed but unsettled sell quantities remain reserved until clearing completes",
"trade revenue allocation is bound at execution and is not changed by later rule-set mutation",
"sell admission rechecks unreserved entitlement atomically under concurrent submissions",
"concurrent matchers cannot create duplicate trades from the same executable orders",
"concurrent settlement attempts commit at most one entitlement transfer",
"revenue-event persistence is atomic with hardening-profile settlement state",
"RFQ executions preserve a deterministic venue-signed source binding to signed RFQ, quote and acceptance records"
],
"schema": "entity-v3-eep-conformance-manifest-v1",
"snapshot_sha256": "65224aa97bde5456c4079097a37284ce6e023f3e1c635f25456683c74e3df91a",
"status": "BTG_INTERNAL_QUALIFIED_RELEASE_COMPONENT",
"version": "3.0.0",
"working_tree_snapshot": false
}
{
"based_on_local_commit": "dedd47eb032b5a95d88f092cf3346298ca3011eb",
"claim_boundaries": [
"development conformance evidence is not a released protocol qualification",
"signature cryptography remains governed by the ENTITY identity layer",
"stateful market authorization and signature verification are tested by executable campaigns in addition to schema vectors",
"external independent EEP clean-room interoperability remains pending"
],
"conformance": {
"complete_active_tree": {
"passed": 90,
"total": 90
},
"json_schema_draft": "2020-12",
"record_definitions": 13,
"reference_mirror_convergence_tests": {
"passed": 16,
"total": 16
},
"schema_and_vector_tests": {
"passed": 4,
"total": 4
},
"signed_wire_schemas": 11,
"validator_chain": [
"JSON_SCHEMA_DRAFT_2020_12",
"ENTITY_CANONICAL_SIGNED_WIRE_RULES"
],
"vectors_expected_invalid": 14,
"vectors_expected_valid": 13,
"vectors_total": 27
},
"created_date": "2026-09-23",
"files": [
{
"path": "src/31_Profiles/exchange_protocol.py",
"sha256": "fa3c040b31d9cfd7ab37daddeb2c904f52f03a4fc110d77bdd8067fa1b9d547b"
},
{
"path": "src/32_V3_Hardening/exchange_protocol.py",
"sha256": "767e2a83a7ab5a71256c4f9535b75d91e7d33c97aaa7b7cefc617ffa7874bf41"
},
{
"path": "protocol/v3/ENTITY_EXCHANGE_PROTOCOL_DRAFT.md",
"sha256": "1733dcf2055a4353abd611344582438a04cbae08b358451290885697c665dbd7"
},
{
"path": "protocol/v3/ENTITY_EXCHANGE_PROTOCOL.schema.json",
"sha256": "146932a4598797e295ad7d86ac3ee3ee80261fc1675b1bfb4724df0e05fa3218"
},
{
"path": "protocol/v3/eep_vectors/VECTOR_MANIFEST.json",
"sha256": "08fe381309dc122e0efb8544490e23287e53b3d37cea868b5cd359cc736c4b53"
},
{
"path": "protocol/v3/eep_vectors/SHA256SUMS.txt",
"sha256": "68989a573a74046e55d6b2713f9fdee8304d8b709d22dd5ccd17f32791d927b7"
},
{
"path": "protocol/v3/eep_vectors/README.md",
"sha256": "ff734344b2be9e523109c677b4aa746b19eb7e505bd4ba01be8f11ef44ca030e"
},
{
"path": "tests/test_v3_eep_conformance.py",
"sha256": "d832cc585662a8722bb3ac95763c6f487285983818794a314826792a6c11390f"
},
{
"path": "tests/test_v3_exchange_convergence.py",
"sha256": "079767d481e2dd09582bbf8b5e97a0ea4334d3fe06acbcc32e99c03caddf29fd"
},
{
"path": "tests/test_v3_hardening_exchange.py",
"sha256": "f7a7ecf9fa7d748d3953eb68c426945273c42fcf3a952048f21f0def773ecd17"
},
{
"path": "requirements.txt",
"sha256": "ba36584e5af40e46435d63315f94fb6d600e3d18af53d123e321763f98f22668"
},
{
"path": "tools/run_v3_regression.ps1",
"sha256": "0bc9f4acc6d1fb8b6b274c305bd89750b78e68ad5568887ee46a577385d5f5f9"
}
],
"invariants": [
"signed wire values are not silently normalized after signature verification",
"JSON integer fields reject numeric strings and booleans",
"enumerated tokens and usage actions are canonical uppercase",
"SHA-256 values are canonical lowercase hexadecimal",
"rights action lists are non-empty, unique, and lexicographically sorted",
"revenue allocations do not exceed 10000 basis points",
"RFQ and quote expiry follows signed creation time",
"entitlement expiry semantics converge across reference and qualification mirror",
"executed but unsettled sell quantities remain reserved until clearing completes",
"trade revenue allocation is bound at execution and is not changed by later rule-set mutation",
"sell admission rechecks unreserved entitlement atomically under concurrent submissions",
"concurrent matchers cannot create duplicate trades from the same executable orders",
"concurrent settlement attempts commit at most one entitlement transfer",
"revenue-event persistence is atomic with hardening-profile settlement state",
"RFQ executions preserve a deterministic venue-signed source binding to signed RFQ, quote and acceptance records"
],
"schema": "entity-v3-eep-conformance-manifest-v1",
"snapshot_sha256": "5d9ad374f4bfdce3181166a057d18b8bcca0ad966a1518f461967ad2a23ef18f",
"status": "BTG_INTERNAL_QUALIFIED_RELEASE_COMPONENT",
"version": "3.0.0",
"working_tree_snapshot": false
}
Loading
Loading