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
6ConfirmArrivalNoStub — no state changes yet
7ComplainArrivalNoStub — no state changes yet
8RideRequestCancelYesCancel pending request

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.

Future types

ConfirmArrival and ComplainArrival exist in the node codebase as stubs. They are not exposed through the Hub API or SDK yet.