Overview
Issue exact token rewards for activity your application already qualifies.
Your app decides who earned what. Slices records the reward, queues it for your operator to approve, and reports each transfer.
Slices is a server API for issuing exact amounts of an approved ERC-20 token to existing wallets. Use it for rewards your application already qualifies: a completed referral, an eligible card purchase, a qualifying swap, or a calculated vault reward.
You send the recipient, the token amount, and a reference to the activity. Slices gives you a durable reward record and one consistent way to follow that instruction through your operator's approval, the transfer from their wallet, and the verified receipt.
These docs describe the v1 partner payout contract. Use the API endpoint, SDK build, campaign, and approved asset configuration supplied for your integration. Examples do not establish that a public endpoint, npm release, or production asset is available.
One integration, different reward programs#
Your backend supplies four things:
| Input | What it means |
|---|---|
campaignId | The approved campaign that fixes the network, token, and issuance limits. |
recipient.walletAddress | The existing wallet authorized to receive this reward. |
amountBaseUnits | The exact net token quantity, expressed as an integer string. |
event | Your stable, opaque reference to the qualifying activity. |
Every write also uses an explicit idempotency key. Retrying an accepted instruction does not create another reward.
How it works#
A successful issuance request is an acknowledgment, not a token transfer. Nothing moves until your operator approves the draft campaign and their wallet sends the transfer. A campaign's issuance cap is an authorization limit, not a balance in that wallet.
Who does what?#
| Your application | Your operator | Slices |
|---|---|---|
| Verifies activity and determines eligibility. | Holds the reward tokens in their own wallet. | Validates and durably records the instruction. |
| Identifies the authorized destination wallet. | Reviews each draft campaign: recipients, exact amounts, the fee. | Prevents duplicate economic issuance and enforces campaign limits. |
| Calculates the exact reward amount. | Signs the approval and sends each transfer from that wallet. | Verifies recipients, prepares each transfer, and verifies each receipt. |
| Defines refund, dispute, and abuse policies. | Reports every reward's status and transfer evidence. |
Slices holds no signing key. It never sends a token on anyone's behalf, and it does not independently verify an event because it has a particular label: referral.qualified and swap.qualified are references, not commands to run an attribution engine or blockchain indexer.
The first integration#
Start with one approved campaign, one token on one EVM chain, and existing recipient wallets. Use the TypeScript server SDK or call the HTTP API directly. Poll reward resources for status changes.
Email recipients, automatic token purchasing, dollar-to-token calculations, outgoing webhooks, and a browser-authorized payout SDK are outside this version.
Start here: Quickstart. For the exact request format, see Grant a reward. For the path from acceptance to a verified transfer, see Approval and sending. For the complete boundary, see Capabilities and limitations.