Strimz

Getting Started

From zero to your first stablecoin payment in five minutes.

Getting Started

1. Sign up

Go to strimz.finance/signup and sign in with email, an existing wallet, or Google. Your test-mode account is ready as soon as you land in the dashboard.

2. Issue a test API key

Inside the dashboard, open API keys and click Issue key. Test-mode keys (prefixed sk_test_…) are free to create. Live-mode keys (prefixed sk_live_…) unlock after you complete onboarding and enable 2FA.

3. Send a test payment

import { Strimz } from '@strimz/sdk'
 
const strimz = new Strimz({ apiKey: process.env.STRIMZ_KEY! })
 
const session = await strimz.paymentSessions.create({
  amount: '50000000', // 50 USDC (6 decimals)
  currency: 'USDC',
  description: 'Pro plan, August',
  successUrl: 'https://your-site.com/thanks',
  cancelUrl: 'https://your-site.com/cancelled',
})
 
console.log(session.checkoutUrl)
// → https://strimz.finance/pay/cmh3lmkw50000xv8dabcdefgh

Open session.checkoutUrl, connect a wallet, and finish the payment.

The customer signs two typed-data messages. The first is an EIP-3009 ReceiveWithAuthorization that the token verifies. The second is a Strimz PayIntent that binds the payment to your specific merchant id. Two prompts, one on-chain transaction. Strimz's relayer turns that signature into the on-chain transaction and pays the gas. The customer never sees a separate approval prompt and never has gas in their wallet. The meta-tx flow page covers the security model in more detail.

Refresh Payment sessions in your dashboard and you'll see the new session show up in a few seconds.

4. Wire a webhook

Open Webhooks, click Add endpoint, and paste in an HTTPS URL. Strimz signs every delivery with HMAC-SHA256.

The signing secret comes back exactly once, on the response to the create-endpoint call. Save it in your secrets manager immediately. On our side it lives only as an AES-256-GCM ciphertext in Postgres, so we cannot read it back to you later.

Verify the signature on receipt:

import { verifyWebhookSignature } from '@strimz/sdk'
 
app.post('/webhooks/strimz', (req, res) => {
  const ok = verifyWebhookSignature({
    secret: process.env.STRIMZ_WEBHOOK_SECRET!,
    body: req.rawBody,
    signatureHeader: req.headers['strimz-signature'],
  })
  if (!ok) return res.status(401).end()
  // ... handle event
  res.status(200).end()
})

What's next?

  • Subscriptions. Recurring revenue with a single payer signature.
  • Refunds. Server-side intent, wallet-signed transfer.
  • Webhooks. The full event list and retry behaviour.
  • Meta-tx flow. The security model behind the single-signature checkout.
  • On-chain architecture. Which contracts are immutable, which are upgradeable, and the reasoning.

On this page