For builders

Anyone can publish a waypoint. You describe what your protocol does and what its calls mean — which function, which parameters carry value, what may vary and what must not — sign it, and submit it to the Directory. A waypoint is a signed, typed description, not code we run:

// excerpt — illustrative, using the publisher SDK
defineCapability({
  name: "swap",
  chain: 4663,
  target: SWAP_ROUTER,
  function: "function exactInputSingle((address tokenIn, address tokenOut,
             uint24 fee, address recipient, uint256 amountIn, …) params)
             payable returns (uint256)",
  spend: { spendBearing: true, token: USDG, amountParam: "params" },
  constraints: {
    "params.tokenIn":   constrain.addresses([USDG]),
    "params.tokenOut":  constrain.addresses([WETH, WAY]),
    "params.recipient": constrain.self(),   // output can never leave the account
    "params.fee":       constrain.oneOf(100, 500, 3000, 10000),
  },
})

Once it passes verification, it’s live — and it earns. Every transaction your waypoint carries sends 10% of the $WAY its fees purchase to an address you set when publishing. Distributions are claim-based — earned $WAY accrues to the waypoint and you claim whenever you like. No schedule, no deadline, no eligibility beyond publishing. Team-authored, protocol-authored, and independent waypoints all earn on the same terms — including waypoints published by Waypoint itself.


Get on Waypoint

The sky is clear. Your model is trading.

Tuesday, Jul 21 San Francisco, CA ☀︎ 68°F