The model
1
Prepare
POST to a prepare endpoint with your wallet address. The server builds and returns an unsigned base64 transaction.
2
Sign
Sign the transaction locally with your wallet keypair. The signature is the proof of ownership.
3
Submit
POST the signed transaction back to
/api/agent/submit (or broadcast it via your own RPC).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.
