Skip to content

Pointer addresses in Conway era still has tx_out.stake_address_id #2051

@dmitrystas

Description

@dmitrystas

OS
Ubuntu 24.04

Versions
cardano-db-sync 13.6.0.5 - linux-x86_64 - ghc-8.10
git revision cb61094
PostgreSQL 17

Build/Install Method
Static binaries

Run method
Systemd

Additional context
Mainnet

Problem Report
Starting from the Conway era, Pointer addresses are no longer a distinct address type and are effectively treated as Enterprise addresses. As such, they should not have any association with a stake key.

However, in db-sync we can observe that for outputs created in the Conway era, tx_out records corresponding to Pointer-type addresses still have the stake_address_id column populated. This implies a stake key association that should not exist anymore under the current ledger rules.

This behavior is inconsistent with the expected semantics of addresses in the Conway era and may lead to incorrect assumptions when querying stake relationships.

Expected behavior
For transaction outputs created in the Conway era:

  • Addresses that were previously of type Pointer should be treated as Enterprise addresses

  • tx_out.stake_address_id should be NULL for such outputs

Actual behavior
For Conway-era transaction outputs:

  • tx_out.stake_address_id is still populated for addresses that are (or were) Pointer addresses

Steps to reproduce
Run the following query:

SELECT *
FROM tx_out
WHERE address = 'addr1g8alec26en95yzvzwpxfukglsw4nx9wrx99p3m8k2drwppvzj2enszcqyu9ps2'
ORDER BY id DESC
LIMIT 1;

The query returns latest tx_out row created in the Conway era where stake_address_id is set for Pointer-type addresses.

Impact
This can:

Misrepresent stake key relationships

Affect explorers, analytics, and accounting logic that rely on stake_address_id

Cause confusion when interpreting address semantics post-Conway

Additional notes
From a ledger perspective, Pointer addresses should no longer exist as a separate concept in the Conway era, so any remaining stake linkage appears to be a DB-Sync inconsistency rather than expected behavior.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions