---
# System prepended metadata

title: IBC Transfers Decimal Precision

---

# IBC Transfers Decimal Precision 

## The problem 

IBC trasfers at sifchain are different from Ibc transfers in Cosmos (Atom) . We have wrapped the default sdk `ibc/applications/transfer` to add additional logic , such as 
- Whitelisting
- Decimal Precision 

Both these features reuqire some reads from the state , which cost gas , and so the gas cost for us is higher.


Every incoming IBC trasfer has two parts .( Taking Cosmos -> Sif as example)
- The Tx initiated by the user in the external chain - Cosmos address pays gas in photon 
- The Tx initited by the relayer on our chain - Relayer pays gas in rowan.

The relayer has certain gas limits , to stop users from exploiting it.

## Current Fix 

The increased gas usage for sifchain is higher that the default gas limits for the realyer ,and so we have incresed those numbers to allow TX's to go through . But this just means we would be burning more Rowan per incoming IBC trasfer .

## Long Term Proposals

- Ivan working on changing the logic so that the default gas usage decreses . Also trying to check if removing events would reduce costs 

## Short term proposal 

- We cannot change change the gas cost of a TX , becuase that is baked into the SDK code . We can however change the gas-price for a particluar TX type. The rowan charged is `gas used * gas price` . Reducing the price by a factor of X , would mean `gas used * gas price/X` . This would reduce the rowan that is spend by the relayer .

- We charge the receiving address . During the trasfer we can deduct an equivalent amount of rowan from the receiving account and send it to the relayer address .
