Skip to main content
POST
/
ramp
/
wallet
Register wallet
curl --request POST \
  --url https://api.sand.etherfuse.com/ramp/wallet \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "blockchain": "solana",
  "publicKey": "<string>",
  "claimOwnership": true
}
'
{
  "blockchain": "stellar",
  "claimedOwnership": true,
  "createdAt": "2026-05-01T14:30:00Z",
  "customerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "kycStatus": "approved",
  "publicKey": "GDUKMGUGD3V6VXTU2RLAUM7A2FABLMHCPWTMDHKP7HHJ6FCZKEY4PVWL",
  "updatedAt": "2026-05-02T09:15:00Z",
  "walletId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
}

Authorizations

Authorization
string
header
required

API key sent in the Authorization header.

Body

application/json

Request body for registering a wallet. Two mutually-exclusive shapes: bring-your-own (external): provide publicKey and blockchain; or embedded (non-custodial): provide walletId and a signer with the owner's P-256 public key as compressed SEC1 hex (signerPublicKey), PEM (signerPublicKeyPem), or JWK (signerPublicKeyJwk). Supply exactly one key encoding. Supplying both external and embedded fields is rejected.

blockchain
string
required

Target blockchain.

Example:

"solana"

publicKey
string
required

Wallet public key / address.

claimOwnership
boolean

Claim org ownership of the wallet for compliance attribution. Defaults to false.

Response

The registered wallet

blockchain
enum<string>
required

Blockchain the wallet is on.

Available options:
stellar,
solana,
base,
polygon,
monad
createdAt
string<date-time>
required

Timestamp when the wallet was created.

customerId
string<uuid>
required

ID of the customer who owns this wallet.

publicKey
string
required

Public key / address of the wallet.

updatedAt
string<date-time>
required

Timestamp when the wallet was last updated.

walletId
string<uuid>
required

Unique identifier for the wallet.

claimedOwnership
boolean | null

Whether the wallet has active claimed ownership by the organization. When true and the organization is approved, the wallet is treated as compliant without requiring individual KYC. Only present when claimed ownership has been set.

deletedAt
string<date-time> | null

Timestamp when the wallet was deleted (if applicable).

displayName
string | null

Display name for the wallet.

kycOnChain
boolean | null

Whether KYC is marked on-chain for the wallet. Only present for Solana wallets; for other blockchains this field is omitted as on-chain KYC marking does not apply.

kycStatus
string | null

Current KYC verification status for the wallet. Only present for individual wallet calls. The approved_chain_deploying status indicates the user is approved but waiting for on-chain marking (Solana only).

signerPublicKey
string | null

For embedded (non-custodial) wallets, the compressed SEC1 P-256 public key of the owner key that authorizes transactions. Absent for bring-your-own wallets.