{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6fc8c684-94a3-4daa-aa2b-60e99545653d","name":"Foundry Staking API Documentation","description":"# About\n\nThe Foundry Staking API is an API used to query for on chain data about wallets that are delegating to Foundry Staking's public validators, or are related to a Foundry Staking private validator. The Foundry Staking API can also be used to query for information on the protocols that Foundry Staking supports.\n\n# Authentication gfhfg\n\n#### JWT Authentication\n\nUsers authenticate through the `/api/v1/login` endpoint, and retrieve a login code. This code can be exchanged for an access token through the `/api/v1/tokens` endpoint which can be supplied in the Authorization header as a Bearer token. This `/api/v1/tokens` endpoint also returns a refresh token which can be used to get a new access token.\n\n#### API Key Authentication\n\nUsers can create API keys for themselves for more convenient access to the API. API keys are intended to be used as machine access to the API, and eliminates the need to refresh a JWT since these expire after a short duration. Your API key contains a set of permissions that must be a subset of the permission that are in the JWT used to create the API key. The auth endpoints provide ways to interact with your current keys.\n\nTo make requests with an API key, provide your API key in the request headers, with a key of `apikey` and value of your API key.\n\n#### Which Endpoints Require Authentication?\n\nEach endpoint that lists 'Permissions Required' in its description requires either an API key or JWT to be provided for authentication. The API key or JWT must contain that permission in order to access said endpoint.\n\n#### Roles\n\nEach Foundry Staking API user has a role. A role is a set of permissions that defines what a user can access. A user can only have a single role at a time. You can view your role through the GET `/api/v1/users/:userID` endpoint. You can view the permissions that your role has through the GET `/api/v1/roles/:roleID` endpoint. API keys do not have a role, they have a custom set of permissions that are defined when creating the key, i.e. if you need a specific set of permissions to only allow a user access to specific things, use an API key. The current roles and their permissions are...\n\n1. **Viewer** - Has read access within an organization.\n    1. read:organization\n        \n    2. read:protocols\n        \n    3. read:roles\n        \n    4. read:users\n        \n    5. read:wallets\n        \n2. **Admin** - Has read and write access within an organization.\n    1. All permissions that the **Viewer** has, plus...\n        \n    2. read:apikeys\n        \n    3. read:walletaddress\n        \n    4. write:apikeys\n        \n    5. write:organization\n        \n    6. write:roles\n        \n    7. write:users\n        \n    8. write:wallets\n        \n\n# Errors\n\nThey typical error format that is returned from the Foundry Staking API follows is as follows...\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"error kind\",\n        \"param\": \"error param\",\n        \"message\": \"error message\",\n        \"request_id\": 01234\n    }\n}\n\n ```\n\n##### Kind\n\nThe error Kind is represents the class of error. This is similar to the string value of an HTTP status code. You can see multiple error Kind's per HTTP status code, however an error Kind will only ever be returned under a single HTTP status code. To change this would be considered a breaking change.\n\n##### Param\n\nThe param field represents the parameter that this error is associated with (if any). You will typically see a param's returned with 400, 404, and 409 HTTP status code errors. This is meant to be a helpful debugging field, so that you know what request parameter the API could not accept. Note that the inclusion of the param field in the error response is OPTIONAL. Thus, do not rely on the param field always being present, even for 400, 404, and 409 status codes.\n\n##### Message\n\nThe message field is a human readable representation of the error. The message field will always be included, unlike the param field. This is another field intended to help with debugging, and should not be used to identify the error.\n\n##### Request ID\n\nThe request ID field is an optional field (so sometimes this will be undefined) that contains helpful debugging information for Foundry related to your particular error. If you contact Foundry support and your error contains a `request_id` field, please be sure to include it in your support ticket.\n\n### Generic Error Types\n\nBelow are examples of generic error types that apply to all endpoints. You an expect to see this on every endpoint, however these are not included in the example responses on each request for brevity.\n\n##### Forbidden\n\nHTTP status code - 403 Forbidden. In the below example, the token provided in the Authorization header is expired. Most likely this is due to some claims with your JWT being invalid. A fix for this would be to refresh your JWT.\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"unauthorized request\",\n        \"message\": \"validation failed, token is expired (exp)\"\n    }\n}\n\n ```\n\nIn the next example, the permissions within your JWT did not match the permissions required to use the requested endpoint. To fix this, contact your organizations admin to add permissions to your account, or contact your Foundry Customer Success Manager to add permissions to your account.\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"unauthorized request\",\n        \"message\": \"You do not have of the permissions to access or modify this resource. If you think this is a mistake, please contact your Foundry Customer Success Manager\"\n    }\n}\n\n ```\n\n##### Unauthorized\n\nHTTP status code - 401 Unauthorized. In the below example, no authentication method was provided for an endpoint that requires authentication. See the Authentication section above for valid authentication methods.\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"unauthenticated request\",\n        \"message\": \"authentication not provided\"\n    }\n}\n\n ```\n\n##### Internal Error\n\nHTTP status code - 500 Internal Service Error. In the below example, something went wrong on Foundy's server that was not a result of an invalid client request. If this happens, please try your request again. If this error persists, please contact your Foundry Customer Success Manager.\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"internal error\",\n        \"message\": \"internal server error - please contact support\"\n    }\n}\n\n ```\n\n##### Validation\n\nHTTP status code - 400 Bad Request. In the below example, a request parameter did not pass validation. You should fix whatever the `message` or `param` field indicate is the problem, and try your request again. Below, the request parameter `include_disabled` did not pass validation.\n\n``` json\n{\n    \"error\": {\n        \"kind\": \"input validation error\",\n        \"param\": \"include_disabled\",\n        \"message\": \"include_disabled has an invalid value\"\n    }\n}\n\n ```\n\n### Error Examples\n\nAlong with each request, you will find examples of potential errors that can be returned from that endpoint. We have tried to include the majority of the potential error `kind`'s that can be returned from the endpoints (excluding the above error kinds). However, the examples should not be treated as a comprehensive list of all errors that will ever be returned from an endpoint. Additionally, you should not tie any functionality directly to an error's `message` field, since this is subject to change.\n\n# Rate Limiting\n\nYou can find information about the rate limit totals, as well as your remaining rate limit in the headers of any response to the API. Rate limiting is currently based off of IP address, **NOT** off of JWT or API key. i.e. if you have multiple API consumers using a single IP address, a single rate limit will be applied to all consumers, even if they are using different JWT's or API keys.\n\n### Headers\n\nThe returned headers are described below...\n\n| **Header** | **Description** |\n| --- | --- |\n| X-RateLimit-Remaining-Second | The amount of requests you have remaining this second. |\n| X-RateLimit-Remaining-Minute | The amount of requests you have remaining this minute. |\n| X-RateLimit-Remaining-Hour | The amount of requests you have remaining this hour. |\n| X-RateLimit-Limit-Second | The total amount of requests that you can make in one second. |\n| X-RateLimit-Limit-Minute | The total amount of requests you can make in one minute. |\n| X-RateLimit-Limit-Hour | The total amount of request that you can make in one hour. |\n\n### Current Values\n\nCurrently, a single rate limit applies for everyone, below are those current rate limit values.\n\n| **Interval** | **Amount** |\n| --- | --- |\n| Second | 20 |\n| Minte | 100 |\n| Hour | 1000 |\n\n# Type Reference\n\n### Go\n\n``` go\npackage types\nimport (\n    \"math/big\"\n    \"time\"\n    \"github.com/gofrs/uuid\"\n    \"gorm.io/datatypes\"\n)\n//////////\n// Auth //\n//////////\n// GET v1/tokens\ntype GetTokensResponse struct {\n    AccessToken  string `json:\"access_token,omitempty\"`\n    IDToken      string `json:\"id_token,omitempty\"`\n    RefreshToken string `json:\"refresh_token,omitempty\"`\n}\n// POST v1/tokens\ntype PostRefreshJWTResponse struct {\n    AccessToken string `json:\"access_token,omitempty\"`\n    IDToken     string `json:\"id_token,omitempty\"`\n}\n// POST v1/reset-password\ntype PostResetPasswordRequest struct {\n    Email   string `json:\"email\"`\n    OrgName string `json:\"org_name\"`\n}\ntype PostResetPasswordResponse struct{}\n// GET v1/apikeys\ntype GetAPIKeysResponse struct {\n    APIKeys []struct {\n        Id          string   `json:\"id\"`\n        Apikey      string   `json:\"api_key\"`\n        Name        string   `json:\"name\"`\n        Permissions []string `json:\"permissions,omitempty\"`\n    } `json:\"data\"`\n}\n// POST v1/apikeys\ntype PostAPIKeysRequest struct {\n    Name        string   `json:\"name\"`\n    Permissions []string `json:\"permissions\"`\n}\ntype PostAPIKeysResponse struct {\n    Id          string   `json:\"id\"`\n    Apikey      string   `json:\"api_key\"`\n    Name        string   `json:\"name\"`\n    Permissions []string `json:\"permissions,omitempty\"`\n}\n// PATCH v1/apikeys/{id}\ntype PatchAPIKeysRequest struct {\n    Name string `json:\"name\"`\n}\ntype PatchAPIKeysResponse struct {\n    Id          string   `json:\"id\"`\n    Apikey      string   `json:\"api_key\"`\n    Name        string   `json:\"name\"`\n    Permissions []string `json:\"permissions,omitempty\"`\n}\n///////////////////\n// Organizations //\n///////////////////\n// GET v1/organizations\ntype GetOrganizationsResponse struct {\n    Organizations []Organization `json:\"data,omitempty\"`\n    PageNumber    int            `json:\"page_number,omitempty\"`\n    PageLimit     int            `json:\"page_limit,omitempty\"`\n}\n// POST v1/organizations\ntype PostOrganizationsRequest Organization\ntype PostOrganizationsResponse Organization\n// GET v1/organizations/{id}\ntype GetOrganizationResponse Organization\n// PATCH v1/organizations/{id}\ntype PatchOrganizationsRequest Organization\ntype PatchOrganizationsResponse Organization\n// DELETE v1/organizations/{id}\ntype DeleteOrganizationsResponse struct{}\n///////////\n// Users //\n///////////\n// GET v1/users\ntype GetUsersResponse struct {\n    Users      []User `json:\"data,omitempty\"`\n    PageNumber int    `json:\"page_number,omitempty\"`\n    PageLimit  int    `json:\"page_limit,omitempty\"`\n}\n// GET v1/users/all\ntype GetAllUsersResponse struct {\n    Users      []User `json:\"data,omitempty\"`\n    PageNumber int    `json:\"page_number,omitempty\"`\n    PageLimit  int    `json:\"page_limit,omitempty\"`\n}\n// POST v1/users\ntype CreateUserRequest User\ntype CreateUserResponse User\n// GET v1/users/{id}\ntype GetUserResponse User\n// PATCH v1/users/{id}\n// See https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id\ntype UpdateUserRequest User\ntype UpdateUserResponse User\n// DELETE v1/users/{id}\ntype DeleteUserResponse struct{}\n// POST v1/users/{id}/roles\ntype AssignRoleRequest struct {\n    Roles []string `json:\"roles\"`\n}\ntype AssignRoleResponse struct{}\n// DELETE v1/users/{id}/roles\ntype UnassignRoleRequest struct {\n    Roles []string `json:\"roles\"`\n}\ntype UnassignRoleResponse struct{}\n///////////\n// ROLES //\n///////////\n// GET v1/roles\ntype GetRolesResponse struct {\n    Roles      []Role `json:\"data,omitempty\"`\n    PageNumber int    `json:\"page_number,omitempty\"`\n    PageLimit  int    `json:\"page_limit,omitempty\"`\n}\n// GET v1/roles/{id}/permissions\ntype GetRolePermissionsResponse struct {\n    Permissions []Permission `json:\"data,omitempty\"`\n    PageNumber  int          `json:\"page_number,omitempty\"`\n    PageLimit   int          `json:\"page_limit,omitempty\"`\n}\n/////////////\n// WALLETS //\n/////////////\n// GET v1/wallets\ntype GetWalletsResponse struct {\n    Wallets    []Wallet `json:\"data,omitempty\"`\n    PageNumber int      `json:\"page_number,omitempty\"`\n    PageLimit  int      `json:\"page_limit,omitempty\"`\n}\n// POST v1/wallets\ntype PostWalletsRequest struct {\n    Wallets []Wallet `json:\"wallets\"`\n}\ntype PostWalletsResponse struct {\n    Wallets []Wallet `json:\"wallets\"`\n}\n// GET v1/wallets/{id}\ntype GetWalletResponse Wallet\n// PATCH v1/wallets/{id}\ntype PatchWalletsRequest Wallet\ntype PatchWalletsResponse Wallet\n// DELETE v1/wallets/{id}\ntype DeleteWalletsResponse struct{}\n// GET v1/wallets/{id}/payouts\ntype GetWalletPayoutsResponse struct {\n    Payouts    []Payout `json:\"data,omitempty\"`\n    PageNumber int      `json:\"page_number,omitempty\"`\n    PageLimit  int      `json:\"page_limit,omitempty\"`\n}\n// GET v1/wallets/{id}/balances\ntype GetWalletBalancesResponse struct {\n    Balances   []BalanceHistory `json:\"data,omitempty\"`\n    PageNumber int              `json:\"page_number,omitempty\"`\n    PageLimit  int              `json:\"page_limit,omitempty\"`\n}\n///////////////\n// PROTOCOLS //\n///////////////\n// GET v1/protocols\ntype GetProtocolsResponse struct {\n    Protocols  []Protocol `json:\"data,omitempty\"`\n    PageNumber int        `json:\"page_number,omitempty\"`\n    PageLimit  int        `json:\"page_limit,omitempty\"`\n}\n// GET v1/protocols/{id}\ntype GetProtocolResponse Protocol\n// GET /v1/protocols/{id}/timeseries\ntype GetProtocolTimeseriesResponse struct {\n    Timeseries []AssetMetric `json:\"data,omitempty\"`\n    PageNumber int           `json:\"page_number,omitempty\"`\n    PageLimit  int           `json:\"page_limit,omitempty\"`\n}\n////////////\n// COMMON //\n////////////\ntype Organization struct { // See: https://auth0.com/docs/api/management/v2#!/Organizations/get_organizations\n    ID          *string `json:\"id,omitempty\"`\n    Name        *string `json:\"name,omitempty\"`\n    DisplayName *string `json:\"display_name,omitempty\"`\n    Branding    *struct {\n        LogoURL *string                `json:\"logo_url,omitempty\"`\n        Colors  map[string]interface{} `json:\"colors,omitempty\"`\n    } `json:\"branding,omitempty\"`\n    Metadata map[string]interface{} `json:\"metadata,omitempty\"`\n}\ntype User struct { // See: https://auth0.com/docs/api/management/v2#!/Users/get_users\n    ID           *string                `json:\"user_id,omitempty\"`\n    Connection   *string                `json:\"connection,omitempty\"`\n    Email        *string                `json:\"email,omitempty\"`\n    Name         *string                `json:\"name,omitempty\"`\n    GivenName    *string                `json:\"given_name,omitempty\"`\n    FamilyName   *string                `json:\"family_name,omitempty\"`\n    Username     *string                `json:\"username,omitempty\"`\n    Nickname     *string                `json:\"nickname,omitempty\"`\n    ScreenName   *string                `json:\"screen_name,omitempty\"`\n    Description  *string                `json:\"description,omitempty\"`\n    Location     *string                `json:\"location,omitempty\"`\n    Password     *string                `json:\"password,omitempty\"`\n    PhoneNumber  *string                `json:\"phone_number,omitempty\"`\n    CreatedAt    *time.Time             `json:\"created_at,omitempty\"`\n    UpdatedAt    *time.Time             `json:\"updated_at,omitempty\"`\n    LastLogin    *time.Time             `json:\"last_login,omitempty\"`\n    UserMetadata map[string]interface{} `json:\"user_metadata,omitempty\"`\n    Identities   []*struct {\n        Connection        *string                 `json:\"connection,omitempty\"`\n        UserID            *string                 `json:\"-\"`\n        Provider          *string                 `json:\"provider,omitempty\"`\n        IsSocial          *bool                   `json:\"isSocial,omitempty\"`\n        AccessToken       *string                 `json:\"access_token,omitempty\"`\n        AccessTokenSecret *string                 `json:\"access_token_secret,omitempty\"`\n        RefreshToken      *string                 `json:\"refresh_token,omitempty\"`\n        ProfileData       *map[string]interface{} `json:\"profileData,omitempty\"`\n    } `json:\"identities,omitempty\"`\n    EmailVerified *bool                  `json:\"-\"`\n    VerifyEmail   *bool                  `json:\"verify_email,omitempty\"`\n    PhoneVerified *bool                  `json:\"phone_verified,omitempty\"`\n    AppMetadata   map[string]interface{} `json:\"app_metadata,omitempty\"`\n    Picture       *string                `json:\"picture,omitempty\"`\n    URL           *string                `json:\"url,omitempty\"`\n    Blocked       *bool                  `json:\"blocked,omitempty\"`\n    LastIP        *string                `json:\"last_ip,omitempty\"`\n    LoginsCount   *int64                 `json:\"logins_count,omitempty\"`\n}\ntype Role struct { // See: https://auth0.com/docs/api/management/v2#!/Roles/get_roles\n    ID          *string `json:\"id,omitempty\"`\n    Name        *string `json:\"name,omitempty\"`\n    Description *string `json:\"description,omitempty\"`\n}\ntype Permission struct {\n    ResourceServerIdentifier *string `json:\"resource_server_identifier,omitempty\"`\n    ResourceServerName       *string `json:\"resource_server_name,omitempty\"`\n    Name                     *string `json:\"permission_name,omitempty\"`\n    Description              *string `json:\"description,omitempty\"`\n}\ntype Balance struct {\n    BalanceTokens   big.Float         `json:\"token_amount\"`\n    BalanceUSD      big.Float         `json:\"usd_amount\"`\n    DelegatedTokens big.Float         `json:\"delegated_tokens\"`\n    DelegatedUSD    big.Float         `json:\"delegated_usd\"`\n    Metadata        datatypes.JSONMap `json:\"metadata\"`\n    decimals        int\n}\ntype Reward struct {\n    RewardTokens big.Float  `json:\"token_amount\"`\n    RewardUSD    big.Float  `json:\"usd_amount\"`\n    Since        *time.Time `json:\"since,omitempty\"`\n    decimals     int\n}\ntype SpotPrice struct {\n    ProtocolName string    `json:\"asset,omitempty\"`\n    Time         time.Time `json:\"time,omitempty\"`\n    PriceUSD     float64   `json:\"reference_rate_usd,omitempty\"`\n}\ntype Wallet struct {\n    ID          uuid.UUID  `json:\"id,omitempty\"`\n    OrgID       string     `json:\"org_id,omitempty\"`\n    Name        string     `json:\"name,omitempty\"`\n    ProtocolID  *int       `json:\"protocol_id,omitempty\"`\n    Address     string     `json:\"address,omitempty\"`\n    Balance     *Balance   `json:\"balance,omitempty\"`\n    Rewards     *Reward    `json:\"rewards,omitempty\"`\n    SpotPrice   *SpotPrice `json:\"spot_price,omitempty\"`\n    IsValidator bool       `json:\"is_validator,omitempty\"`\n    DelegatedTo string     `json:\"delegated_to,omitempty\"`\n    CreatedAt   time.Time  `json:\"created_at,omitempty\"`\n    UpdatedAt   time.Time  `json:\"updated_at,omitempty\"`\n}\ntype Payout struct {\n    Index           int        `json:\"index\"`\n    TransactionHash string     `json:\"txn_hash,omitempty\"`\n    BlockHeight     int64      `json:\"block_height,omitempty\"`\n    PayoutTime      time.Time  `json:\"time,omitempty\"`\n    Balance         *Balance   `json:\"balance,omitempty\"`\n    Reward          *Reward    `json:\"reward,omitempty\"`\n    SpotPrice       *SpotPrice `json:\"spot_price,omitempty\"`\n    Address         string     `json:\"address,omitempty\"`\n}\ntype BalanceHistory struct {\n    Balance   Balance   `json:\"balance\"`\n    SpotPrice SpotPrice `json:\"spot_price\"`\n    Time      time.Time `json:\"time\"`\n}\ntype Pricing struct {\n    Commission         *float64 `json:\"commission\"`\n    FlatMonthlyUSDRate *float64 `json:\"flat_monthly_usd_rate\"`\n}\ntype RewardOption struct {\n    Name               string   `json:\"name\"`\n    NominalAPY         *float64 `json:\"nominal_apy\"`\n    RealAPY            *float64 `json:\"real_apy\"`\n    ExpectedAPY        *float64 `json:\"expected_apy\"`\n    RequiredMinimum    *float64 `json:\"required_minimum\"`\n    RecommendedMinimum *float64 `json:\"recommended_minimum\"`\n    Frequency          *float64 `json:\"frequency\"`\n    LockUpTime         *float64 `json:\"lock_up_time\"`\n    DefaultProviderFee *float64 `json:\"default_provider_fee\"`\n    UpdatedAt          string   `json:\"updated_at\"`\n    Pricing            Pricing  `json:\"pricing\"`\n}\ntype StakingData struct {\n    Inflation     *float64       `json:\"inflation\"`\n    Marketcap     *float64       `json:\"marketcap\"`\n    StakedValue   *float64       `json:\"staked_value\"`\n    TotalStaked   *float64       `json:\"total_staked\"`\n    UpdatedAt     string         `json:\"updated_at\"`\n    RewardOptions []RewardOption `json:\"reward_options\"`\n}\ntype PriceData struct {\n    ReferenceRate *float64 `json:\"reference_rate\"`\n    Percent1Hour  *float64 `json:\"percent_1_hour\"`\n    Percent1Day   *float64 `json:\"percent_1_day\"`\n    Percent1Week  *float64 `json:\"percent_1_week\"`\n    Percent30Day  *float64 `json:\"percent_30_day\"`\n    Percent90Day  *float64 `json:\"percent_90_day\"`\n    Percent180Day *float64 `json:\"percent_180_day\"`\n    Percent1Year  *float64 `json:\"percent_1_year\"`\n    UpdatedAt     string   `json:\"updated_at\"`\n}\ntype Protocol struct {\n    ID              int          `json:\"id\"`\n    Name            string       `json:\"name\"`\n    Ticker          string       `json:\"ticker\"`\n    StakingData     *StakingData `json:\"staking_data\"`\n    PriceData       *PriceData   `json:\"price_data\"`\n    WalletSupported bool         `json:\"wallet_supported\"`\n}\ntype AssetMetric struct {\n    Asset            string    `json:\"asset\"`\n    Time             time.Time `json:\"time\"`\n    ReferenceRateUSD string    `json:\"reference_rate_usd\"`\n}\n\n ```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"16185822","collectionId":"6fc8c684-94a3-4daa-aa2b-60e99545653d","publishedId":"UVXnJF7f","public":true,"publicUrl":"https://docs.foundrystaking.com","privateUrl":"https://go.postman.co/documentation/16185822-6fc8c684-94a3-4daa-aa2b-60e99545653d","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2024-09-19T20:29:45.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Production","id":"914b6d5e-a59f-447e-8a90-78b233d414f2","owner":"16145247","values":[{"key":"baseUrl","value":"https://api.foundrystaking.com/api","enabled":true},{"key":"token","value":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Imh6MjBCcEZMLXl3LThpM3BaNnhuNiJ9.eyJpc3MiOiJodHRwczovL2ZvdW5kcnlzdGFraW5nLnVzLmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHw2M2QwMzU4OGJmN2I3YTI1Njk5YmM2ZDUiLCJhdWQiOlsiaHR0cHM6Ly9zdGFraW5nLmZvdW5kcnlkaWdpdGFsLmNvbS9hcGkiLCJodHRwczovL2ZvdW5kcnlzdGFraW5nLnVzLmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE3MTM0NzE4MzksImV4cCI6MTcxMzQ3MjczOSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCBvZmZsaW5lX2FjY2VzcyIsIm9yZ19pZCI6Im9yZ19ER2FhYnd5RDd4Zzc3UU5iIiwiYXpwIjoiVzYyeHltYWF5N0lOMVVOZ1cyUUExVUxZNGM4dGhrQmoiLCJwZXJtaXNzaW9ucyI6WyJyZWFkOmFwaWtleXMiLCJyZWFkOm9yZ2FuaXphdGlvbiIsInJlYWQ6cHJvdG9jb2xzIiwicmVhZDpyb2xlcyIsInJlYWQ6dXNlcmluZm8iLCJyZWFkOnVzZXJzIiwicmVhZDp3YWxsZXRzIiwicmVhZDp3YWxsZXRzYWRkcmVzcyIsInN1OmJ1bGxldGJpbGw6cmVpbmRleCIsInN1OnJlYWQ6b3JnYW5pemF0aW9ucyIsInN1OnJlYWQ6cm9sZXMiLCJzdTpyZWFkOnVzZXJzIiwic3U6cmVhZDp3YWxsZXRzIiwic3U6d3JpdGU6b3JnYW5pemF0aW9ucyIsInN1OndyaXRlOnJvbGVzIiwic3U6d3JpdGU6dXNlcnMiLCJzdTp3cml0ZTp3YWxsZXRzIiwid3JpdGU6YXBpa2V5cyIsIndyaXRlOm9yZ2FuaXphdGlvbiIsIndyaXRlOnJvbGVzIiwid3JpdGU6dXNlcnMiLCJ3cml0ZTp3YWxsZXRzIl19.j2uaIMmfPnNiSCPL5b8DqFn4DKaFm0Rijcj-pZJFY1zKv8wikVaLB-y-XHhPNYyTCX526G-tu8f6j7c71L3fcmifTDVBVKL_JynlWxbS001il6sJ4AtCj54GlMBEcUrK1U4r7BCM2kpCyfSLURtRMn2QZn89M1Q-kuSAwQ2ki6z81vkjuD1ROIonRE8cpFDzZ5FO4cn5DXcJM0DqdOKO8l-6DrTi4Y9Ii5g5Q1makHBS9EgImCSaHwfeT7ajSR3eOJz1Y-faF0yjkrxUezD1ClIqzjp0YXUzVsu3Ry4je_dQQkj05gWiYsTHzWndtscDjxTrFI0G9t90a9V4gTcHtA","enabled":true,"type":"default"},{"key":"RefreshToken","value":"U2FsdGVkX18irs7CBGzYSMRZjGx1cboCQOXSyNuLgxyfvq81GQtwOsFlzUW59CYt7Ok7f673ai1DMdsnJc9tsQ%3D%3D","enabled":true,"type":"default"},{"key":"protocol_id","value":"21","enabled":true},{"key":"include_data","value":"","enabled":true},{"key":"include_balances","value":"true","enabled":true,"type":"any"},{"key":"org_id","value":"org_DGaabwyD7xg77QNb","enabled":true,"type":"any"},{"key":"start_time","value":"","enabled":true,"type":"any"},{"key":"end_time","value":"","enabled":true,"type":"any"},{"key":"frequency","value":"","enabled":true,"type":"any"},{"key":"page_limit","value":"","enabled":true,"type":"any"},{"key":"page_number","value":"","enabled":true,"type":"any"},{"key":"org_name","value":"","enabled":true,"type":"any"},{"key":"CREATED_org_id","value":"","enabled":true,"type":"any"},{"key":"token","value":"","enabled":false,"type":"default"},{"key":"blockchain","value":"Ethereum","enabled":true,"type":"default"},{"key":"network","value":"Goerli","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/3bc528ac1d6f43c28e13f04c3d8009fdcf6e2f9895d221de9b4aa375b9928196","favicon":"https://res.cloudinary.com/postman/image/upload/v1628792268/team/izph1dhvxrbxfit3eu5g.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Production","value":"16145247-914b6d5e-a59f-447e-8a90-78b233d414f2"}],"canonicalUrl":"https://docs.foundrystaking.com/view/metadata/UVXnJF7f"}