artcoins is a home for networked generative art on ERC20 tokens, and the protocol that puts those tokens on Ethereum.

The site presents the work as work. The protocol underneath is a thin layer over Uniswap V4 that takes care of the parts artists shouldn't have to think about: deploying the token, wiring up a real liquidity pool, splitting trading fees to the people who should receive them, and keeping snipers from eating the launch.

Everything below is on Ethereum mainnet, onchain, and verifiable.

Why it exists

ERC20 tokens are usually treated as either commodities or jokes. That's a habit, not a fact about the standard. An ERC20 is just a container, a public, networked, programmable container that generates a continuous stream of onchain activity. Block data, price movement, holder behavior, participation patterns. All of it is material a generative system can read.

The problem isn't the medium. It's that nowhere shows the work as work. NFT platforms show NFTs. DEXs show price charts. If you put art on an ERC20 today, most wallets won't render it, most platforms won't display it, and most viewers will see a ticker symbol and assume meme coin.

The site is the place that presents this work as work. The protocol is what lets an artist launch a coin without having to assemble a Uniswap pool, a fee router, a sniper protection module, and a metadata renderer from scratch.

Who builds it

artcoins is built by ripe.

How it works

Token launch

The Factory deploys an ERC20 and initializes a Uniswap V4 pool in a single transaction. Default supply is one billion tokens. The deployer chooses the symbol, the metadata, the supply, and the tick range that liquidity sits in. The pool is paired with WETH. The token admin keeps the right to update metadata and renderer after launch.

Trading

Swaps go through Uniswap's Universal Router into a V4 pool with the artcoins Hook attached. The hook applies the buy and sell fee that was configured at launch, anything from zero up to ten percent on each side, set independently. Fees are collected by the hook and forwarded to the LP Locker.

Fee distribution

The LP Locker fans out trading fees to up to seven recipients, with shares fixed at launch. One slot is reserved for the protocol. The rest are the deployer's to assign (artist treasury, project burn, collaborators, whatever). The split is immutable once the pool is live.

Sniper protection

A launch is the cheapest moment to extract value from a new pool, and bots know it. Each token can opt into one of four MEV modules that apply an extra fee or a hard delay during the launch window: linear decay, parabolic decay, a flat time delay, or a stepped schedule. After the window expires, the module turns off and the pool runs at its base trading fee.

Onchain art

A token can ship with a renderer contract that produces SVG or HTML metadata directly in Solidity. Larger assets are stored via ScriptyV2, an immutable onchain content store. The artwork lives on Ethereum, not on someone's server, and the renderer can read live pool state (price, swaps, holders) and respond to it.

Fees

There are three fees in the system. Everything else is a configuration of these three.

1. Trading fee (set per pool at launch)

The deployer picks a buy fee and a sell fee independently, anywhere from zero to ten percent each. This is the fee that applies on every swap, paid in the input token and routed to the LP Locker. LAYER uses one percent on each side.

2. Protocol fee (twenty percent of the trading fee)

The Factory takes a fixed cut of every pool's trading fee. The default is twenty percent (two thousand basis points), capped at thirty percent. The cut is forwarded to the Protocol Fee Controller, which currently splits it sixty percent to the protocol treasury and forty percent to LAYER buyback.

3. Deployment fee (flat ETH paid at launch)

The Factory can charge a flat fee in ETH for each deployment. On mainnet today this is set to zero. The factory owner can raise it up to a hard cap of one ETH; it can never go higher.

Optional: launch protection fee

If a launch enables an MEV module, the module's fee is applied on top of the base trading fee during the launch window. It decays to zero on its own schedule, and the fee it collects flows through the same locker as the base trading fee.

Worked example: an artist coin at 1% trading fee

Take the simplest case. An artist deploys a coin with a one percent fee on each side and routes the entire project share to their own wallet. On every dollar of volume, that one cent splits as follows:

0.80¢ → artist
0.12¢ → protocol treasury
0.08¢ → LAYER buyback
= 0.92¢ to wallets, 0.08¢ funding LAYER buyback

Eighty percent of every fee goes to the artist. Twenty percent funds the protocol, with part of that flowing back into LAYER.

Mainnet contracts

All addresses below are deployed on Ethereum mainnet (chain ID 1). Click any address to view it on Etherscan. The Factory was deployed at block 25,040,120 on May 6, 2026.

Core

Factory
0xd1595a2742c392d1c109b616b4f08918d02292f9

Deploys new artcoins. Holds protocol fee config, deploy fee config, and the rule that every token gets a Uniswap V4 pool wired up in the same transaction.

Hook
0xa5ea9904f2cd572c638a1ef81463bdabea9d28cc

Uniswap V4 hook attached to every artcoins pool. Applies the configured buy and sell fee on each swap and forwards them to the LP locker.

LP Locker
0x75be7e95745915fd0c1761b74f3f9650ad2d1118

Holds the pool's liquidity and fans out collected fees to up to seven recipients (artist, protocol, burn contracts) per the split set at launch.

Protocol Fee Controller
0x5fdc39756a64a84518ef00cb6a0ed46971e00a60

Receives the protocol slice of every trading fee and routes it onward. Currently sixty percent goes to the protocol treasury, forty percent to LAYER buyback.

LAYER Buyback Router
0x2edbdf011768d8cd4ef537658b41440900c52000

The contract that buys LAYER on the open market and burns it. Funded by the burn slice of every artcoin's protocol fee.

MEV modules

Linear Fees
0xae19e402420359062ee422a03589e04a52cd8c6f

Fee starts high and decays linearly to a floor over a fixed window (default ~69 minutes). Recommended default.

Descending Fees
0x7958de7d8c857cdd37465fb920a961b1f8f74301

Parabolic decay. Sharper at the start, gentler at the end. Defaults to ~80% down to 5% over thirty seconds.

Time Delay
0xf080d741d069b107d728b68f781843d83a0ea8fb

Blocks all trading for a fixed number of seconds after launch. Simple, blunt, effective.

Stepped Fees
0x1ab013ebef60e82dfc55ec90b0974a86d283b935

Five tier fee schedule (e.g. 50 / 25 / 15 / 7 / 3 percent) that drops in steps over a configurable window. Used for LAYER.

Extensions and renderers

Vault
0x84732a79e4ec8f03063a138c7ef866a9d222c661

Holds an allocation of supply with a custom lockup or vesting schedule. Releases tokens over time.

Airdrop V2
0xf937dff16a45e417951794758e77cbed0a7f27ec

Merkle proof claim contract. Used to seed an artcoin with a predefined allowlist of recipients.

Continuity Burn
0x034d6babbb067eee4a67357b687c9b1267aea1ce

Burns a slice of supply at launch. LAYER uses this to retire 26.02% of total supply on day one.

Dev Buy
0xfcb6a929db98a1d69b5f33a2f7e073cb7449cf30

Lets the deployer make an ETH funded buy in the same transaction the pool is created.

Liquidity Layer Counter
0xc4a1E94749c0C3c608577FcD7567a5fBcAcE0A65

Onchain pool extension that counts swap activity. Renderers can read it to drive visualization.

Liquidity Layer Renderer
0x93bDB2462d23720BE9A635F526287A3fD0f6D7d4

Reads pool state and emits the SVG/HTML metadata for LAYER. Stored entirely onchain via ScriptyV2.

artcoins also relies on the canonical Uniswap V4 deployments (PoolManager, Universal Router) and Permit2. Their addresses are documented at docs.uniswap.org.

Resources