Creates a new gate configuration for the specified environment.
curl --request POST \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates"
payload = {
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Super User Gate',
rules: [
{
address: {networkId: 1, contractAddress: 'An example name'},
filter: {tokenId: '0x01', amount: 123}
}
],
scope: 'superuser'
})
};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Super User Gate',
'rules' => [
[
'address' => [
'networkId' => 1,
'contractAddress' => 'An example name'
],
'filter' => [
'tokenId' => '0x01',
'amount' => 123
]
]
],
'scope' => 'superuser'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates"
payload := strings.NewReader("{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser",
"enabledAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Resources already exists for this Object",
"payload": {
"email": "joe@email.com",
"embeddedWalletName": "<string>",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"additionalMessages": [
"<string>"
]
}
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the environment
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
Body
Request body to create a new gate. The gate will be not enabled by default.
Human-readable name of the gate. This should be something helpful to organize gates.
"Super User Gate"
scope, siteAccess, block The rules which will be used to evaluate users being verified. If multiple rules are present in a single gate, then all the rules need to apply for the user to gain the scope defined by the gate.
Show child attributes
Show child attributes
String for the resulting scope of the gate. If the rules of the gate apply to the user being verified, then this scope will be surfaced in the JWT. If a scope is not provided for the gate, the default behavior of the gate would be to block access to users that the rules do not currently apply to.
"superuser"
Response
Successfully created
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
Human-readable name of the gate. This should be something helpful to organize gates.
"Super User Gate"
The rules which will be used to evaluate users being verified. If multiple rules are present in a single gate, then all the rules need to apply for the user to gain the scope defined by the gate.
Show child attributes
Show child attributes
scope, siteAccess, block String for the resulting scope of the gate. If the rules of the gate apply to the user being verified, then this scope will be surfaced in the JWT. If a scope is not provided for the gate, the default behavior of the gate would be to block access to users that the rules do not currently apply to.
"superuser"
If the gate is enabled, then this timestamp will be present.
Was this page helpful?
curl --request POST \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates"
payload = {
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Super User Gate',
rules: [
{
address: {networkId: 1, contractAddress: 'An example name'},
filter: {tokenId: '0x01', amount: 123}
}
],
scope: 'superuser'
})
};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Super User Gate',
'rules' => [
[
'address' => [
'networkId' => 1,
'contractAddress' => 'An example name'
],
'filter' => [
'tokenId' => '0x01',
'amount' => 123
]
]
],
'scope' => 'superuser'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates"
payload := strings.NewReader("{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/gates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Super User Gate\",\n \"rules\": [\n {\n \"address\": {\n \"networkId\": 1,\n \"contractAddress\": \"An example name\"\n },\n \"filter\": {\n \"tokenId\": \"0x01\",\n \"amount\": 123\n }\n }\n ],\n \"scope\": \"superuser\"\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"name": "Super User Gate",
"rules": [
{
"address": {
"networkId": 1,
"contractAddress": "An example name"
},
"filter": {
"tokenId": "0x01",
"amount": 123
}
}
],
"scope": "superuser",
"enabledAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Resources already exists for this Object",
"payload": {
"email": "joe@email.com",
"embeddedWalletName": "<string>",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"additionalMessages": [
"<string>"
]
}
}{
"error": "Internal Server Error"
}