# Social Oracle™️ GIVE

## Find Social Oracle on EAS

<https://base.easscan.org/schema/view/0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa>

## What is the Social Oracle?

Coordinape's recognition and reputation primitive [GIVE ](/colinks/give.md)is ONCHAIN! \
GIVE is a Permissionless Public Good reputation primitive that creates a valuable and trusted Social Oracle of connections and attestations from peer to peer about skills and experiences.

\
GIVEs created in [Farcaster](https://www.farcaster.xyz/), [CoLinks](https://colinks.coordinape.com/info), and [GIVE.party](https://colinks.coordinape.com/giveparty) now get written to [Base Chain](https://base.org) via attestations created with[ Ethereum Attestation Service (EAS)](https://attest.org/).  We've built GIVE as a reputation primitive and brought it onchain to make it universally accessible and integratable. &#x20;

## How can I use it?

### Integrate the Social Oracle

Coordinape creates attestations on behalf of authenticated users when they create and give GIVEs to other users. Therefore GIVEs "From" `onchain.coordinape.eth` are highly trustworthy. \
\
You can query any EAS Schema using the EAS GraphQL API. [Learn more here.](https://docs.attest.org/docs/developer-tools/api)

#### **Some of the possible ways to integrate the Social Oracle**

* **Resume or CV** - GIVE can act as an endorsement that a given person has a skill. The more GIVE about the skill, the more trusted the person is likely to be about that skill.&#x20;
* **Social and professional Discovery** - The network of GIVEs reveals much rich data about people and relationships. It's extremely easy to get leads for people who have specific skills or qualities using the Social Oracle.
* **Gating/Eligibility/qualification -** Since GIVE is on [BASE](https://base.org) , it's easily possible to gate web3 organizations, events, groups, and more by simply requiring that participants have enough onchain GIVE or GIVE from a particular source or GIVE of a particular skill. There a many possibilities!
* **Humanity Scoring** - Given the social oracle data, it's easy to create or add to formulas that can add to or even guarantee the likelihood that a user is actually a human.&#x20;

### Issue GIVE attestations

Anyone can openly use the [GIVE Schema](https://base.easscan.org/schema/view/0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa) to create GIVE attestations.&#x20;

Use the [GIVE Schema](https://base.easscan.org/schema/view/0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa) to issue GIVE attestations from your trusted organization to add more trusted data to the Social Oracle.\
\&#xNAN;*\*If your org/project plans to do this, feel free to reach out to us in our* [*Discord*](https://discord.gg/GFASZtq6Sw) *and we may be interested to integrate your GIVE data into our use of the Social Oracle.* <br>

## GIVE EAS Schema:&#x20;

<https://base.easscan.org/schema/view/0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa>

| Field      | Type      | Purpose                                                          | Example(s)                                                                                      |
| ---------- | --------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `from`     | `address` | Ethereum address                                                 | "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"                                                    |
| `amount`   | `uint16`  | number representing amount of GIVE                               | "1"                                                                                             |
| `platform` | `string`  | app or platform the GIVE occurred on                             | "CoLinks", "GIVE.party", "Farcaster"                                                            |
| `url`      | `string`  | url for GIVE reference                                           | [https://warpcast.com/crabsinger.eth/0x6c2c498](https://warpcast.com/crabsinger.eth/0x6c2c4981) |
| `context`  | `string`  | text field for any desired purpose                               | "GIVE related to the Women in Web3 IRL event at ETH Denver 2024"                                |
| `skill`    | `string`  | a skill that this GIVE is endorsing for the reciever of the GIVE | "Community Management"                                                                          |
| `tag`      | `string`  | a tag that this GIVE is about                                    | "First Class"                                                                                   |
| `note`     | `string`  | a note from the GIVE sender to the receiver                      | "Your contributions to the project are unmatched! Thank you for making this project a reality!" |
| `weight`   | `uint16`  | number representing the quality of this GIVE                     | "300"                                                                                           |

<details>

<summary>EAS SDK GIVE example <br><a href="https://base.easscan.org/schema/view/0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa">This example comes from the GIVE Schema on EAS utilizing the EAS SDK. </a></summary>

{% code fullWidth="false" %}

```javascript
import  { EAS, SchemaEncoder }  from "@ethereum-attestation-service/eas-sdk";
const easContractAddress = "0x4200000000000000000000000000000000000021";
const schemaUID = "0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa";
const eas = new EAS(easContractAddress);
// Signer must be an ethers-like signer.
await eas.connect(signer);
// Initialize SchemaEncoder with the schema string
const schemaEncoder = new SchemaEncoder("address from,uint16 amount,string platform,string url,string context,string skill,string tag,string note,uint16 weight");
const encodedData = schemaEncoder.encodeData([
	{ name: "from", value: "0x0000000000000000000000000000000000000000", type: "address" }
	{ name: "amount", value: "0", type: "uint16" }
	{ name: "platform", value: "", type: "string" }
	{ name: "url", value: "", type: "string" }
	{ name: "context", value: "", type: "string" }
	{ name: "skill", value: "", type: "string" }
	{ name: "tag", value: "", type: "string" }
	{ name: "note", value: "", type: "string" }
	{ name: "weight", value: "0", type: "uint16" }
]);
const tx = await eas.attest({
	schema: schemaUID,
	data: {
		recipient: "0x0000000000000000000000000000000000000000",
		expirationTime: 0,
		revocable: true, // Be aware that if your schema is not revocable, this MUST be false
		data: encodedData,
	},
});
const newAttestationUID = await tx.wait();
console.log("New attestation UID:", newAttestationUID);
```

{% endcode %}

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coordinape.com/social-oracle-tm-give.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
