Skip to content

Devnet only: test USDC, not real money.

Docs menuHow it works

Getting started

How it works

What a plan fixes, what the customer signs, when money moves, and what happens when it can't.

Plans are fixed once published

A plan lives on Solana, under your wallet. It records the token (USDC), the amount per period, the period length, where each payment goes, and which keys may collect it. None of that can change after publication. A subscriber can never be charged more, more often, or somewhere else than they agreed to.

To change a price, publish a new plan and retire the old one. Existing subscribers keep the terms they signed up for, and nobody new can join the retired plan. The name and description aren't on-chain, so you can edit those at any time.

Subscribing is one signature

When a customer subscribes, their wallet signs one transaction that lets the plan's collector take up to the plan amount from their USDC, once per period, into the plan's destinations only. Their USDC stays in their wallet until each payment is taken, and they can cancel from their wallet at any time.

Collection and settlement

A period's payment falls due the moment the period starts, and our collector takes it on its next run, which is every minute. The program checks every collection against the plan: the right key, no more than the period's allowance, and only to the plan's destinations.

Your share lands in your wallet in that same transaction. There is no balance held for you, no payout schedule, no reserve and no chargebacks.

Fees

SolLoop takes 1% of each collection. It comes out of the plan price rather than on top of it, because the on-chain amount is a hard cap. The rate is fixed on the plan when you publish it and never changes for that plan.

On a 49 USDC planAmount
Customer pays49.00 USDC
You receive48.51 USDC
SolLoop0.49 USDC

When a payment fails

If the customer's wallet can't cover a payment, the collector tries up to three times within the period. When those are used up, the period is written off and your server gets a payment.failed webhook with the reason. The subscription stays in place, and the next period is collected as normal.

A failure on our side, such as Solana being unreachable, doesn't use up one of the customer's attempts. The payment stays due and is taken when we recover, as long as its period hasn't ended.

Cancelling, and subscription statuses

Cancelling stops the renewal, not the period the customer has already paid for. A cancelled subscription runs to the end of its period and then ends. The customer can undo a cancellation before then.

StatusMeaning
activeRenewing every period.
cancellingCancelled, and paid up to the end of the current period. Keep access until then.
expiredEnded. Nothing more will be collected.
invalidatedThe customer revoked the wallet authorisation behind it. Nothing more can be collected.