# Sufficiency on assethub

**URL:** <https://forum.polkadot.network/t/sufficiency-on-assethub/7095>\
**Category:** Ecosystem\
**Created:** [March 29, 2024, 3:00pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095 "2024-03-29T15:00:48Z")\
**Posts on this page:** 11\
**Page:** 2

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [April 2, 2024, 6:45am UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/21 "2024-04-02T06:45:46Z")

</div>

Just an update, working on this with @Tarik and found some more Polkadot JS bugs. Sorry for the delay but we should end up with a successful demo in the next day and better Polkadot JS out of it.

---

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [April 2, 2024, 7:29pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/22 "2024-04-02T19:29:49Z")

</div>

Case 1: [A local transfer of USDT](https://assethub-polkadot.subscan.io/extrinsic/5982448-2)

I don’t know why Subscan shows a fee in DOT, but you can see from the event log and address history that it’s never had DOT and [paid the fee in USDT](https://assethub-polkadot.subscan.io/extrinsic/5982448-2?event=5982448-3).

Case 2: Sending USDT to Moonbeam

It did indeed [fail on Polkadot](https://assethub-polkadot.subscan.io/extrinsic/5982488-2) and [on Kusama](https://assethub-kusama.subscan.io/extrinsic/6717792-2), I stand corrected. It really should have been handled by the `TakeFirstAssetTrader` and I need to look into it more. Obviously that should have some test cases. Will log an issue and make sure we fix this.

Haven’t looked into sending PINK from Moonbeam yet, but I don’t have control over the XCM programs they send. Will look into making a demo though.

---

<div class="post-metadata">

**Author:** ![acatangiu](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/acatangiu/32/540_2.png) [@acatangiu](https://forum.polkadot.network/u/acatangiu)\
**Post date:** [April 15, 2024, 1:54pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/23 "2024-04-15T13:54:24Z")

</div>

XCM transport fees are currently limited to using DOT (or some other single asset configured by the runtime).

There is work planned under [Asset Transactor on Asset Hubs not Working With Sufficient Assets · Issue #3958 · paritytech/polkadot-sdk · GitHub](https://github.com/paritytech/polkadot-sdk/issues/3958) to give the ability to hook in `asset-conversion` for XCM transport fees, and thus be able to just-in-time swap whatever for DOT, thus completely supporting “fees in USDT” on Asset Hub.

Exploring options for other chains here: [Asset Hub Brainstorming Session - Call Notes and Discussion Continuation - #2 by acatangiu](https://forum.polkadot.network/t/asset-hub-brainstorming-session-call-notes-and-discussion-continuation/7260/2)

---

<div class="post-metadata">

**Author:** ![sodazone](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/sodazone/32/7216_2.png) [@sodazone](https://forum.polkadot.network/u/sodazone)\
**Post date:** [May 15, 2024, 5:08pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/24 "2024-05-15T17:08:04Z")

</div>

Am I right in understanding that sufficient assets can be used only for transaction fees but not for deposit fees on Asset Hub?

Would also really appreciate if someone can provide me with some sufficient assets on Rococo Asset Hub for testing!

---

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [May 15, 2024, 5:18pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/25 "2024-05-15T17:18:07Z")

</div>

> [@sodazone](#):
>
> Am I right in understanding that sufficient assets can be used only for transaction fees but not for deposit fees on Asset Hub?

Half right, they cannot be used for deposits. Any asset (not just sufficient) can be used for transaction fees. The ONLY thing sufficient assets can do that others cannot is be used in lieu of the existential deposit to make an account exist.

> [@sodazone](#):
>
> Would also really appreciate if someone can provide me with some sufficient assets on Rococo Asset Hub for testing!

Sure, post an address.

---

<div class="post-metadata">

**Author:** ![sodazone](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/sodazone/32/7216_2.png) [@sodazone](https://forum.polkadot.network/u/sodazone)\
**Post date:** [May 15, 2024, 5:56pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/26 "2024-05-15T17:56:10Z")

</div>

> [@joepetrowski](#):
>
> Any asset (not just sufficient) can be used for transaction fees.

Is this because now we have asset conversion live? What happens if there is no pool for the asset? For example, there’s no pool in Rococo AH for ROC-1984 and the runtime API `quotePriceExactTokensForTokens` returns `null`. Will it still be possible to pay with 1984 in this case?

> [@joepetrowski](#):
>
> Sure, post an address.

5GEse7uuvXbkNFi6o8WeaL1S5omApVB4D9oFjEm7791BuLXW

Thanks!

---

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [May 15, 2024, 6:06pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/27 "2024-05-15T18:06:26Z")

</div>

> [@sodazone](#):
>
> Is this because now we have asset conversion live? What happens if there is no pool for the asset? For example, there’s no pool in Rococo AH for ROC-1984 and the runtime API `quotePriceExactTokensForTokens` returns `null`. Will it still be possible to pay with 1984 in this case?

There needs to be a pool, but anyone can create a pool for any asset. I’ll make sure one for 1984 gets set up in the next day or two.

> [@sodazone](#):
>
> 5GEse7uuvXbkNFi6o8WeaL1S5omApVB4D9oFjEm7791BuLXW

Sent

---

<div class="post-metadata">

**Author:** ![sodazone](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/sodazone/32/7216_2.png) [@sodazone](https://forum.polkadot.network/u/sodazone)\
**Post date:** [May 24, 2024, 4:21pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/28 "2024-05-24T16:21:42Z")

</div>

We implemented the “pay with any asset with pool” feature in [Taniko](https://forum.polkadot.network/t/taniko-ui-create-manage-assets-on-asset-hub-s/8321) but seems like asset conversion is not working on Rococo or Westend Asset Hubs.

I tested with Polkadot and managed to put a remark onchain paying with DED (see [extrinsic](https://assethub-polkadot.subscan.io/extrinsic/6324866-2)) but on the testnets the asset conversion runtime APIs return null and submitting an extrinsic gives an error `1010: Invalid Transaction: Inability to pay some fees , e.g. account balance too low`.

Let me know if I should file an issue somewhere 🙂

---

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [May 24, 2024, 4:49pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/29 "2024-05-24T16:49:19Z")

</div>

Do pools exist for the assets you are trying to pay with?

---

<div class="post-metadata">

**Author:** ![sodazone](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/sodazone/32/7216_2.png) [@sodazone](https://forum.polkadot.network/u/sodazone)\
**Post date:** [May 25, 2024, 3:15pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/30 "2024-05-25T15:15:44Z")

</div>

I created a pool and added liquidity for my asset a while ago, been trying to add more liquidity to see if this is the issue but seems like Rococo Asset Hub is down.

---

<div class="post-metadata">

**Author:** ![joepetrowski](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@joepetrowski](https://forum.polkadot.network/u/joepetrowski)\
**Post date:** [July 10, 2024, 6:05pm UTC](https://forum.polkadot.network/t/sufficiency-on-assethub/7095/31 "2024-07-10T18:05:26Z")

</div>

@lrazovic found a nice workaround for this problem. The XCM `FeeManager` withdraws the DOT in the dispatch phase, not pre-dispatch like `transaction-payment`. So, you can just batch a swap in Asset Conversion ahead of the other call and pay for the whole thing with a non-DOT asset.

Repo here: [GitHub - lrazovic/xcm-batch-example](https://github.com/lrazovic/xcm-batch-example)

Demo transaction: [https://assethub-polkadot.subscan.io/extrinsic/6657108-3](https://assethub-polkadot.subscan.io/extrinsic/6657108-3)

[Previous page](https://forum.polkadot.network/t/sufficiency-on-assethub/7095.md?page=1)
