Skip to main content
All requests require an API key via the X-API-Key header. See Authentication for details.

Overview

Before a wallet can interact with any action endpoint, it must be registered as a Turtle member. Membership links a wallet address to a Turtle user, which is what enables deposit attribution and revenue tracking. Supported ecosystems are EVM (Ethereum, Arbitrum, Base, and every supported EVM chain), Solana, and TON. The Membership API follows a three-step flow that proves wallet ownership: check membership, request a sign-in message, then submit the signed message.
Action endpoints reject an unregistered wallet.

Authentication Flow

1

Check Membership Status

Verify if a wallet address is already associated with a Turtle account
2

Request Signature Agreement

Generate a message that must be signed by the wallet to prove ownership
3

Create Membership

Submit the signed message to create a new user account and associate the wallet

Endpoints

Check Membership Status

GET /v2/membership/
Query Parameters
address
string
required
The wallet address to check
walletEcosystem
string
default:"evm"
The blockchain ecosystem. Supported values: evm, solana, ton

Response Example

Response Fields

isMember
boolean
Whether the wallet address is already associated with a Turtle account.

Request Signature Agreement

POST /v2/membership/agreement
Request Body
address
string
required
The wallet address requesting membership
walletEcosystem
string
required
The blockchain ecosystem. Supported values: evm, solana, ton
url
string
required
The URL of the application (used in the signature message)
chainId
string
default:"1"
The chain ID for EVM wallets. Not required for Solana or TON

Response Example

Response Fields

nonce
string
A single-use nonce that must be included when submitting the signed message.
message
string
The EIP-4361 sign-in message the wallet must sign to prove ownership.

Create Membership

POST /v2/membership/
Request Body
address
string
required
The wallet address creating the membership
walletEcosystem
string
required
The blockchain ecosystem. Supported values: evm, solana, ton
signature
string
required
The signature of the message returned by the agreement endpoint
nonce
string
required
The nonce returned by the agreement endpoint
distributorId
string
The distributor ID to associate the membership with. When provided, the user will be tracked as having signed up through the distributor’s integration.

Response Example

Response Fields

isMember
boolean
Whether the wallet is now a registered Turtle member.
error
string
An error message when the request fails, or an empty string on success.

Complete Flow Example

Here’s a complete example of the membership creation flow:
curl

Error Handling

Common Errors

Status Code: 400 Bad RequestResponse:
Solution: Use one of the supported ecosystems: evm, solana, or ton
Status Code: 400 Bad RequestResponse:
Solution: Ensure the wallet address is valid for the specified ecosystem
Status Code: 409 ConflictResponse:
Solution: This wallet is already associated with an account. You do not need to create a new membership.
Status Code: 400 Bad RequestResponse:
Solution: Request a new agreement and sign it promptly. Nonces expire after a short period

Security Considerations

Never share your private keys or seed phrases. The API only requires signatures, not private keys.
  • Nonces are single-use and expire after a short period
  • Messages follow the EIP-4361 standard for EVM wallets
  • All signatures are verified server-side before creating accounts