Signers

signers/svm

github.com/x402-foundation/x402/go/v2/signers/svm

import "github.com/x402-foundation/x402/go/v2/signers/svm"

Functions

func NewClientSignerFromPrivateKey(privateKeyBase58 string) (x402svm.ClientSvmSigner, error)

Source: signers/svm/client.go:37

NewClientSignerFromPrivateKey creates a client signer from a base58-encoded private key.

Args:

privateKeyBase58: Base58-encoded Solana private key

Returns:

ClientSvmSigner implementation ready for use with svm.NewExactSvmClient()
Error if private key is invalid

Example:

signer, err := svm.NewClientSignerFromPrivateKey("5J7W...")
if err != nil {
    log.Fatal(err)
}
client := x402.Newx402Client().
    Register("solana:*", svm.NewExactSvmClient(signer))

Types

type ClientSigner

Source: signers/svm/client.go:14

ClientSigner implements x402svm.ClientSvmSigner using an Ed25519 private key. This provides client-side transaction signing for creating payment payloads.

type ClientSigner struct {
	// contains filtered or unexported fields
}

func Address() solana.PublicKey

Source: signers/svm/client.go:50

Address returns the Solana public key of the signer.

func SignMessage(_ context.Context, message string) (string, error)

Source: signers/svm/client.go:55

SignMessage signs a UTF-8 message using Ed25519 and returns a Base58 signature.

func SignTransaction(ctx context.Context, tx *solana.Transaction) error

Source: signers/svm/client.go:74

SignTransaction partially signs a Solana transaction. This adds the client's signature to the transaction at the appropriate index.

Args:

ctx: Context for cancellation and timeout control
tx: The transaction to sign

Returns:

Error if signing fails