v0.8.7 – 2026-02-10
Breaking
- None for this release
Changes
- Telemetry
- geoprobe: add LocationOffset type with Ed25519 signing/verification and UDP transport for geolocation verification measurements (#2898)
- Onchain programs
- feat(smartcontract): add payment_status, token_account fields and UpdatePaymentStatus instruction (#2880)
- fix(smartcontract): correctly ser/deser ops_manager_pk (#2887)
- Serviceability: add metro_route and route_aliveness boolean fields to Tenant for routing configuration
- Serviceability: add Tenant account type with immutable code-based PDA derivation, VRF ID, administrator management, and reference counting for safe deletion
- Serviceability: add TenantAddAdministrator and TenantRemoveAdministrator instructions for foundation-managed administrator lists
- Serviceability: extend UserUpdate instruction to support tenant_pk field updates with automatic reference count management on old and new tenants (backward compatible with old format)
- Serviceability: extend UserCloseAccount instruction to decrement tenant reference count when closing user with assigned tenant
- Serviceability: add reference count validation in DeleteMulticastGroup to prevent deletion when active publishers or subscribers exist
- Serviceability: fix multicast group closeaccount to use InvalidStatus error and remove redundant publisher/subscriber count check
- Serviceability: add tenant_allowlist field to AccessPass to restrict which tenants can use specific access passes (backward compatible with existing accounts)
- SDK
- Add metro_route and route_aliveness fields to CreateTenantCommand and UpdateTenantCommand
- Add CreateTenant, UpdateTenant (vrf_id only), DeleteTenant, GetTenant, and ListTenant commands with support for code or pubkey lookup
- Add AddAdministratorTenant and RemoveAdministratorTenant commands for tenant administrator management
- UpdateUserCommand extended with tenant_pk field and automatic tenant account resolution for reference counting
- SetAccessPassCommand extended with tenant field to specify allowed tenant for access pass
- TypeScript SDK updated with tenantAllowlist field in AccessPass interface and deserialization
- CLI
- Add --metro-route and --route-aliveness flags to tenant create and update commands
- Add tenant subcommands (create, update, delete, get, list, add-administrator, remove-administrator) to doublezero and doublezero-admin CLIs
- Add filtering options and desired_status & metrics_publisher_pk field to device and link list commands
- Added activation check for existing users before subscribing to new groups (#2782)
- access-pass set: add --tenant argument to specify tenant code for access pass restriction (converts to tenant PDA onchain)
- tenant list: improve output formatting with table support and JSON serialization options (--json, --json-compact)
- default tenant support added to config
- SDK
- Add read-only Go SDK (
revdist) for the revenue distribution Solana program, with typed deserialization of all onchain accounts and Rust-generated fixture tests for cross-language compatibility - Add
revdist-clitool for inspecting onchain revenue distribution state - Add Python and TypeScript SDKs for serviceability, telemetry, and revdist programs with typed deserialization, RPC clients, PDA derivation, enum string types, and cross-language fixture tests
- Add shared
borsh-incrementallibrary (Go, Python, TypeScript) for cursor-based Borsh deserialization with backward-compatible trailing field defaults - Add npm and PyPI publish workflows for serviceability and telemetry SDKs
- DeleteUserCommand updated to wait for activator to process multicast user unsubscribe before deleting the user
- Add read-only Go SDK (
- Device controller
- Record successful GetConfig gRPC calls to ClickHouse for device telemetry tracking
- Multi-tenancy vrf support added
- Onchain programs
- Enforce that
CloseAccessPassonly closes AccessPass accounts whenconnection_count == 0, preventing closure while active connections are present.
- Enforce that
- Monitor
- Add sol-balance watcher to track SOL balances for configured accounts and export Prometheus metrics for alerting
- E2E tests
- e2e: add multi-tenancy VRF isolation test (#2891)
- Add backward compatibility test that validates older CLI versions against the current onchain program by cloning live state from testnet and mainnet-beta