Skip to content
This repository was archived by the owner on Apr 22, 2026. It is now read-only.
This repository was archived by the owner on Apr 22, 2026. It is now read-only.

stx_callContract fee parameter ignored — wallet overrides with own estimate #6404

Description

@Rapha-btc

Description

When calling request("stx_callContract", { ..., fee: 50000 }) via @stacks/connect, Leather still shows 0.01 STX (10,000 uSTX) in the confirmation dialog. The fee parameter appears to be ignored.

Why this matters

We run a blind batch auction settlement contract (JingSwap) that calls into Pyth oracle + Wormhole + settlement logic in a single transaction. At 0.01 STX the tx hangs for minutes and often fails to confirm within our 60-second oracle price freshness window — causing the entire settlement to fail.

We need to set the fee to 0.05 STX (50,000 uSTX) to land reliably.

Steps to reproduce

  1. Call request("stx_callContract", { contract: "SPV9K21TBFAK4KNRJXF5DFP8N7W46G4V9RCJDC22.sbtc-stx-jing-v2", functionName: "settle-with-refresh", functionArgs: [...], fee: 50000 })
  2. Leather confirmation dialog shows 0.01 STX fee
  3. Expected: 0.05 STX fee (or at minimum, use the passed fee as default in the fee selector)

Expected behavior

The wallet should respect the fee parameter from stx_callContract, or use it as the pre-selected default in the custom fee UI.

Environment

  • @stacks/connect (latest, wallet standard API)
  • Leather browser extension (latest)
  • TypeScript confirms fee: Integer (number | bigint | string) is a valid param on stx_callContract in @stacks/connect types

Workaround

Currently telling users to manually set custom fee to 0.05 STX in the wallet UI, but this is not viable for programmatic/agent callers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions