Eth Bangkok
Welcome to the Onchain Points ideas page for ETH Bangkok!
For this event, we have made some changes to the OnchainPoints
contract to streamline the administrative features of the contract and to allow for hackers to focus on the core functionality of the OnchainPoints
contract.
Major changes include:
- No need for contract whitelisting.
- Every new user account starts with
100
points for ease of testing. - App specific point usage limits are introduced to avoid abuse.
Read more about Onchain Points contract and what's possible in the Build section.
Typical Development Lifecycle
The typical development lifecycle for any new app in the OnchainPoints ecosystem looks something like this (simplified):
- Developers build apps that integrate with the
OnchainPoints
contract. - The app gets reviewed and approved by the OnchainPoints team.
- App contract gets deployed and whitelisted allowing the app to access points issued to the users.
- Users can spend points by signing a request to
spendToken
with their wallet, or by sending a delegated request tospendTokensOnBehalf
that has been signed by the spender along with the correct allowance set by the user.
Deployed Contracts
This modified contract is deployed to the Onchain Points Testnet. Details about the deployed contract addresses and instructions for connecting to the testnet are below.
Contract Name | Address | Source Code |
---|---|---|
OnchainPoints | 0x0026B6C897BF041AE7c8a2fC7698ce8e0998503d | GitHub |
How to connect to Onchain Points Testnet
The Onchain Points ecosystem along with the testnet lives on a dedicated Layer 3 blockchain. You can connect using any EVM-compatible wallet or Web3 provider with the following network details:
Network Details | Value |
---|---|
Network Name | Onchain Points |
RPC URL | https://rpc.onchainpoints.xyz |
Chain ID | 17071 |
Explorer | https://explorer.onchainpoints.xyz |
Currency | $POP |
Connect with MetaMask
- Open MetaMask and click the network dropdown at the top
- Select "Add Network"
- Choose "Add Network Manually"
- Enter the network details:
Network Name: Onchain Points
New RPC URL: https://rpc.onchainpoints.xyz
Chain ID: 17071
Currency Symbol: POP
Block Explorer URL: https://explorer.onchainpoints.xyz - Click "Save"
Connect Programmatically
Using ethers.js:
const provider = new ethers.providers.JsonRpcProvider('https://explorer.onchainpoints.xyz');
const network = await provider.getNetwork();
console.log(`Connected to chain ID: ${network.chainId}`);
Using Web3.js:
const web3 = new Web3('https://rpc.onchainpoints.xyz');
const network = await web3.eth.getChainId();
console.log(`Connected to chain ID: ${network}`);
Getting Started
We have built a demo contract that demonstrates how to interact with the OnchainPoints
contract and use points issued to users.
Feel free to use this as a starting point to build your own apps. Just click on the Use this template
button to create your own copy of the repository.
Need Gas?
You can get some POP from the faucet.
How to Use the Demo Example:
Clone the repository
git clone https://github.com/OnchainPoints/eth-bkk-demo.git
Install Dependencies
cd eth-bkk-demo/
npm install
Copy the example .env file
cp .env.example .env
In .env
, set the PRIVATE_KEY
to the private key of the account you want to use for the demo.
Running the Demo
Start a local hardhat node:
npx hardhat node
In a new terminal, deploy the modified OnchainPoints
contract:
npx hardhat run scripts/deploy.js --network localhost
Deploy the demo contract:
npx hardhat run scripts/deploy-demo.js --network localhost
Run the demo points spending script:
npx hardhat run scripts/spend-points-demo.js --network localhost
Enter the contract addresses for the OnchainPoints
and SpendingDemo
contracts when prompted.
That's it! You should see the points balances of the user and the demo contract change as the points are spent.