Skip to content

πŸ› [BUG] - Trident doesn't support Token2022 ATAsΒ #385

@IaroslavMazur

Description

@IaroslavMazur

Description

When attempting to create ATAs for a Token2022 mint, Trident fails with incorrect program id for instruction at GetAccountDataSize.

Observed logs (ATA β†’ Token-2022 β†’ GetAccountDataSize β†’ IncorrectProgramId):

Program ATokenGPvbd... invoke [2]
Program log: Create
Program TokenzQdBNbL... invoke [3]
Program log: Instruction: GetAccountDataSize
Program log: Error: IncorrectProgramId
Program TokenzQdBNbL... failed: incorrect program id for instruction
Program ATokenGPvbd... failed: incorrect program id for instruction

This happens when the ATA is created with associated_token::token_program = Token2022 (program id TokenzQdBNbL...). The ATokenGPvbd CPI appears to use classic SPL Token ix encoding against the Token2022 program id, which rejects it.

Note: creating a regular SPL ATA works as expected.

Why this matters

Many programs need to interoperate with both SPL and Token2022.
Fuzzing and local execution environments should accurately emulate both to catch real integration issues.

Reproduction steps

1. Before running a Fuzzing flow, create a Token2022 token mint via `...get_or_create_mint_account()`
2. Then, in the `set_accounts` `InstructionHook`, try to create a Token2022 ATA via `...get_or_create_token_account()`
3. Observe the aforementioned issue

OS

Mac

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions