# Wallets

## Wallets API

### POST `/sign`

Sign a message with the user’s wallet.

```json
{
  "address": "string",
  "userId": "uuid",
  "message": "string",
  "network": "Solana" | "Ethereum",
  "requestId": "string"
}
```

**Success**

```json
{ "id": "encoded-user-id", "signature": "string" }
```

**Errors**: 400 invalid inputs; 401 invalid session; 500 signing failed.

***

### GET `/address`

Return the corresponding wallet address on a different network **with attestation**.\
**Query**

* `address`: source wallet
* `network`: `"Solana" | "Ethereum"`
* `target_network`: `"Solana" | "Ethereum"`

**Success**

```json
{
  "result": {
    "address": "string",
    "network": "string",
    "target_address": "string",
    "target_network": "string"
  },
  "signature": "base64",
  "attestation": { "id": "string", "type": "SGX", "quote": "string" }
}
```

**Errors**: 400 target == source; 404 wallet not found/target unavailable; 500 DB/attestation error.
