Runway

For merchants

You get a payment link that accepts crypto and UPI, a revenue record that builds itself, and a loan that repays itself from your sales. Here is every step, what to enter, and what you'll see.

Before you start

  • A NEAR testnet wallet (Meteor Wallet works best). Switch it to testnet and get at least 4 NEAR from near-faucet.io. Registration locks about 2 NEAR.
  • Test USDC first. On Lenders, press “Get 1,000 test USDC”. This registers your wallet with the USDC token so your sales and your loan can be paid to it.

1. Register a handle

On Merchants, type a handle: 2–32 lowercase letters or digits, like ramastore. As you type, the page shows the account it will create: ramastore.pay.runway-rama.testnet. Press Register and approve in your wallet.

  • What it costs: about 2.00125 NEAR, which pays for the settlement account's storage on NEAR.
  • What it creates: a settlement account with no access keys. Nobody can sign for it. It can only split payments and forward them, by the contract's rules.
  • Your payout account is the wallet you registered with. Your share of every payment goes there (or to your bank in rupees, if you choose).

2. Get paid

Your dashboard has a payment link and a QR code. Set an amount and share it. Customers can pay:

  • Crypto: any supported token on any chain. NEAR Intents (1Click) swaps it and delivers USDC on NEAR to your settlement account. On testnet you see a live mainnet price, then press “Pay with SIMULATED testnet USDC”.
  • UPI (₹): the INR gateway converts rupees to USDC at the live rate. On testnet you press “Simulate success” instead of paying in a UPI app.

Within about 15 seconds the keeper calls settle(): the money is split (all of it is yours if there's no loan) and the amount is added to your current revenue window.

3. Build your revenue history

Revenue is counted in windows: 5 minutes of clock time on testnet (:00–:05, :05–:10, …), 30 days on mainnet. The underwriter looks at your completed windows, up to the last 6, starting with your first sale. An empty window in between counts as 0.

RuleWhy it matters
At least 3 windows with revenueOtherwise: “needs 3 buckets of revenue history”.
Median window at least 300 USDCOtherwise: “median routed revenue too low”.
Steady amounts score higherUneven windows, or an empty one, can push the score below 40 (declined).

The reliable recipe on testnet

Pay yourself 400 USDC once in each of three windows in a row, early in each window (say at 10:01, 10:06 and 10:11). Then ask for the offer in the next window (between 10:15 and 10:20). Your dashboard shows the window clock and counts the windows for you.

4. Ask for an offer

On Capital, press Sign and request an offer. Your wallet asks you to sign a message (free, no transaction). Your browser first checks the underwriter's session key on-chain, then encrypts the request so only that agent can read it.

  • Optional evidence: a Stripe test key or up to 3 statement files (CSV or PDF). Statements are read by NEAR AI private inference and can add up to 10 points to your score.
  • What comes back: a grade (A, B or C), a limit, a fee, a repay share, and the reasons. The page checks the offer's commitment against the chain (“commitment verified”).

For three 400 USDC windows the numbers are:

median window R = median(400, 400, 400)= 400 USDC
limit = min(R × 0.3 for grade C, first-loan cap 100, …)= 100 USDC
fee = 100 × 10%= 10 USDC → you owe 110
repay share = owed ÷ (3 × R) = 110 ÷ 1,200= 9.17%

The repay share is sized so about three windows of your usual sales repay the loan. See exactly how the score works in the offer simulator.

Why an offer can be declined

Reason shownWhat to do
needs 3 buckets of revenue historyKeep selling; ask after the third window has ended.
median routed revenue too lowTypical windows need 300 USDC or more.
score … below 40Revenue looks unsteady. Make one equal payment per window and ask in the next window.
revenue too concentrated in one payerOver 60% from one payer. Simulated UPI payments all come from one payer, so build history with crypto.
merchant has a default on recordA defaulted merchant gets no new offers.

5. Accept the loan

Choose how much to draw: from 50 USDC up to the limit. Drawing less lowers the repay share in proportion (never below 5%), and the fee is the same percentage of what you draw. Press Accept and approve (1 yoctoNEAR). The loan moves through three states in a few seconds:

  1. PendingTerms: the loan's repay share is written to your settlement account.
  2. PendingTransfer: the USDC is sent from the vault to you.
  3. Active: it arrived. If the transfer couldn't be delivered, the loan becomes Failed, the cash returns to the vault, and you owe nothing.

An offer stays valid for 1 hour.

6. Repay (automatically)

From now on, every payment to your settlement account is split: the repay share goes to the vault, the rest to you. The loan never takes more than you still owe; any extra in the last payment comes back to you in the same transaction.

a 400 USDC sale at 9.17%= 36.68 to the loan, 363.32 to you

Each loan period has a minimum

Loan periods are 5 minutes on testnet. Each must repay at least 10% of what you owe (11 USDC on a 110 loan): one sale of about 120 USDC per period does it. Miss one period and the loan is Delinquent; miss two in a row and it is Defaulted, which blocks future loans. The easiest test: pay yourself 1,200 right after the loan starts. It repays 110 at once and you keep 1,090.

7. Get paid in rupees (optional)

On Settings:

  1. Register a UPI ID (like name@okaxis) or a bank account. Your wallet signs a message; the details are encrypted in your browser to the INR gateway, and only a masked label like n***@okaxis comes back.
  2. Press Switch to ₹ (INR). From then on your share of each payment (and a new loan) is paid in rupees by the gateway: ₹ = USDC × rate × 99.5%.

Register the UPI ID first: a rupee payout to an unregistered account fails and refunds you in USDC.

Troubleshooting

You seeWhy, and what to do
“Claimable: 400.00 USDC”Your wallet wasn't registered with USDC when you were paid. Get test USDC once, then press Claim payout.
Revenue chart didn't moveThe keeper settles within about 15 seconds; reload after 30. If the backend slept, the first request wakes it (up to a minute).
Loan FailedThe USDC couldn't reach your wallet. Get test USDC once, then request a new offer.
ERR_HANDLE_TAKENSomeone has that handle. Pick another.
ERR_BOUNDS_LIMITDraw between 50 USDC and the offer's limit.