Picnic agents is in early access — read-only access only for now.
EN
Docs
Tools
get_profile

get_profile

Get the authenticated user's account identifier, on/off-ramp KYC keyed by fiat currency, card products, and Picnic security configuration. Sensitive details (name, taxId, birthdate, profile picture, address, phone, raw passkey crypto material) are intentionally omitted.

Required scope: read:profile

Parameters: none.

Returned fields:

FieldTypeDescription
userIdstringInternal Picnic user ID.
emailstring | nullAccount email.
ramps.<currency>arrayList of KYC entries the user has for that fiat on/off-ramp (e.g. ramps.brl, ramps.eur). A currency key only appears if the user has onboarded at least one provider for it; an empty ramps: {} means no fiat onboarding anywhere. Multiple providers may serve the same currency (e.g. both BRLA and Avenia for BRL).
ramps.<currency>[].providerstringUnderlying provider — brla, avenia, monerium.
ramps.<currency>[].statusstringNormalized KYC status — one of none, pending, approved, rejected.
ramps.<currency>[].levelnumberRaw provider KYC level (BRLA, Avenia). Present when the provider exposes a numeric level.
ramps.<currency>[].statestringRaw Monerium profile state — one of created, pending, approved, rejected, blocked.
cardsarrayList of card products the user has. Empty [] if none.
cards[].providerstringCard provider — currently always gnosisPay.
cards[].statusstringNormalized status — one of none, pending, approved, rejected.
cards[].rawstringRaw provider status. For Gnosis Pay, one of: notStarted, documentsRequested, pending, processing, resubmissionRequested, requiresAction, approved, rejected, temporaryRejected, error.
security.levelnumberPicnic security tier — 1 (EOA-only) or 2 (passkey + recovery). The agents-server only admits L2 callers, so this is effectively always 2.
security.activebooleanWhether the security config is currently active.
security.setup.signerstringSigner kind — typically passkey.
security.setup.recoverystringRecovery method — typically magic.
security.activePasskey.signerAddressstringEOA address derived from the active passkey, useful for cross-referencing the signer in get_smart_accounts.

Each subfield under security is omitted when not configured.

Example response:

{
  "userId": "...",
  "email": "user@example.com",
  "ramps": {
    "brl": [
      { "provider": "brla", "status": "approved", "level": 2 },
      { "provider": "avenia", "status": "pending", "level": 1 }
    ],
    "eur": [
      { "provider": "monerium", "status": "approved", "state": "approved" }
    ]
  },
  "cards": [
    { "provider": "gnosisPay", "status": "approved", "raw": "approved" }
  ],
  "security": { "level": 2, "active": true, "setup": { "signer": "passkey", "recovery": "magic" }, "activePasskey": { "signerAddress": "0x..." } }
}

Example prompt:

"What's my Picnic account email, security tier, and which fiat ramps am I KYC'd for?"