Polaris PayOpen app

A payments layer with credit built in.

Three ways to pay: in full, on a subscription, or split into four against an undercollateralized credit line. Polaris decides who gets credit and collects what is owed — merchants paid up front, instalments drawn on the day they fall due.

What it actually does

At checkout a buyer chooses how to pay. If they split into four, the merchant is paid the full amount that day and Polaris carries the instalments — four draws of 50.38 against a $200 purchase, seven days apart, repaying 201.53 in total.

The credit line behind that is underwritten from the wallet’s own record: how long the address has existed, what it has signed, what it holds, what it can cover. No application, no bureau, nothing the buyer had to tell us. Every instalment paid on time is worth 12 points; a late one costs 40.

The pull model

Every collection path rests on one mechanism. At checkout the borrower authorises the protocol once, and each instalment is drawn later without them being online. On EVM that was an ERC-20 allowance; here it is an SPL delegate — close, with one difference that is a product constraint rather than a bug: the allowance decrements automatically on use, so it cannot be spent twice.

The authorisation and the purchase go in a single transaction. They both land or neither does.

What porting it taught us

This is a port. The original was five Solidity contracts plus an external platform whose job was making sure transactions landed. Porting it produced one finding worth the whole exercise:

Most of what a keeper platform sells is native to Solana. Simulation, atomic check-and-execute, fee sponsorship and replay protection are runtime features here, not a product. The keeper stops being an execution layer and becomes a scheduler — which is all it should ever have been.

Five contracts became one program. Two invariants come free from addressing rather than from a check that could be forgotten: a payment PDA seeded by (merchant, order_ref) makes a retried checkout idempotent, and a subscription PDA seeded by (subscriber, plan) makes a double-subscribe impossible.

Where it runs

On devnet, against the program below, deployed and exercised. Open the app and it underwrites the wallet your browser generates from that wallet’s own history — no sign-up, no key to bring. The merchant dashboard needs no key either: a merchant’s trade is public state under their own address.

devnet · CpRqbMywzAEKkEALZtrXqPYM36E5RrFewYnRtUYEEvUS

Open the app →