Skip to main content

Transaction Types

Clutch Node supports custom non-EVM transaction types encoded with RLP tags.

Function call tags

TagTypeHub API / SDKDescription
0TransferFaucet onlyStandard CLT transfer
1RideRequestYesPassenger requests a ride
2RideOfferYesDriver offers to fulfill a request
3RideAcceptanceYesPassenger accepts an offer
4RidePayYesPassenger pays driver (partial OK)
5RideCancelYesCancel active trip, refund unpaid fare
8RideRequestCancelYesCancel pending request

RLP tags 6 and 7 are reserved and not accepted by current nodes.

Apps interact with types 1–5 and 8 via the Hub API and SDK. Type 0 is used internally by the faucet.

Ride lifecycle

RideRequest → RideOffer(s) → RideAcceptance → RidePay → completed
↓ ↓
RideRequestCancel RideCancel

Referrer fees

On RidePay, the node distributes referrer fees from each payment installment:

  • ride_request_referrer_fee_percent (default 2%)
  • ride_offer_referrer_fee_percent (default 2%)

Fees use ceiling rounding. The driver receives the installment minus total referrer fees. The passenger is debited the full fare at RideAcceptance; RidePay credits the driver and referrers without debiting the passenger again.

Referrer addresses for new requests and offers are injected server-side by the Hub API from default_ride_request_referrer and default_ride_offer_referrer config.

Validators earn a fixed block reward (block_reward_amount, default 50 CLT per block), separate from ride payments.

See CLT Economics for the full payment flow and examples.

JSON-RPC methods (node WebSocket)

The node exposes these methods at ws://host:port/ws:

MethodDescription
send_raw_transactionSubmit signed RLP hex
send_transactionSubmit structured tx object
get_next_nonceAccount nonce
get_account_balanceCLT balance
get_account_balance_effectsBalance change history
get_block_by_indexBlock lookup
list_ride_requestsOpen requests (optional map bounds)
list_ride_offersOffers for a request hash
list_active_tripsIn-progress trips
list_completed_tripsFully paid trips
list_recent_tripsCompleted + cancelled
import_blockValidator / dev ops
author_new_blockValidator block production

Apps typically use the Hub API instead of calling the node directly.