{
  "info": {
    "name": "Solana Developer Platform Public API",
    "description": "Public Postman collection generated from the SDP OpenAPI contract. Internal-only endpoint families are excluded.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{sdpApiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.solana.com",
      "type": "string"
    },
    {
      "key": "sdpApiKey",
      "value": "sk_test_your_api_key",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Health",
      "item": [
        {
          "name": "Health check",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/health",
            "description": "Returns service health and build metadata."
          }
        },
        {
          "name": "Readiness check",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/health/ready",
            "description": "Performs readiness checks for downstream dependencies."
          }
        }
      ]
    },
    {
      "name": "API Keys",
      "item": [
        {
          "name": "List API keys",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/api-keys",
            "description": "Lists API keys for the authenticated organization."
          }
        },
        {
          "name": "Create API key",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys",
            "description": "Creates a new API key. The full key is returned once.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Primary Key\",\n  \"description\": \"Used by backend service.\",\n  \"role\": \"api_developer\",\n  \"permissions\": [\n    \"tokens:read\",\n    \"tokens:write\"\n  ],\n  \"walletScope\": \"selected\",\n  \"allowedIps\": [\n    \"203.0.113.0/24\"\n  ],\n  \"expiresAt\": \"2025-12-31T00:00:00.000Z\",\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"signingWalletIds\": [\n    \"privy_wallet_123\",\n    \"dfns_wallet_456\"\n  ],\n  \"walletBindings\": [\n    {\n      \"walletId\": \"\",\n      \"permissions\": [\n        \"tokens:read\"\n      ]\n    }\n  ],\n  \"provisionWallet\": false,\n  \"walletLabel\": \"Mint authority wallet\",\n  \"walletPurpose\": \"mint_authority\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get API key",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}",
            "description": "Gets API key details by id."
          }
        },
        {
          "name": "Update API key",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}",
            "description": "Updates API key attributes. Use null to clear optional fields.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Primary Key Updated\",\n  \"description\": \"Rotated key for new service.\",\n  \"walletScope\": \"all\",\n  \"allowedIps\": [\n    \"203.0.113.0/24\"\n  ],\n  \"expiresAt\": \"2026-01-01T00:00:00.000Z\",\n  \"permissions\": [\n    \"tokens:read\",\n    \"tokens:write\"\n  ],\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"signingWalletIds\": [\n    \"privy_wallet_123\",\n    \"dfns_wallet_456\"\n  ],\n  \"walletBindings\": [\n    {\n      \"walletId\": \"\",\n      \"permissions\": [\n        \"tokens:read\"\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Deactivate API key",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}",
            "description": "Deactivates (soft deletes) an API key and invalidates it immediately.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"confirmation\": \"Primary Key\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create API-key policy profile",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}/policy-profiles",
            "description": "Creates a draft operation-level control profile for one API key.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Treasury service controls\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create API-key policy revision",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}/policy-profiles/{{profileId}}/revisions",
            "description": "Appends an immutable rule snapshot to an API-key control profile without activating it.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rules\": [\n    {\n      \"id\": \"deny-raw-signing\",\n      \"kind\": \"operation_family\",\n      \"family\": \"raw_sign\",\n      \"action\": \"deny\"\n    }\n  ],\n  \"defaultAction\": \"deny\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Activate API-key policy revision",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}/policy-profiles/{{profileId}}/revisions/{{revisionId}}/activate",
            "description": "Makes one immutable revision the active policy for its API-key control profile."
          }
        },
        {
          "name": "Replace or clear API-key policy bindings",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}/policy-bindings",
            "description": "Explicitly replaces the complete all-wallet/selected-wallet policy binding set, or clears it. Existing bindings are otherwise preserved by API-key updates and rotation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"replace\",\n  \"bindings\": [\n    {\n      \"bindingScope\": \"all\",\n      \"apiKeyControlProfileId\": \"\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Rotate API key",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/api-keys/{{keyId}}/rotate",
            "description": "Rotates an API key and returns the new key plus the old key grace period.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"gracePeriodHours\": 24\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Wallets",
      "item": [
        {
          "name": "Initialize wallet signing",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets/initialize",
            "description": "Initializes wallet signing for the organization or project by creating an active signing configuration.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"local\",\n  \"walletLabel\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Switch wallet signing provider",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets/switch",
            "description": "Selects an active provider config or exact Custody Connection as the default signing target for the requested scope. Existing on-chain authorities are not rotated.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"privy\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List wallets",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets",
            "description": "Lists wallets across all active providers for the requested scope. Use provider to filter to a specific provider."
          }
        },
        {
          "name": "Create wallet",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets",
            "description": "Provisions a new wallet for the resolved default signing provider configuration, or for an explicitly targeted provider.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"privy\",\n  \"label\": \"Mint authority wallet\",\n  \"purpose\": \"mint_authority\",\n  \"setDefault\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete wallet",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets",
            "description": "Deletes a wallet from the resolved default signing provider configuration, or from an explicitly targeted provider when that provider supports wallet deletion.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"anchorage\",\n  \"walletId\": \"anchorage_wallet_123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Set default wallet",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets/default-wallet",
            "description": "Sets the default wallet for the resolved default provider config, or for an explicitly targeted provider.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"privy\",\n  \"walletId\": \"privy_wallet_123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get wallet signing config",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/config",
            "description": "Returns the resolved default wallet signing configuration for the organization or project. Resolution is DB-backed only (no environment fallback)."
          }
        },
        {
          "name": "List wallet signing configs",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/configs",
            "description": "Returns active wallet signing configurations for the requested scope plus the resolved default configuration ID."
          }
        },
        {
          "name": "Aggregate wallet balances",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/aggregate",
            "description": "Aggregates tracked wallet balances for the requested scope. Defaults to aggregating across all active providers for the organization scope."
          }
        },
        {
          "name": "List switch provider options",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/switch-options",
            "description": "Returns provider capability metadata, including active/default status for the requested scope."
          }
        },
        {
          "name": "Get wallet public key",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/public-key",
            "description": "Returns the resolved wallet public key for transaction construction. Resolution is DB-backed only (no environment fallback)."
          }
        },
        {
          "name": "Check signer via memo transaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets/signer-check",
            "description": "Submits a memo transaction using the wallet bound to the authenticated API key. This endpoint requires API-key authentication.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"memo\": \"\",\n  \"walletId\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List wallet approval requests",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/approval-requests",
            "description": "Lists wallet operation approval requests for the authenticated organization or project scope."
          }
        },
        {
          "name": "Get wallet approval request",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/approval-requests/{{approvalRequestId}}",
            "description": "Returns one wallet operation approval request with operation and policy context."
          }
        },
        {
          "name": "Approve wallet approval request",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/approval-requests/{{approvalRequestId}}/approve",
            "description": "Approves a pending wallet operation approval request. The resolver must differ from the requester, including across a user session and API keys created by that user, and be an active member of the assigned approval group, or an organization/API admin when no group is assigned."
          }
        },
        {
          "name": "Reject wallet approval request",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/approval-requests/{{approvalRequestId}}/reject",
            "description": "Rejects a pending wallet operation approval request. The resolver must differ from the requester, including across a user session and API keys created by that user, and be an active member of the assigned approval group, or an organization/API admin when no group is assigned."
          }
        },
        {
          "name": "Cancel wallet approval request",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/approval-requests/{{approvalRequestId}}/cancel",
            "description": "Cancels a pending wallet operation approval request. The requester may cancel its own request; otherwise the resolver must be an active member of the assigned approval group, or an organization/API admin when no group is assigned. A user and the API keys they created are treated as the same requester."
          }
        },
        {
          "name": "Get wallet by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/wallets/{{walletId}}",
            "description": "Returns wallet metadata, custody provider, public key, and by default the current SOL balance for a specific wallet ID. Set includeBalance=false for metadata-only reads that must not call Solana RPC or pricing services. This endpoint requires authenticated access."
          }
        },
        {
          "name": "Update wallet",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/wallets/{{walletId}}",
            "description": "Updates editable wallet metadata such as the display label.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"label\": \"Treasury signer\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Projects",
      "item": [
        {
          "name": "List projects",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/projects",
            "description": "Lists projects in the organization."
          }
        },
        {
          "name": "Get project",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}",
            "description": "Gets project details."
          }
        },
        {
          "name": "Update project",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}",
            "description": "Updates project attributes.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Payments Updated\",\n  \"description\": \"Updated project description.\",\n  \"settings\": {\n    \"rpcProvider\": \"custom\",\n    \"rpcEndpoint\": \"https://rpc.example.com\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Archive project",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}",
            "description": "Archives a project and prevents future writes."
          }
        },
        {
          "name": "List project members",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/members",
            "description": "Lists members assigned to the project."
          }
        },
        {
          "name": "Add project member",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/members",
            "description": "Adds an organization member to the project.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"userId\": \"usr_example\",\n  \"role\": \"developer\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update project member",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/members/{{memberId}}",
            "description": "Updates a project member role.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"role\": \"admin\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Remove project member",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/members/{{memberId}}",
            "description": "Removes a member from the project."
          }
        },
        {
          "name": "List project API keys",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/api-keys",
            "description": "Lists API keys scoped to the project."
          }
        },
        {
          "name": "Create project API key",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/projects/{{projectId}}/api-keys",
            "description": "Creates an API key scoped to the project. The full key is returned once.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Primary Key\",\n  \"description\": \"Used by backend service.\",\n  \"role\": \"api_developer\",\n  \"permissions\": [\n    \"tokens:read\",\n    \"tokens:write\"\n  ],\n  \"walletScope\": \"selected\",\n  \"allowedIps\": [\n    \"203.0.113.0/24\"\n  ],\n  \"expiresAt\": \"2025-12-31T00:00:00.000Z\",\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"signingWalletIds\": [\n    \"privy_wallet_123\",\n    \"dfns_wallet_456\"\n  ],\n  \"walletBindings\": [\n    {\n      \"walletId\": \"\",\n      \"permissions\": [\n        \"tokens:read\"\n      ]\n    }\n  ],\n  \"provisionWallet\": false,\n  \"walletLabel\": \"Mint authority wallet\",\n  \"walletPurpose\": \"mint_authority\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Issuance",
      "item": [
        {
          "name": "List token templates",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/templates",
            "description": "Returns all available token templates with their default configuration and supported extensions."
          }
        },
        {
          "name": "Get token template",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/templates/{{templateId}}",
            "description": "Returns details for a specific token template including default decimals, required extensions, and available overrides."
          }
        },
        {
          "name": "List tokens",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens",
            "description": "Lists tokens for the current project or organization. Supports contains-style search, filtering and sorting; `meta.total` always reflects the active filters. Ordering carries an id tiebreaker, so paging is stable across tokens that share a timestamp or name."
          }
        },
        {
          "name": "Create token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens",
            "description": "Creates a token record that can later be deployed to Solana.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Example Token\",\n  \"symbol\": \"EXM\",\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"decimals\": 6,\n  \"description\": \"Example token description.\",\n  \"uri\": \"https://example.com/metadata.json\",\n  \"imageUrl\": \"https://example.com/token.png\",\n  \"maxSupply\": \"1000000\",\n  \"template\": \"stablecoin\",\n  \"overrides\": {\n    \"extensions\": {\n      \"transferFee\": {\n        \"basisPoints\": 50,\n        \"maxFee\": \"0.5\"\n      }\n    }\n  },\n  \"requiresAllowlist\": true,\n  \"isMintable\": true,\n  \"isFreezable\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List token filter facets",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/facets",
            "description": "Returns the filter choices available for the project's token list — template ids in use, counts per lifecycle state, and the unfiltered total. Deliberately unaffected by list filters, so a client can offer the full set of options while showing a filtered page."
          }
        },
        {
          "name": "List issuance transactions",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/transactions",
            "description": "Lists issuance transactions across tokens for the current organization or project. Selected-wallet API keys are scoped to their token-readable wallet bindings when walletId is omitted. Use repeated type query parameters, for example type=burn&type=force_burn, to request multiple transaction types."
          }
        },
        {
          "name": "Get token",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}",
            "description": "Gets token details."
          }
        },
        {
          "name": "Update token",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}",
            "description": "Updates stored token fields. For deployed tokens, metadata fields are also written on-chain through the current metadata authority.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Example Token Updated\",\n  \"symbol\": \"\",\n  \"decimals\": 0,\n  \"description\": \"Updated token description.\",\n  \"uri\": \"https://example.com/metadata.json\",\n  \"imageUrl\": \"https://example.com/token.png\",\n  \"status\": \"active\",\n  \"requiresAllowlist\": true,\n  \"maxSupply\": \"1000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get public token metadata JSON",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/metadata.json",
            "description": "Public, unauthenticated endpoint serving the SDP-hosted Token-2022 / Metaplex fungible-compatible metadata JSON for a deployed token. This is the URL burned into the on-chain MetadataPointer when the issuer doesn't supply their own URI. Only deployed (on-chain) tokens are served; pending drafts return 404."
          }
        },
        {
          "name": "Refresh cached token supply",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/supply/refresh",
            "description": "Fetches the current on-chain supply and refreshes the cached totalSupply value."
          }
        },
        {
          "name": "List token transactions",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/transactions",
            "description": "Lists token transactions for an issued token."
          }
        },
        {
          "name": "Get asset audit history",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/audit",
            "description": "Returns the aggregated audit history for an issued token: events logged against the token and its child resources (transactions, allowlist entries, frozen accounts), newest first. Supports filtering by action type."
          }
        },
        {
          "name": "Deploy token",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/deploy",
            "description": "Deploys the token to Solana using custody signing."
          }
        },
        {
          "name": "Prepare token deploy transaction",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/deploy/prepare",
            "description": "Builds an unsigned deploy transaction for client-side signing."
          }
        },
        {
          "name": "Confirm non-custodial deploy",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/deploy/confirm",
            "description": "Records the mint after the client signs and submits a prepared (non-custodial) deploy transaction. Verifies the transaction landed on-chain, then marks the token deployed.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signature\": \"5x...signature\",\n  \"mint\": \"So11111111111111111111111111111111111111112\",\n  \"listAddress\": \"So11111111111111111111111111111111111111112\",\n  \"signingWalletId\": \"privy_wallet_123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare metadata-URI follow-up transaction",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/deploy/prepare-metadata",
            "description": "Follow-up step for the non-custodial deploy flow. When prepareDeploy returns `metadataUriFollowUp.required` (the inline URI overflowed the create transaction), the client calls this after deploy/confirm to fetch an unsigned transaction that sets the metadata URI on-chain. Returns a null transaction when the on-chain URI already matches."
          }
        },
        {
          "name": "Prepare mint transaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/mint/prepare",
            "description": "Builds an unsigned mint transaction for client-side signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"mint\": {\n    \"destination\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"1000\",\n    \"memo\": \"Payout\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Execute mint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/mint",
            "description": "Mints tokens using custody signing and submission.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"mint\": {\n    \"destination\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"1000\",\n    \"memo\": \"Payout\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare burn transaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/burn/prepare",
            "description": "Builds an unsigned burn transaction for client-side signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"burn\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"1000\",\n    \"memo\": \"Correction\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Execute burn",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/burn",
            "description": "Burns tokens using custody signing and submission.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"burn\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"1000\",\n    \"memo\": \"Correction\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare seize transaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/seize/prepare",
            "description": "Builds an unsigned force transfer transaction for client-side signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"seize\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"destination\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"250\",\n    \"delegateAuthority\": \"So11111111111111111111111111111111111111112\",\n    \"memo\": \"Compliance seizure\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Execute seize",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/seize",
            "description": "Forces a transfer using permanent delegate authority.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"seize\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"destination\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"250\",\n    \"delegateAuthority\": \"So11111111111111111111111111111111111111112\",\n    \"memo\": \"Compliance seizure\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare force burn transaction",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/force-burn/prepare",
            "description": "Builds an unsigned force burn transaction for client-side signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"forceBurn\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"250\",\n    \"delegateAuthority\": \"So11111111111111111111111111111111111111112\",\n    \"memo\": \"Compliance burn\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Execute force burn",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/force-burn",
            "description": "Burns tokens using permanent delegate authority.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"forceBurn\": {\n    \"source\": \"So11111111111111111111111111111111111111112\",\n    \"amount\": \"250\",\n    \"delegateAuthority\": \"So11111111111111111111111111111111111111112\",\n    \"memo\": \"Compliance burn\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare authority update",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/authority/prepare",
            "description": "Builds an unsigned authority update transaction for client-side signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"authority\": {\n    \"role\": \"mint\",\n    \"newAuthority\": \"So11111111111111111111111111111111111111112\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Execute authority update",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/authority",
            "description": "Updates token authorities using custody signing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"authority\": {\n    \"role\": \"mint\",\n    \"newAuthority\": \"So11111111111111111111111111111111111111112\"\n  },\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Pause token transfers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/pause",
            "description": "Pauses transfers for a token using the pause authority.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Unpause token transfers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/unpause",
            "description": "Resumes transfers for a token using the pause authority.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"options\": {\n    \"priorityFee\": \"low\",\n    \"simulate\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Freeze account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/freeze",
            "description": "Freezes a token account to prevent transfers.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountAddress\": \"So11111111111111111111111111111111111111112\",\n  \"reason\": \"Compliance hold\",\n  \"signingWalletId\": \"privy_abcd1234\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Unfreeze account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/unfreeze",
            "description": "Unfreezes a token account so it can be used again.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountAddress\": \"So11111111111111111111111111111111111111112\",\n  \"signingWalletId\": \"privy_abcd1234\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List frozen accounts",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/frozen",
            "description": "Lists frozen accounts for a token."
          }
        },
        {
          "name": "List token allowlist",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/allowlist",
            "description": "Lists allowlist entries for a token."
          }
        },
        {
          "name": "Add token allowlist entry",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/allowlist",
            "description": "Adds an allowlist entry for a token.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"address\": \"So11111111111111111111111111111111111111112\",\n  \"label\": \"Treasury\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List token allowlist labels",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/allowlist/labels",
            "description": "Lists the distinct labels used across a token's active control-list entries, for building a label filter."
          }
        },
        {
          "name": "Remove token allowlist entry",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/allowlist/{{entryId}}",
            "description": "Removes an allowlist entry from a token."
          }
        },
        {
          "name": "List the workflow catalog for an asset",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/catalog",
            "description": "Returns the available triggers and the actions this asset supports (with a capability-gated support verdict per action)."
          }
        },
        {
          "name": "List workflow rules",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows",
            "description": "Returns the workflow automation rules configured for an asset."
          }
        },
        {
          "name": "Create a workflow rule",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows",
            "description": "Creates a WHEN → THEN automation rule. The action is capability-gated at save time; an unsupported action returns 400 with a typed reason.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"triggerType\": \"kyc_approved\",\n  \"actionType\": \"allowlist_add\",\n  \"condition\": {\n    \"all\": [\n      {\n        \"field\": \"\",\n        \"op\": \"eq\",\n        \"value\": \"\"\n      }\n    ]\n  },\n  \"actionParams\": {},\n  \"reviewMode\": \"auto\",\n  \"retryPolicy\": {\n    \"maxAttempts\": 0,\n    \"retryAfterMinutes\": 0\n  },\n  \"enabled\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update a workflow rule",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/{{workflowId}}",
            "description": "Updates a rule's condition, action params, review mode, retry policy, or enabled flag.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"condition\": {\n    \"all\": [\n      {\n        \"field\": \"\",\n        \"op\": \"eq\",\n        \"value\": \"\"\n      }\n    ]\n  },\n  \"actionParams\": {},\n  \"reviewMode\": \"auto\",\n  \"retryPolicy\": {\n    \"maxAttempts\": 0,\n    \"retryAfterMinutes\": 0\n  },\n  \"enabled\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete a workflow rule",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/{{workflowId}}",
            "description": "Soft-deletes a rule: it stops matching and disappears from lists, while its execution history is retained."
          }
        },
        {
          "name": "List workflow executions",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/executions",
            "description": "Execution log for an asset's workflows — recent runs with status and retry state."
          }
        },
        {
          "name": "Approve a held execution",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/executions/{{executionId}}/approve",
            "description": "Authorizes an awaiting-review execution: status becomes pending and the engine runs it once. Requires the permission implied by the rule's action tier — tokens:admin for sensitive and irreversible actions. Records the approver on the execution and in the audit log."
          }
        },
        {
          "name": "Retry a failed execution",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/executions/{{executionId}}/retry",
            "description": "Re-attempts a failed execution: status becomes pending and the attempt counter resets. Approving a held execution is a separate endpoint."
          }
        },
        {
          "name": "Reject a held execution",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/workflows/executions/{{executionId}}/reject",
            "description": "Cancels an awaiting-review execution; the action never runs."
          }
        },
        {
          "name": "List verified holders",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/holders",
            "description": "Returns the wallets enrolled for this asset (KYC identity + enrollment state)."
          }
        },
        {
          "name": "Enroll a verified holder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/tokens/{{tokenId}}/holders",
            "description": "Registers a wallet for this asset (upserts its KYC identity + an active enrollment). When the wallet's KYC is approved, matching workflows fire.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"walletAddress\": \"\",\n  \"counterpartyId\": \"\",\n  \"reviewMode\": \"auto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Payments",
      "item": [
        {
          "name": "Get wallet balances",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/balances",
            "description": "Retrieves balances for a custody wallet. Wallet lifecycle and provisioning are managed through /v1/wallets."
          }
        },
        {
          "name": "Get wallet policy",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/policies",
            "description": "Retrieves payment policy rules for a custody wallet. Policies are payment controls layered on top of custody-managed wallets."
          }
        },
        {
          "name": "Update wallet policy",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/policies",
            "description": "Updates payment policy rules for a custody wallet. Wallet provisioning and default selection remain in /v1/wallets.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"commitMessage\": \"Require approval for transfers above 10,000 USDC.\",\n  \"defaultAction\": \"allow\",\n  \"rules\": [\n    {\n      \"id\": \"deny-raw-signing\",\n      \"kind\": \"operation_family\",\n      \"family\": \"raw_sign\",\n      \"action\": \"deny\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List wallet policy revisions",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/policies/revisions",
            "description": "Returns immutable revisions for the wallet control profile in newest-first order, including the currently active revision reference."
          }
        },
        {
          "name": "List wallet policy evaluations",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/policies/evaluations",
            "description": "Returns paginated, filterable policy audit history for one wallet. Evaluation context is redacted and excludes raw provider payloads."
          }
        },
        {
          "name": "Get wallet policy evaluation",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/wallets/{{walletId}}/policies/evaluations/{{policyEvaluationId}}",
            "description": "Returns one policy evaluation with matched rules, redacted evaluation context, revision references, decision, status, reason, and approval linkage."
          }
        },
        {
          "name": "List transfers",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/transfers",
            "description": "Lists payment transfers for the authenticated organization or project scope."
          }
        },
        {
          "name": "Execute transfer (custody)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/transfers",
            "description": "Executes a transfer using server-side custody signing. The source walletId must reference a wallet from /v1/wallets. Private-transfer requests are provider-built, signed by SDP-controlled wallets when required, and submitted on the configured Solana cluster. Supply an Idempotency-Key to retry safely: an identical resolved request returns the original transfer, while reusing the key for a different request returns 409.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"prj_example\",\n  \"source\": \"privy_wallet_123\",\n  \"destination\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n  \"token\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n  \"amount\": \"100.00\",\n  \"memo\": \"\",\n  \"privateTransfer\": {\n    \"provider\": \"magicblock\",\n    \"magicBlock\": {\n      \"initIfMissing\": true,\n      \"initAtasIfMissing\": true,\n      \"maxDelayMs\": \"1000\"\n    }\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get transfer",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/transfers/{{transferId}}",
            "description": "Retrieves details for a specific transfer."
          }
        },
        {
          "name": "Estimate transfer batch",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/transfer-batches/estimate",
            "description": "Validates a transfer batch request and estimates transaction chunking and fees. This route is scaffolded; estimation is not implemented yet.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"prj_example\",\n  \"externalId\": \"payroll_2026_06_30\",\n  \"source\": \"privy_wallet_123\",\n  \"token\": \"SOL\",\n  \"recipients\": [\n    {\n      \"externalId\": \"payroll_row_001\",\n      \"counterpartyId\": \"cp_example\",\n      \"counterpartyAccountId\": \"cpa_example\",\n      \"amount\": \"25.00\"\n    }\n  ],\n  \"options\": {\n    \"maxRecipientsPerTransaction\": 20,\n    \"priorityFee\": \"auto\",\n    \"preflight\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List transfer batches",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/transfer-batches",
            "description": "Lists transfer batches for the authenticated organization or project scope."
          }
        },
        {
          "name": "Create transfer batch",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/transfer-batches",
            "description": "Executes a custody-signed outbound transfer batch to counterparty crypto-wallet accounts, chunks recipients into Solana transactions, and returns the batch, recipient, and transfer records. Supply an Idempotency-Key to retry safely: an identical resolved request returns the original batch without another on-chain submission, while reusing the key for a different request returns 409.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"projectId\": \"prj_example\",\n  \"externalId\": \"payroll_2026_06_30\",\n  \"source\": \"privy_wallet_123\",\n  \"token\": \"SOL\",\n  \"recipients\": [\n    {\n      \"externalId\": \"payroll_row_001\",\n      \"counterpartyId\": \"cp_example\",\n      \"counterpartyAccountId\": \"cpa_example\",\n      \"amount\": \"25.00\"\n    }\n  ],\n  \"options\": {\n    \"maxRecipientsPerTransaction\": 20,\n    \"priorityFee\": \"auto\",\n    \"preflight\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get transfer batch",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/transfer-batches/{{batchId}}",
            "description": "Retrieves a transfer batch with recipient rows and chunk transfer summaries."
          }
        },
        {
          "name": "List recurring payments",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments",
            "description": "Lists SDP-custody outbound recurring payments for the authenticated organization or project scope."
          }
        },
        {
          "name": "Create recurring payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/recurring-payments",
            "description": "Creates an SDP-custody outbound recurring payment intent from a custody wallet to a counterparty crypto-wallet account. This stores backend state only; activation and collection are added by follow-up endpoints.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourceWalletId\": \"privy_wallet_123\",\n  \"counterpartyId\": \"cp_example\",\n  \"counterpartyAccountId\": \"cpa_example\",\n  \"token\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n  \"amount\": \"25.00\",\n  \"periodHours\": 720,\n  \"firstCollectionAt\": \"2099-01-01T00:00:00.000Z\",\n  \"metadataUri\": \"https://example.com/subscriptions/monthly-usdc.json\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get recurring payment",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}",
            "description": "Retrieves an SDP-custody outbound recurring payment record."
          }
        },
        {
          "name": "Update recurring payment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}",
            "description": "Updates an SDP-custody recurring payment. Pending records are updated directly. Active metadata and due-date edits are applied in place, while active term, source, destination, or token edits create a replacement Solana subscription, authorize it, cancel the old subscription, and then swap the recurring payment to the replacement records.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourceWalletId\": \"privy_wallet_123\",\n  \"counterpartyId\": \"cp_example\",\n  \"counterpartyAccountId\": \"cpa_example\",\n  \"token\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n  \"amount\": \"25.00\",\n  \"periodHours\": 720,\n  \"firstCollectionAt\": \"2099-01-01T00:00:00.000Z\",\n  \"nextCollectionDueAt\": \"2099-02-01T00:00:00.000Z\",\n  \"metadataUri\": \"https://example.com/subscriptions/monthly-usdc.json\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Activate recurring payment",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}/activate",
            "description": "Activates a pending SDP-custody recurring payment by creating the Solana subscriptions plan, authorizing the subscription, and storing the resulting on-chain identifiers and signatures."
          }
        },
        {
          "name": "Cancel recurring payment",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}/cancel",
            "description": "Cancels an active SDP-custody recurring payment by submitting the Solana subscriptions cancellation transaction and storing the resulting lifecycle state."
          }
        },
        {
          "name": "Collect recurring payment",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}/collect",
            "description": "Manually collects a due active SDP-custody recurring payment by submitting the Solana subscriptions collection transaction, creating a linked payment transfer, recording the collection attempt, and advancing the next due time."
          }
        },
        {
          "name": "Resume recurring payment",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/recurring-payments/{{id}}/resume",
            "description": "Resumes a canceled SDP-custody recurring payment by submitting the Solana subscriptions resume transaction and restoring the recurring payment to active status."
          }
        },
        {
          "name": "List subscription plans",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/subscription-plans",
            "description": "Lists recurring-payment subscription plans."
          }
        },
        {
          "name": "Create subscription plan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscription-plans",
            "description": "Creates a recurring-payment subscription plan record. This stores SDP backend state and Solana subscriptions program identifiers; it does not by itself create the on-chain plan.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ownerWalletId\": \"wal_merchant\",\n  \"token\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n  \"amount\": \"25.00\",\n  \"periodHours\": 720,\n  \"programPlanId\": \"17014118346046923173\",\n  \"planPda\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n  \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n  \"pullerWalletId\": \"wal_collector\",\n  \"metadataUri\": \"https://example.com/subscriptions/monthly-usdc.json\",\n  \"status\": \"active\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare subscription plan creation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscription-plans/{{planId}}/prepare-create",
            "description": "Prepares an unsigned Solana subscriptions program create-plan transaction from an SDP subscription plan. This derives and stores the plan PDA but does not submit the transaction.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"destinations\": [\n    \"\"\n  ],\n  \"pullers\": [\n    \"\"\n  ],\n  \"endTs\": \"1770000000\",\n  \"metadataUri\": \"https://example.com/subscriptions/monthly-usdc.json\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get subscription plan",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/subscription-plans/{{planId}}",
            "description": "Retrieves a recurring-payment subscription plan record."
          }
        },
        {
          "name": "Update subscription plan",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscription-plans/{{planId}}",
            "description": "Updates mutable subscription plan fields and on-chain identifiers.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"planPda\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n  \"destinationAddress\": \"\",\n  \"pullerWalletId\": \"wal_collector\",\n  \"metadataUri\": \"https://example.com\",\n  \"status\": \"active\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List subscriptions",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/subscriptions",
            "description": "Lists recurring-payment subscriptions."
          }
        },
        {
          "name": "Create subscription",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscriptions",
            "description": "Creates a recurring-payment subscription record tied to a counterparty. The customer must still sign the Solana subscription authorization transaction.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"planId\": \"psp_example\",\n  \"counterpartyId\": \"counterparty_example\",\n  \"subscriberAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare subscription authorization",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}/prepare-authorization",
            "description": "Prepares the subscriber-signed Solana transaction that initializes the subscription authority and subscribes to the plan. The transaction must still be signed and submitted by the client.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"subscriberTokenAccount\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n  \"expectedPlanCreatedAt\": \"0\",\n  \"expectedSubscriptionAuthorityInitId\": \"0\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare subscription cancellation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}/prepare-cancel",
            "description": "Prepares the subscriber-signed Solana transaction that cancels a subscription. The transaction must still be signed and submitted by the client.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare subscription resume",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}/prepare-resume",
            "description": "Prepares the subscriber-signed Solana transaction that resumes a canceled subscription before revocation. The transaction must still be signed and submitted by the client.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Prepare subscription collection",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}/prepare-collection",
            "description": "Prepares the collector-signed Solana subscriptions transfer transaction for an active subscription. The transaction must still be signed and submitted by the collector/fee-payer flow.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"receiverTokenAccount\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get subscription",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}",
            "description": "Retrieves a recurring-payment subscription record."
          }
        },
        {
          "name": "List subscription collection attempts",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/subscriptions/{{subscriptionId}}/collection-attempts",
            "description": "Lists collection attempts for a recurring-payment subscription."
          }
        },
        {
          "name": "List on-ramp currency support",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/ramps/onramp/currency",
            "description": "Lists generated fiat-to-crypto on-ramp pairs and the providers that support each pair. Supports optional source, destination rail, and provider filters."
          }
        },
        {
          "name": "List off-ramp currency support",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/payments/ramps/offramp/currency",
            "description": "Lists generated crypto-to-fiat off-ramp pairs and the providers that support each pair. Supports optional source rail, destination fiat, and provider filters."
          }
        },
        {
          "name": "Create on-ramp quote",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/ramps/onramp/quote",
            "description": "Creates a provider-specific on-ramp quote. Hosted providers return a hosted URL; instruction-based providers return manual funding instructions.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"moonpay\",\n  \"counterpartyId\": \"counterparty_example\",\n  \"destinationWallet\": \"privy_wallet_123\",\n  \"cryptoToken\": \"USDC\",\n  \"fiatCurrency\": \"USD\",\n  \"fiatAmount\": \"100.00\",\n  \"redirectUrl\": \"https://example.com/onramp/complete\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Simulate sandbox transfer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/payments/ramps/sandbox/simulate",
            "description": "Sandbox-only helper that simulates provider-specific transfer completion flows.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"provider\": \"lightspark\",\n  \"payload\": {\n    \"quoteId\": \"\",\n    \"currencyCode\": \"USD\",\n    \"currencyAmount\": 0\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Policies",
      "item": [
        {
          "name": "List policy controls",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/policies",
            "description": "Lists wallet and API-key control targets in one paginated inventory. Every target, profile, binding, and evaluation is scoped to the authenticated organization and exact project."
          }
        }
      ]
    },
    {
      "name": "Compliance",
      "item": [
        {
          "name": "Screen an address across configured compliance providers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/compliance/address-screenings",
            "description": "Runs address screening against configured compliance providers and returns provider-level risk scores.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"address\": \"8dHEsGLpCZHZbXnFVvqWq4kMfM2pVDuNrXvVJVhQWRGZ\",\n  \"network\": \"solana\",\n  \"intent\": \"transfer_destination\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Asset Profiles",
      "item": [
        {
          "name": "Get asset profile field options",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles/field-options",
            "description": "Returns the supported asset categories and the asset types available within each, for building an asset profile form."
          }
        },
        {
          "name": "List asset profiles",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles",
            "description": "Lists asset profiles for the authenticated organization and project."
          }
        },
        {
          "name": "Create token with asset profile",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles",
            "description": "Creates an issued token and its asset profile atomically in a single transaction: if either write fails, both roll back, so a token is never persisted without a profile. Requires the Asset Profiles feature to be enabled.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Example Token\",\n  \"symbol\": \"EXM\",\n  \"signingWalletId\": \"privy_wallet_123\",\n  \"decimals\": 6,\n  \"description\": \"Example token description.\",\n  \"uri\": \"https://example.com/metadata.json\",\n  \"imageUrl\": \"https://example.com/token.png\",\n  \"maxSupply\": \"1000000\",\n  \"template\": \"stablecoin\",\n  \"overrides\": {\n    \"extensions\": {\n      \"transferFee\": {\n        \"basisPoints\": 50,\n        \"maxFee\": \"0.5\"\n      }\n    }\n  },\n  \"requiresAllowlist\": true,\n  \"isMintable\": true,\n  \"isFreezable\": true,\n  \"assetCategory\": \"stablecoin\",\n  \"assetType\": \"fiat_backed\",\n  \"issuanceMetadata\": {\n    \"asset\": {\n      \"name\": \"Acme USD\",\n      \"issuerName\": \"Acme Financial Inc.\",\n      \"pegCurrency\": \"USD\"\n    },\n    \"compliance\": {\n      \"transferRestrictions\": \"reg_d\"\n    },\n    \"chain\": {\n      \"decimals\": 6\n    },\n    \"custom\": {\n      \"customer\": {\n        \"internalDeskId\": \"FX-22\"\n      },\n      \"integration\": {}\n    }\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get asset profile by token",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles/by-token/{{tokenId}}",
            "description": "Gets the active asset profile for an issued token, if one exists."
          }
        },
        {
          "name": "Get asset profile",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles/{{profileId}}",
            "description": "Gets an asset profile by id."
          }
        },
        {
          "name": "Update asset profile",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles/{{profileId}}",
            "description": "Updates an asset profile. At least one field must be provided. The resulting category/type pair must be supported. Public metadata is recomputed when metadata or the asset type changes; set issuanceMetadata.visibility.public to control which fields are exposed (asset.* and chain.decimals only).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"assetCategory\": \"stablecoin\",\n  \"assetType\": \"fiat_backed\",\n  \"issuanceMetadata\": {\n    \"asset\": {\n      \"name\": \"Acme USD\",\n      \"issuerName\": \"Acme Financial Inc.\",\n      \"pegCurrency\": \"USD\",\n      \"website\": \"https://acme.example\"\n    },\n    \"compliance\": {\n      \"transferRestrictions\": \"reg_d\"\n    },\n    \"chain\": {\n      \"decimals\": 6\n    },\n    \"custom\": {\n      \"customer\": {\n        \"internalDeskId\": \"FX-22\"\n      },\n      \"integration\": {}\n    },\n    \"visibility\": {\n      \"public\": [\n        \"asset.name\",\n        \"asset.issuerName\",\n        \"asset.pegCurrency\",\n        \"chain.decimals\"\n      ]\n    },\n    \"settings\": {\n      \"version\": 1,\n      \"selected\": {\n        \"pauseTransfers\": {},\n        \"freezeAccounts\": {},\n        \"transferFee\": {\n          \"params\": {\n            \"basisPoints\": 50,\n            \"maxFee\": \"100\"\n          }\n        }\n      }\n    }\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Archive asset profile",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": "{{baseUrl}}/v1/issuance/asset-profiles/{{profileId}}",
            "description": "Archives an asset profile. Archived profiles are hidden from default lists."
          }
        }
      ]
    }
  ]
}
