Fiat onramps for ICRC tokens & automated ICP swaps

Most fiat onramps (Banxa, Transak, etc.) only deliver native ICP or EVM assets to a destination address. Buying EVM tokens and routing them through a ck Minter (like ckUSDC or ckETH) is an option, but forcing users to manage multiple networks and token types adds a lot of UX complexity and friction. The same goes for buying native ICP, transferring it out, and manually swapping it on a DEX, t’s way too clunky when a workflow specifically requires ICRC tokens.

I’m curious how other teams on mainnet are working around this. Specifically looking for thoughts on two angles:

Direct ICRC Onramping

Is there any onramp or wrapped service operating on mainnet that actually routes fiat purchases directly into an ICRC ledger canister / Principal ID? Or is native ICP still the only realistic entry point for fiat right now?

Automated Canister Swaps

If native ICP is the only viable route, what does a clean canister-side automated swap pipeline look like?

Specifically, I’m looking for ways to handle completing a purchase directly into a canister wallet and automatically converting it into a specified token, or allowing seamless in-app conversion between the tokens.

If anyone has example solutions, open-source repos, or prior art that could help point me in the right direction, I’d appreciate any links or thoughts.

Hmmm…if you can find an evm based solution then ethgents dual accounts might help? Each virtual erc20 is also an icrc account. (Personal wallet canisters available)

https://forum.dfinity.org/t/ethgent-com-icrc1-2-erc20-interoperability-token-port-sample/74334