Skip to main content
Solana settlement uses program-derived addresses (PDAs) and horizontally packed instructions. No Executor or Fulfillment contract is deployed; resolvers interact directly with the Utexo program.

Onboarding

A protocol administrator registers each resolver in the ProtocolState PDA with:
  • Executor/admin authority Pubkey
  • Authorized deposit and withdraw addresses

Accounts

Unified vault PDA

Pools escrowed tokens of the same mint in one vault. Deposits increase its balance; withdrawals, refunds, and fulfillments decrease it.

EscrowCheck PDA

Stores order, intent, resolver, deposit authority, user, mint, amount, secret hash, nonce, and deadline.

FulfilledIntent PDA

Provides replay protection for fulfillment. The PDA is closable after a seven-day grace period to reclaim rent through the single or batch close instructions.

Cross-chain swap

Deposit

  • Signers: user + resolver_deposit_address.
  • Uses the accounts and parameters supplied in the co-signed deposit transaction.

Fulfill

  • Signers: caller_authority + backend_signer.
  • Fulfillment amount must be in [min_amount, min(max_amount, resolver_max_amount)].

Withdraw

  • Signer: resolver_withdraw_address.
  • Requires the full order and revealed secret. Closes the EscrowCheck PDA on success.

Horizontal packing with DEX

Solana settlements pack protocol instructions around resolver-supplied DEX instructions inside a single atomic transaction. Ordering is strict.

Deposit with DEX

Intermediary DEX instructions must not reference the user’s public key.

Fulfill with DEX

Use fulfill_finish_native when paying out native SOL.

Single-chain atomic swap

  • Signers: user + resolver_deposit_address + backend_signer.

DEX path

Fast refund

Fast refund is co-signed by backend_signer and resolver_deposit_address. The resolver signer must match the resolver_deposit_authority stored in the EscrowCheck PDA.