Redeem Codes and Claim Links
One-time payments with two recipient experiences: standard redeem codes and private claim links
Payment Codes let a sender lock funds first and let the recipient choose when to complete the payout. Today RelAI supports classic 8-character codes and private claim links across EVM escrow networks and Solana vault networks.
Standard codes are redeemed by entering the code and a payout address. Private claim links keep the raw code hidden and require the recipient to connect a wallet, sign once, and either claim the code itself or claim USDC directly.
How It Works
/redeem and enters the code/claim/<claimToken>Security: Standard codes are bearer instruments, so anyone with the code can redeem it. Private claim links add a wallet signature step and keep the raw code hidden until the recipient explicitly claims it.
SKALE privacy: When the source settlement network is SKALE Base Sepolia, funding and settlement metadata can use BITE-encrypted flows while keeping the same redeem and claim UX.
Redeem and Claim UI
Recipients redeem standard codes at /redeem. Private claim links open directly at /claim/<claimToken>.
- 1Standard code: enter the 8-character code and the payout address
- 2EVM-backed standard codes redeem to an EVM address, while Solana-backed codes can redeem to Solana or EVM destinations
- 3Private claim link: connect the required wallet type and sign once
- 4Claim USDC pays out immediately, claim code reveals the hidden code for the normal redeem flow
- 5Success screens include source settlement and payout explorer links when available
Standard redeem does not require recipient wallet signatures. Private claim links do require a connected wallet, and the wallet type must match the claim-link source network.
API Endpoints
RelAI exposes different endpoints for EVM escrow-backed codes, Solana vault-backed codes, and private claim links. The exact source network determines which route family to use.
/facilitator/payment-codesRegister an EVM-backed code after escrow funding. Supports claimLink for private claim links.
/facilitator/payment-codes/:codeRead EVM-backed code status, funding tx info, claim-link metadata, and settlement status.
/facilitator/payment-codes/:code/redeemRedeem an EVM-backed standard code to an EVM address.
/facilitator/payment-codes/claim-links/evm/:claimTokenRead the status of an EVM claim link.
/facilitator/payment-codes/claim-links/evm/:claimToken/claimClaim an EVM claim link with mode claim-usdc or claim-code.
/facilitator/solana-payment-codesCreate a Solana-backed vault code or claim link.
/facilitator/solana-payment-codes/:code/redeemRedeem a Solana-backed standard code to Solana or EVM.
/facilitator/solana-payment-codes/claim-links/:claimToken/claimClaim a Solana claim link with mode claim-usdc or claim-code.
curl -X POST https://api.relai.fi/facilitator/payment-codes -H "X-Service-Key: sk_live_..." -H "Content-Type: application/json" -d '{
"from": "0xSenderWallet",
"code": "D92T5TPW",
"value": 5000000,
"validBefore": 1735000000,
"settlementNetwork": "base-sepolia",
"escrowMode": true,
"claimLink": true,
"fundingTxHash": "0xFundingTxHash..."
}'
# Response
{
"code": "D92T5TPW",
"claimLink": true,
"claimToken": "clm_2qY7...",
"validBefore": 1735000000,
"expiresIn": 300,
"cancelLockedUntilExpiry": true
}{
"success": true,
"claimLink": true,
"claimMode": "claim-usdc",
"amount": "5000000",
"settlementNetwork": "base-sepolia",
"targetAddress": "0xRecipient...",
"targetNetwork": "base-sepolia",
"sourceSettlementTxHash": "0xsource...",
"payoutTxHash": "0xpayout...",
"explorerUrl": "https://sepolia.basescan.org/tx/0xpayout...",
"private": false
}Settlement Networks
The exact list depends on the deployed environment, but testnet and mainnet follow the same model: EVM escrow networks use EVM wallet signatures for claim links, and Solana vault networks use Solana wallet signatures.
| Network | ID | Source model | Claim-link signer | Privacy |
|---|---|---|---|---|
| Base Sepolia | base-sepolia | EVM escrow-backed code | EVM wallet | Public |
| SKALE Base Sepolia | skale-base-sepolia | EVM escrow-backed code | EVM wallet | BITE-enabled |
| Solana Devnet | solana-devnet | Solana vault-backed code | Solana wallet | Public |
Error Handling
not_found- Code not foundThe code or claim token does not exist. Check for typos or confirm the sender created it successfully.
expired- Code expiredThe TTL elapsed. The issuer must generate a new code.
already_redeemed- Already redeemedThis code was already settled. Each code is single-use.
cancelled- Code cancelledThe issuer cancelled the code before it was redeemed.
already_claimed- Claim link already usedThe claim link was already converted into a code or already paid out to a destination.
invalid_signature- Invalid claim signatureThe connected wallet did not match the wallet type or the signed payload was stale or malformed.
target_network_required- Destination network requiredWhen claiming to an EVM destination, provide the target settlement network as well as the address.