KORAMP

On-Ramp & Off-Ramp

KORAMP's flagship guide: converting IDR to crypto (Top Up) and back (Sell) with the wallet-first model.

Introduction

This guide is for developers and product teams who want to understand and integrate IDR↔crypto ramps with KORAMP. KORAMP provides two directions:

  • On-Ramp (Top Up): the user pays Indonesian Rupiah (IDR) and receives crypto to their wallet.
  • Off-Ramp (Sell): the user sends crypto and receives IDR to their bank account.

KORAMP is wallet-first: no account required — a wallet address is the user's identity.

KORAMP privacy model

KORAMP uses public on-chain transfers. Sender, receiver, and amount are visible on the blockchain. KORAMP does not offer encrypted balances or private transfers. Privacy comes from the no-account model, wallet-as-identity, and masked display in the public ledger.

Field Visibility

The two tables below show the visibility level for each field in each direction.

On-Ramp (Top Up)
FieldVisibilityReason
IDR Payment (QRIS)Off-chain onlyFiat payment is processed by Xendit; not recorded on-chain.
AssetPublic on-chainThe crypto sent is recorded on the blockchain.
AmountPublic on-chainOn-chain transfers are public.
SenderPublic on-chainPlatform hot wallet address is publicly visible.
RecipientPublic on-chainUser wallet address is publicly visible.
Memo (optional)Public on-chain if setOnly added when required.
Off-Ramp (Sell)
FieldVisibilityReason
IDR Payout (Bank)Off-chain onlyBank payout is processed by Xendit; not recorded on-chain.
AssetPublic on-chainCrypto sent by user is recorded on the blockchain.
AmountPublic on-chainOn-chain transfers are public.
SenderPublic on-chainUser wallet address is publicly visible.
RecipientPublic on-chainPlatform deposit address is publicly visible.
Memo (optional)Public on-chain if setOnly added when required.

Requirements

Before integrating, make sure you have:

  1. An EVM or Solana wallet for the user, matching the selected asset.
  2. A supported asset on a supported network (SOL, ETH, or BNB on testnet).
  3. An IDR amount within the minimum and maximum limits for that asset.
  4. The ability to sign messages to prove wallet ownership (EVM and Solana).
  5. A callback endpoint or webhook to receive payment status notifications from the provider.

Assets and Inventory

  1. SOL on Solana Devnet — Top Up and Sell ramp active. Account for the Associated Token Account (ATA) creation fee on recipient wallets that don't yet have an ATA.
  2. ETH on Base Sepolia (chain 84532) — ramp active. EVM wallets need to add the Base Sepolia network if not already known.
  3. BNB on BSC Testnet (chain 97) — ramp active. EVM wallets need to add the BSC Testnet network if not already known.

Testnet

The ramp currently runs on testnet networks. See the Assets & Networks page for chain IDs and explorers.

Compliance Considerations

Information You Can See

InformationOn-chainOff-chain
Sender addressYes, publicYes, public
Recipient addressYes, publicYes, public
AmountYes, publicYes, public
Bank payout detailsNoLast 4 digits only displayed
Wallet address in public ledgerMaskedMasked

Wallet Screening

KORAMP applies wallet screening as part of security operations. Current stance: screening focuses on abuse detection and rate limiting, not third-party compliance analytics. KORAMP does not claim coverage equivalent to dedicated compliance providers.

Travel Rule

KORAMP uses a KYC-less wallet-first model. As a result, classic Travel Rule mechanisms (collecting and exchanging sender/recipient data between institutions) are not available. This is adapted by maintaining an internal audit trail: no accounts, wallet-as-identity, and a publicly masked ledger.

Mapping Your Existing Flow

Existing stepKORAMP step
Send fiatPay via Xendit QRIS (scan and pay)
Receive cryptoCrypto sent to destination wallet
Sell cryptoSend to platform deposit address
Withdraw IDRFiat payout to bank via Xendit Payout v3

Records and Audit

Every significant transaction is recorded in the double-entry ledger and audit log:

ComponentFunction
AuditLogRecords important actions with actor and metadata.
LedgerEntryDouble-entry records (CREDIT/DEBIT) per wallet and asset.
XenditWebhookXendit webhook idempotency keyed on kind, event, paymentRequestId, and payoutId.

Transaction Flow

1. On-Ramp

  1. User requests a TOP_UP quote.
  2. Create a Top Up order and obtain a Xendit QRIS payment payload.
  3. User scans the QRIS code and pays.
  4. Xendit webhook notifies the server that payment succeeded.
  5. Platform sends crypto to the destination wallet.
  6. Order is marked complete when completedAt is set.

2. Off-Ramp

  1. User requests a SELL quote.
  2. Create a Sell order and obtain the platform deposit address.
  3. User sends crypto to the deposit address.
  4. Scheduler scans the deposit and tracks confirmations.
  5. Once confirmations are sufficient, fiat payout is sent via Xendit Payout v3.
  6. Order is marked complete when the payout succeeds.

Start Integrating

With an understanding of on-chain visibility and the flows above, you can start building a KORAMP ramp integration.

Next steps

Continue to Transaction Flow for the technical details of each step, or open API Reference for the endpoint list.