POST
/
v1
/
portfolio
/
create
curl --request POST \
  --url '/v1/portfolio/create' \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: your_api_key_here' \
  --data '{
    "userAddress": "0xYourWalletAddress",
    "chainIds": [8453],
    "accountIndex": 0,
    "kernelVersion": "0.3.2",
    "signatureAction": {
      "reason": "portfolio-permission",
      "type": "personal_sign",
      "message": "I authorize Glider to manage my portfolio\n\n0x8ad4d95c3c3d0a1e87bfdb1d2401905db4a97d8e05e77d69e5d79397da128b81"
    },
    "signature": "0xYourSignatureFromWallet",
    "templateData": {
      "name": "70/30 ETH-USDC Portfolio",
      "description": "A simple portfolio with 70% ETH and 30% USDC allocation",
      "entry": {
        "blockType": "weight",
        "weightType": "specified-percentage",
        "weightings": ["70", "30"],
        "children": [
          {
            "blockType": "asset",
            "assetId": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:8453"
          },
          {
            "blockType": "asset",
            "assetId": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913:8453"
          }
        ]
      }
    }
  }'
{
  "success": true,
  "data": {
    "portfolioId": "port_abc123",
    "message": "Portfolio created successfully",
    "vaults": [
      {
        "chainId": "8453",
        "address": "0xPortfolioVaultAddress"
      }
    ],
    "template": {
      "blueprintId": "tmpl_xyz789",
      "editId": "edit_abc123",
      "version": 1,
      "name": "70/30 ETH-USDC Portfolio"
    }
  },
  "correlationId": "corr_abc123",
  "requestId": "req_xyz789",
  "timestamp": "2023-05-21T12:34:56.789Z"
}

Creates a new portfolio using the signed message from the previous step.

userAddress
string
required

The Ethereum address of the user who will own the portfolio

chainIds
number[]
required

Array of chain IDs where the portfolio will operate

accountIndex
number
default:"0"

The account index

kernelVersion
string
required

The kernel version (from signature request response)

signatureAction
object
required

The signature action object from the signature request response

signature
string
required

The signature obtained from the user’s wallet

templateData
object

Optional template data to initialize the portfolio

X-API-KEY
string
required

Your API key for authentication

Content-Type
string
default:"application/json"

The format of the request body

curl --request POST \
  --url '/v1/portfolio/create' \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: your_api_key_here' \
  --data '{
    "userAddress": "0xYourWalletAddress",
    "chainIds": [8453],
    "accountIndex": 0,
    "kernelVersion": "0.3.2",
    "signatureAction": {
      "reason": "portfolio-permission",
      "type": "personal_sign",
      "message": "I authorize Glider to manage my portfolio\n\n0x8ad4d95c3c3d0a1e87bfdb1d2401905db4a97d8e05e77d69e5d79397da128b81"
    },
    "signature": "0xYourSignatureFromWallet",
    "templateData": {
      "name": "70/30 ETH-USDC Portfolio",
      "description": "A simple portfolio with 70% ETH and 30% USDC allocation",
      "entry": {
        "blockType": "weight",
        "weightType": "specified-percentage",
        "weightings": ["70", "30"],
        "children": [
          {
            "blockType": "asset",
            "assetId": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:8453"
          },
          {
            "blockType": "asset",
            "assetId": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913:8453"
          }
        ]
      }
    }
  }'
{
  "success": true,
  "data": {
    "portfolioId": "port_abc123",
    "message": "Portfolio created successfully",
    "vaults": [
      {
        "chainId": "8453",
        "address": "0xPortfolioVaultAddress"
      }
    ],
    "template": {
      "blueprintId": "tmpl_xyz789",
      "editId": "edit_abc123",
      "version": 1,
      "name": "70/30 ETH-USDC Portfolio"
    }
  },
  "correlationId": "corr_abc123",
  "requestId": "req_xyz789",
  "timestamp": "2023-05-21T12:34:56.789Z"
}