The model
Prepare
POST to a prepare endpoint with your wallet address. The server builds and returns an unsigned base64 transaction.
Sign
Sign the transaction locally with your wallet keypair. The signature is the proof of ownership.
Why it’s safe
- The server never holds your keys and never has custody — it only assembles transactions.
- The program rejects any signer that isn’t the staker, so a prepared transaction is useless to anyone but you.
- Reads are public on-chain data and need no auth at all.
This is not x402. x402 moves a token to a payee. Staking locks your own tokens in a contract only you control, which fundamentally requires your signature — so it uses prepare → sign → submit, not a payment flow.
What agents can do
- Read — analytics, a wallet’s positions, the reward pool, the program manifest.
- Stake / top up — open or grow a position.
- Unstake — begin a cooldown.
- Withdraw — reclaim principal after cooldown.
- Claim — pull accrued USDC + $SGL.
