Skip to content

useCallContract

Hook for calling a Sophia contract function as an on-chain transaction.

Import

typescript
import { useCallContract } from '@growae/reactive-react'

Usage

tsx
import { useCallContract } from '@growae/reactive-react'

function TransferTokens() {
  const { mutate: call, isPending, isSuccess } = useCallContract()

  return (
    <button
      onClick={() =>
        call({
          address: 'ct_token...',
          aci: tokenAci,
          fn: 'transfer',
          args: ['ak_recipient...', 1000n],
        })
      }
      disabled={isPending}
    >
      Transfer Tokens
    </button>
  )
}

Return Type

See TanStack Query mutation docs for full return type.

data

See callContract Return Type.

Parameters

See callContract Parameters for all options.

Key parameters include ttl which defaults to 300 blocks.

Default TTL

All transactions default to a TTL of 300 blocks (~15 hours). This prevents stale transactions from lingering indefinitely. Override with ttl: 0 for no expiration.

mutation

See TanStack Query mutation docs for mutation options.

Action