Pull-based subscription billing on Arc

Recurring revenue, collected in USDC.

Levy pulls subscription payments in USDC every billing cycle. Your customers approve an allowance up front instead of paying each invoice. You collect on schedule, without chasing invoices or retrying cards by hand.

Get early access Read the whitepaper

Built for Arc. Settled in USDC. Open source under MIT.

The Levy merchant dashboard: MRR, active subscriptions, charge success rate and dunning queue, a table of subscriptions with customer references, status and allowance runway, and the dunning queue.
The merchant dashboard: revenue, every subscription with your own customer reference, how many cycles each customer's allowance still covers, and the dunning queue. Demo data on a local test chain.

How it works

  1. 1

    You create a plan

    Set a price and a billing cycle (anything from a day to ten years) on-chain, with an optional free trial. The price is fixed at creation. To reprice, create a new plan.

  2. 2

    Subscriber checks out

    From your checkout link, the customer approves a USDC allowance for a number of cycles and subscribes: two wallet confirmations. Without a free trial, the first cycle is charged right away. No card on file, and no signature each cycle.

  3. 3

    The keeper pulls every cycle

    When a billing date arrives, the charge function accepts calls from any address. Levy's keeper calls it on schedule: the contract pulls the payment, sends 99% to you and 1% to the protocol, and advances the cycle.

Your customers stay in control

Pull payments ask customers for trust. The contract limits what can be pulled, and customers can stop paying on their own, without asking you.

They set the cap

The customer approves a USDC allowance for the number of cycles they choose. Levy can never pull more than that.

Only the price, only when due

Each cycle the contract can pull the plan's price once, only to that plan's merchant, and never before the billing date. Prices are fixed, so they can't be raised on an existing subscription.

Stop any time

Customers pause, resume or cancel in the customer portal with their own wallet. They can also revoke their USDC allowance (for a Permit2 subscription, the Permit2 allowance), and nothing more is pulled.

Every payment on record

Each charge is an on-chain transaction with an invoice reference, listed in the portal and visible on the block explorer.

The Levy checkout: a $29 monthly plan, the merchant and contract addresses, a field for how many cycles to approve with the total in USDC, the customer's balance and current allowance, and a note that Levy can only pull the plan's price each cycle.
Checkout: the customer chooses how many cycles to approve, sees their balance and current allowance, and is told exactly what Levy can pull. Demo data on a local test chain.

The fee

1%

The protocol takes one percent of each collected payment. No monthly tiers. No per-seat pricing. No setup fee. If nothing is collected, nothing is owed.

What comes with it

Dunning

When a pull fails, Levy retries on a schedule instead of dropping the subscription. The contract tracks failures on-chain and pauses the subscription only after repeated failures.

Webhooks

Every billing event reaches your endpoint: subscription created or changed, charge succeeded or failed, dunning started, paused, resumed, cancelled, and an early warning when a customer's allowance is running low. Each delivery carries an Ed25519 signature for verification.

Invoicing

Every charge is an invoice record with a reference, transaction hash, and block number. Export the full history as CSV for your books.

Checkout and portal

A checkout link per plan, carrying your own customer reference. Customers see their subscriptions and pause, cancel or top up their allowance from their wallet.

Roadmap

Built
Subscription contracts, the keeper service, dunning engine, signed webhooks, API, merchant dashboard, customer portal and checkout. Live on Arc testnet since 26 September 2026; the current contracts were deployed on 24 October 2026 after review fixes.
Now
Second testnet soak, under way since 26 October 2026 on the current contracts: a week of real billing cycles end to end, covering trials, failed payments, pauses, plan changes and Permit2, and clearing the pre-mainnet verification list. The first ran from 7 to 24 October.
Next
Version 2 of the contracts: a payout address separate from the account that manages plans, handing an account to a new owner, retiring a plan without affecting its subscribers, plans that end after a set number of payments, introductory prices, and moving a subscription to a new wallet. Then an external audit of version 2 and a testnet soak on it.
Launch
Mainnet deployment with a multisig treasury.

Get early access

Levy is live on Arc testnet and is looking for its first merchants. Real billing cycles have run there since 7 October 2026, and a second week-long soak on the current contracts began on 26 October; version 2 of the contracts, an external audit and mainnet come after it. If you run subscriptions and want to collect them in USDC, get in touch.

Email hello@getlevy.xyz

Arc testnet contracts
SubscriptionManager 0xea24ac9c1217a671139d93225fdcf19ea3c4df4e
FeeRouter 0x9e62309243da8be600a718a323fbbdfce00f3ce8

For developers: the contracts, keeper, API and dashboards are open source under MIT, in one GitHub repository. Mainnet addresses will be published at deployment. The whitepaper (PDF) covers the design, security model and economics in full.