ENSIO

Accept crypto payments with just your ENS name records. Any token, any chain.

ENSIO

Created At

HackMoney 2026

Winner of

ENS

ENS - Integrate ENS

Prize Pool

Project Description

ENSIO - ENS Native Payment Infrastructure

ENSIO turns your ENS name into a universal payment endpoint. Share ensiopay.vercel.app/pay/yourname.eth and receive payments from anyone, in any token, from any chain. Payments are automatically converted to your preferred currency and can optionally be deposited into a yield earning vault.

The Problem

Receiving crypto payments today is fragmented.

You need to share different addresses for different chains

Payers must already hold the exact token you want

Cross chain transfers require manual bridging

Idle funds earn nothing while sitting in your wallet

The Solution

ENSIO uses your ENS name as the single source of truth for payment preferences. When you set up ENSIO, your configuration is stored directly in your ENS text records under com.pay.config.

Example configuration:

{ "version": "1.0", "receive": { "token": "USDC", "chain": 8453, "vault": "0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A" } }

What this enables:

No centralized database. Your preferences live on chain and are controlled by you

Portable identity. Any app can read your ENS records and route payments correctly

One link forever. yourname.eth never changes even if preferences are updated

How Payments Work

A payer visits ensio-pay.vercel.app/pay/alice.eth

ENSIO resolves Alice's ENS records to fetch her payment configuration

The payer sends any token from any supported chain such as ETH, USDC, or USDT

LI.FI routes the payment by swapping tokens and bridging chains if needed

Alice receives her preferred token USDC on her preferred chain Base

Optional: funds are automatically deposited into a Morpho Spark vault earning about 5 percent APY

The payer does not need to know which chain Alice prefers or handle bridging manually. ENSIO handles everything.

Key Features

Universal Payment Links Every ENS name becomes a payment link. No registration and no API keys. If you own an ENS name, you already have a payment endpoint.

Cross Chain by Default Powered by LI.FI. Payments can originate from more than nine chains including Ethereum, Base, Arbitrum, Optimism, Polygon, and BSC. ENSIO automatically finds the optimal route.

Yield Earning Option Recipients can opt in to automatically deposit payments into the Morpho Spark USDC vault on Base. Funds start earning yield immediately instead of sitting idle.

On Chain Configuration Payment preferences live in ENS text records, not in a database controlled by ENSIO. You fully own and control your configuration and can update it anytime.

Receiver Dashboard

QR code and shareable payment link

Real time balance and yield tracking

Payment history including sender, amount, chain, and token

Scattered balance view across multiple chains

One click controls to update token, chain, and yield preferences

Technical Architecture

Payer on any chain using any token flows into LI.FI Aggregator which aggregates DEXs and bridges and finds the optimal swap and bridge route then into Destination Router which follows the ENS configuration and either performs a direct transfer or deposits into a vault finally reaching The recipient wallet or vault position

Why ENS

ENS is more than a naming system. It is a decentralized key value store for identity data. By storing payment configuration in ENS:

Decentralized with no single point of failure or censorship

User controlled since only the owner can update records

Interoperable because any app can read and respect the configuration

Human readable such as alice.eth instead of a long hex address

Use Cases

Freelancers: one payment link for all clients regardless of chain or token

Creators: add a payment link to bios and accept tips in any currency

DAOs: treasury receives payments auto converted into a preferred stablecoin

Anyone: replace send to 0x... with pay yourname.eth

How it's Made

Frontend

Built with Next.js 16 using the App Router. RainbowKit is used for wallet connection and wagmi for Ethereum interactions. The UI is intentionally minimal with only two surfaces: a receiver dashboard and a payer page. Both read from the same ENS based source of truth.

ENS Integration

Payment preferences are stored in a single ENS text record called com.pay.config, encoded as JSON. When a payer visits /pay/alice.eth, the app resolves the ENS name using viem ENS utilities, fetches the text record, and parses the configuration to determine the preferred token, destination chain, and optional yield vault address.

There is no backend database for user preferences. Everything lives on chain inside the user’s own ENS name. For writing records, we use the ENS Public Resolver on Ethereum mainnet at address 0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63 via setText transactions.

LI.FI Integration

Cross chain execution is handled through the LI.FI SDK. When a payer selects a source token and chain, we call the LI.FI quote endpoint with the receiver’s ENS derived preferences as the destination. LI.FI aggregates more than 30 DEXs and bridges to find the optimal route.

For yield deposits, we use a notable workaround. Instead of routing to USDC first and then depositing into a vault in a second transaction, we pass the ERC 4626 vault address directly as the toToken parameter. LI.FI Composer recognizes this pattern and executes an atomic swap, bridge, and vault deposit in a single transaction.

To support this, gas estimates were increased to around 600k since the default was too low for vault zaps, and USDC approvals are pre granted to the LI.FI Diamond contract.

Yield Layer

The default yield option is the Morpho Spark USDC vault on Base at address 0x7BfA7C4f149E7415b73bdeDfe609237e29CBF34A. This is an ERC 4626 vault, so deposits mint shares proportional to the underlying USDC.

We also deployed a VaultRouter contract at 0x949F88b804Fae2b09A1Be919998255587F7A15fB for receivers who prefer to manually deposit after receiving funds.

Hacky Bits Worth Mentioning

Using vault addresses as the toToken parameter in LI.FI quotes. This is undocumented but enables fully atomic yield deposits.

Using ENS text records as a database. The receiver configuration literally lives inside their ENS name, making it portable and censorship resistant.

Client side ENS resolution with caching. ENS resolution happens on the frontend to avoid server round trips, with a five minute cache to reduce RPC calls.

Contracts on Base Mainnet

VaultRouter contract for manual deposits. Integration with Uniswap v4 PoolManager at 0x498581fF718922c3f8e6A244956aF099B2652b2b for same chain swaps.

Stack Summary

Next.js, viem, wagmi, RainbowKit, LI.FI SDK, ENS text records, Morpho ERC 4626 vaults. No traditional backend. ENS acts as the data layer and LI.FI acts as the execution layer.

background image mobile

Join the mailing list

Get the latest news and updates

ENSIO | ETHGlobal