Skip to main content
POST
/
nouns
Get Nouns Proposal Action
curl --request POST \
  --url https://api.inprocess.world/api/nouns \
  --header 'Content-Type: application/json' \
  --data '
{
  "chainId": 1,
  "account": "0xYourEthereumAddress",
  "contract": {
    "name": "My Nouns Moment Collection",
    "uri": "ipfs://bafybeig..."
  },
  "tokens": [
    {
      "tokenMetadataURI": "ipfs://bafybeig...",
      "createReferral": "0x0000000000000000000000000000000000000000",
      "salesConfig": {
        "type": "ZoraTimedSaleStrategy",
        "pricePerToken": "0",
        "saleStart": "0",
        "saleEnd": "18446744073709551615"
      },
      "mintToCreatorCount": 1
    }
  ],
  "proposal": {
    "title": "Mint a Moment onchain via In•Process",
    "description": "This proposal mints a new moment on the In•Process protocol as a Nouns community action."
  }
}
'
import requests

url = "https://api.inprocess.world/api/nouns"

payload = {
"chainId": 1,
"account": "0xYourEthereumAddress",
"contract": {
"name": "My Nouns Moment Collection",
"uri": "ipfs://bafybeig..."
},
"tokens": [
{
"tokenMetadataURI": "ipfs://bafybeig...",
"createReferral": "0x0000000000000000000000000000000000000000",
"salesConfig": {
"type": "ZoraTimedSaleStrategy",
"pricePerToken": "0",
"saleStart": "0",
"saleEnd": "18446744073709551615"
},
"mintToCreatorCount": 1
}
],
"proposal": {
"title": "Mint a Moment onchain via In•Process",
"description": "This proposal mints a new moment on the In•Process protocol as a Nouns community action."
}
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
chainId: 1,
account: '0xYourEthereumAddress',
contract: {name: 'My Nouns Moment Collection', uri: 'ipfs://bafybeig...'},
tokens: [
{
tokenMetadataURI: 'ipfs://bafybeig...',
createReferral: '0x0000000000000000000000000000000000000000',
salesConfig: {
type: 'ZoraTimedSaleStrategy',
pricePerToken: '0',
saleStart: '0',
saleEnd: '18446744073709551615'
},
mintToCreatorCount: 1
}
],
proposal: {
title: 'Mint a Moment onchain via In•Process',
description: 'This proposal mints a new moment on the In•Process protocol as a Nouns community action.'
}
})
};

fetch('https://api.inprocess.world/api/nouns', 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://api.inprocess.world/api/nouns",
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([
'chainId' => 1,
'account' => '0xYourEthereumAddress',
'contract' => [
'name' => 'My Nouns Moment Collection',
'uri' => 'ipfs://bafybeig...'
],
'tokens' => [
[
'tokenMetadataURI' => 'ipfs://bafybeig...',
'createReferral' => '0x0000000000000000000000000000000000000000',
'salesConfig' => [
'type' => 'ZoraTimedSaleStrategy',
'pricePerToken' => '0',
'saleStart' => '0',
'saleEnd' => '18446744073709551615'
],
'mintToCreatorCount' => 1
]
],
'proposal' => [
'title' => 'Mint a Moment onchain via In•Process',
'description' => 'This proposal mints a new moment on the In•Process protocol as a Nouns community action.'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.inprocess.world/api/nouns"

payload := strings.NewReader("{\n \"chainId\": 1,\n \"account\": \"0xYourEthereumAddress\",\n \"contract\": {\n \"name\": \"My Nouns Moment Collection\",\n \"uri\": \"ipfs://bafybeig...\"\n },\n \"tokens\": [\n {\n \"tokenMetadataURI\": \"ipfs://bafybeig...\",\n \"createReferral\": \"0x0000000000000000000000000000000000000000\",\n \"salesConfig\": {\n \"type\": \"ZoraTimedSaleStrategy\",\n \"pricePerToken\": \"0\",\n \"saleStart\": \"0\",\n \"saleEnd\": \"18446744073709551615\"\n },\n \"mintToCreatorCount\": 1\n }\n ],\n \"proposal\": {\n \"title\": \"Mint a Moment onchain via In•Process\",\n \"description\": \"This proposal mints a new moment on the In•Process protocol as a Nouns community action.\"\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

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://api.inprocess.world/api/nouns")
.header("Content-Type", "application/json")
.body("{\n \"chainId\": 1,\n \"account\": \"0xYourEthereumAddress\",\n \"contract\": {\n \"name\": \"My Nouns Moment Collection\",\n \"uri\": \"ipfs://bafybeig...\"\n },\n \"tokens\": [\n {\n \"tokenMetadataURI\": \"ipfs://bafybeig...\",\n \"createReferral\": \"0x0000000000000000000000000000000000000000\",\n \"salesConfig\": {\n \"type\": \"ZoraTimedSaleStrategy\",\n \"pricePerToken\": \"0\",\n \"saleStart\": \"0\",\n \"saleEnd\": \"18446744073709551615\"\n },\n \"mintToCreatorCount\": 1\n }\n ],\n \"proposal\": {\n \"title\": \"Mint a Moment onchain via In•Process\",\n \"description\": \"This proposal mints a new moment on the In•Process protocol as a Nouns community action.\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.inprocess.world/api/nouns")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"chainId\": 1,\n \"account\": \"0xYourEthereumAddress\",\n \"contract\": {\n \"name\": \"My Nouns Moment Collection\",\n \"uri\": \"ipfs://bafybeig...\"\n },\n \"tokens\": [\n {\n \"tokenMetadataURI\": \"ipfs://bafybeig...\",\n \"createReferral\": \"0x0000000000000000000000000000000000000000\",\n \"salesConfig\": {\n \"type\": \"ZoraTimedSaleStrategy\",\n \"pricePerToken\": \"0\",\n \"saleStart\": \"0\",\n \"saleEnd\": \"18446744073709551615\"\n },\n \"mintToCreatorCount\": 1\n }\n ],\n \"proposal\": {\n \"title\": \"Mint a Moment onchain via In•Process\",\n \"description\": \"This proposal mints a new moment on the In•Process protocol as a Nouns community action.\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "governor": "0x6f3e6272a167e8accb32072d08e0957f9c79223d",
  "args": [
    [
      "0xe0d3febE1c17DDA1086e89B638Ab54955FE2eF8a"
    ],
    [
      "0"
    ],
    [
      ""
    ],
    [
      "0x7d5e81e2..."
    ],
    "# Mint a Moment onchain via In•Process\n\nThis proposal mints a new moment on the In•Process protocol as a Nouns community action."
  ],
  "value": "0"
}
{
"status": "error",
"message": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
{
"status": "error",
"message": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}

Body

application/json
account
string
required

Ethereum address of the Nouns token holder submitting the proposal.

Example:

"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

contract
object
required

Target collection. Provide address for an existing collection, or name + uri to deploy a new one.

tokens
object[]
required

One or more tokens to mint as part of the proposal.

Minimum array length: 1
proposal
object
required
chainId
enum<integer>
default:1

Chain to target. 1 = Ethereum Mainnet, 11155111 = Sepolia testnet.

Available options:
1,
11155111
splits
object[]

Optional revenue split recipients. Must have at least 2 entries and total exactly 100%.

Response

Successful response — governor propose args for the Nouns proposal action

governor
string
required

Nouns Governor contract address to call propose on.

Example:

"0x6f3e6272a167e8accb32072d08e0957f9c79223d"

args
any[]
required

Arguments for propose(targets, values, signatures, calldatas, description).

Example:
[
[
"0xe0d3febE1c17DDA1086e89B638Ab54955FE2eF8a"
],
["0"],
[""],
["0x7d5e81e2..."],
"# Mint a Moment onchain via In•Process\n\nThis proposal mints a new moment on the In•Process protocol as a Nouns community action."
]
value
string
required

ETH value to send with the governor transaction (always "0").

Example:

"0"